Closed VirxEC closed 1 year ago
Just to confirm, those bots with custom rlutilities can still use python 3.7 in their venv right? No extra work needed?
By who? There will be extra work required in the sense that just because they're running in a venv doesn't mean that they will work. Them running in a venv just makes it possible for us to make the changes required for a user who has both 3.10 and 3.7 to run the bot in 3.7 while everything else runs 3.10.
tl;dr getting the bots to run in a venv is just the first step.
No extra work from out side. Once they're using a venv we don't have to worry about breaking them when we update python
After the v5 release, yes. There will be fewer/no problems with updating Python in the future.
The specifics bots and their devs need to be found and contacted to move their bot to a StandaloneBot
We can do this without contacting people. It's just a bit fiddly to figure out what each bot needs. If we do it ourselves, then we just need to notify the bot maker.
Just to confirm, those bots with custom rlutilities can still use python 3.7 in their venv right? No extra work needed?
The RLUtiltities bots may break when we switch python version, but not from switching to venv. Since this applies to so few bots I think we can make it the RLUtilities users responsibility to recompile their bindings.
I guess I'm a little confused as to how standalone bots worked. I thought they could be packaged with their own versions of python to use, or will they still use RLBot's python version but with only the dependencies they require?
They will still use RLBot's python version
But this can be changed. RLBot will actually use whatever python version the venv was created with.
Ok. Sounds like the plan is to switch to venv first and let the rlutilities bots deal with the python bump whenever that happens next. Do we know which bots are problematic, or should any bot with a requirements.txt be forced to venv?
RLU bots that I'm currently aware of:
Stick also has some Python 3.6/3.7 only binaries called car_path
Since we're planning to purge some of the botpack, maybe that happens first. Then we can see which bots still have dependency conflicts and make those standalone. We'll worry about RLU during the python update
Removing some of those bots will break Story Mode, but yes trimming the botpack should come before this
Leaving this here for the ML bots:
Version 0.21 of the gym
package cannot be installed with modern setuptools (they have mispelt one of their dependencie's versions). stable_baselines3
version 1.4.0 through 1.8.0 uses this version of gym
. So any bot that uses these versions of stable_baselines3
cannot be installed, unless a fixed version of gym
is specified in the requirements.txt
, like this:
gym @ git+https://github.com/openai/gym.git@9180d12e1b66e7e2a1a622614f787a6ec147ac40
stable_baselines3==1.8.0
More info here: https://github.com/openai/gym/issues/3202#issuecomment-1511268727
I don't think this is needed anymore, we updated all bots to work in Python 3.11!
There are bots that have conflicting dependencies, and some that even require Python 3.7 (mostly due to a requirement on RLUtilities)
The specifics bots and their devs need to be found and contacted to move their bot to a
StandaloneBot
that operates within a virtual environment.