More liberty over program language version

Describe your feature request
Some way to opt in/out of language updates. Maybe a toggle or something on each repl that allows you to subscribe to having your repl auto-updated to the most recently deployed version with the ability to opt out of auto-updates. Another thing to consider would be the ability for users to choose which version of a programming language to use for a repl.

What problem(s) would this feature solve?

Having the ability to opt in/out of auto-updates for programming languages would prevent programs from breaking in the case that the libs they depend on have been abandoned or are not yet supported in newer versions of the language they’re using. If that is adopted, in addition to being able to choose what language version you’re using for each individual repl, it will allow users to develop repls in different versions. for example, a company could develop a product in Python 3.8, have it functioning, and then have a separate repl in 3.10 as a development repl to test the version updates, address any unsupported libs, and fix issues that arise from language updates without being forced to address those issues on a production environment.

I could go on, explaining this, but I feel I’ve given enough context to show how I think the whole user base would benefit from more control over the version of the programming language they are using in their repls and how it would address a bunch of issues.

Explain what you were trying to do when you came across the problem leading to this feature request

Replit had updated all Python repls from 3.8 to 3.10. For most, this wouldn’t be an issue, but in my case, I was developing a Discord Bot in Python 3.8, and I was using several libraries, two of which have not been updated to work on 3.10. This halted my development on the bot and modified the .replit and replit.nix files back to 3.8 did not work. It effectively came down to finding an older repl that was still using 3.8, forking it, and then moving over 60 files and folders, env variables, relinking to my GitHub repo, re-setting up the discord URL redirect paths, etc. (easily several hours down the drain)

1 Like

Maybe try not using Replit’s official templates in the future, because it’d be harder for them to forcefully update a random repl to 3.10.

4 Likes

or just edit the replit.nix file to use python3.8 instead of python3.10

5 Likes

Edit: trying to fork a 3.8 python repl and upload the project structure threw the forked repl into stasis.

1 Like

Not everyone knows nix, hence the suggestion. I spent about a month trying to revert a single repl from 3.10 to 3.8 in Python. I have ZERO knowledge of nix, and I was hesitant to mess around with those files because of that. I have (mostly) fixed that particular repl, by messing with the nix, but now have a nix error that I can’t troubleshoot because I don’t know nix. Hence, it becomes a REQUIREMENT to know nix in order to troubleshoot and control language updates.

I’m coming at it as someone who’s used Replit for several years, and I want to see people new to coding come to Replit to make cool projects, but what’s gonna happen if they’ve only been coding for a couple of days/weeks and then their repl breaks because it got auto-updated? Unless they were already coding in nix, they won’t have the means to know how to mess with the nix files without breaking something. Heck, I even tried messing with my nix files to downgrade to an earlier version that was functioning before, but because I lack experience in nix, I now have a nix related issue I can’t solve.

In essence, I’m trying to say that I don’t think it’s fair to force people to learn nix JUST to have control over the version of the language they’re coding in. While it’s a slight annoyance for us experienced coders, it could very well turn new software engineers away from the platform.

Simply a suggestion to help Replit continue to grow :slight_smile:

1 Like

How? You are forced to either pick a template or import a project from Github. Some new users might not have a GitHub account to import from, and others might not know that using a template leaves the repl susceptible to being force updated randomly. Heck, had you told me this 3 years ago, I wouldn’t have made any of my repls using a template, but here I am now, with a 3-year-old repl that got force updated by chance simply because I made it from their Python template. And now I have to mess with the nix files because I didn’t know this 3 years ago.

1 Like

At the very least, whether or not this becomes a feature, I do have a repl on my profile that you can fork that is in Python 3.8 (.12 I think).

1 Like

I tried forking it, but when I uploaded the contents of my repl (the one that got updated to 3.10), the forked repl just hung in stasis. I left it open for a few hours to see if it’d load everything, but it was still hung.

I’ll try again but upload the files one at a time; however, I wouldn’t bet money on whether or not single file uploading will work. I just hope it DOES work.

1 Like

Whose repl did you fork? The fork count on mine is at 0, so was there already a 3.8 template on replit when I made mine?

2 Likes

When I forked it I renamed it something else. Maybe that’s why it never showed up as a fork? I forked yours, like 21d ago from this thread:

1 Like

That is odd, as it still should have showed up, not sure why it didn’t. On the file uploading note, try zipping the files first, then uploading those.

Edit: Is your repl private? That could be why it doesn’t show it.

1 Like

Thank you for help Lynden Sylver. I have applied to my website and now it working fine.

https://ask.replit.com/t/need-help-downgrading-my-repl-gosloto

1 Like