Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require problematic python bots to switch to standalone #306

Closed
VirxEC opened this issue Sep 9, 2023 · 14 comments
Closed

Require problematic python bots to switch to standalone #306

VirxEC opened this issue Sep 9, 2023 · 14 comments
Assignees
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request help wanted Extra attention is needed

Comments

@VirxEC
Copy link
Contributor

VirxEC commented Sep 9, 2023

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.

@VirxEC VirxEC converted this from a draft issue Sep 9, 2023
@VirxEC VirxEC added enhancement New feature or request help wanted Extra attention is needed dependencies Pull requests that update a dependency file labels Sep 9, 2023
@ddthj
Copy link
Member

ddthj commented Sep 9, 2023

Just to confirm, those bots with custom rlutilities can still use python 3.7 in their venv right? No extra work needed?

@VirxEC
Copy link
Contributor Author

VirxEC commented Sep 9, 2023

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.

@ddthj
Copy link
Member

ddthj commented Sep 9, 2023

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

@VirxEC
Copy link
Contributor Author

VirxEC commented Sep 9, 2023

After the v5 release, yes. There will be fewer/no problems with updating Python in the future.

@NicEastvillage
Copy link
Contributor

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.

@ddthj
Copy link
Member

ddthj commented Sep 9, 2023

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?

@JoshyDevRL
Copy link
Contributor

They will still use RLBot's python version

@VirxEC
Copy link
Contributor Author

VirxEC commented Sep 9, 2023

But this can be changed. RLBot will actually use whatever python version the venv was created with.

@ddthj
Copy link
Member

ddthj commented Sep 9, 2023

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?

@VirxEC
Copy link
Contributor Author

VirxEC commented Sep 9, 2023

RLU bots that I'm currently aware of:

  • Puffy
  • Invisibot
  • Botimus/Bumblebee
  • BribbleBot

Stick also has some Python 3.6/3.7 only binaries called car_path

@ddthj
Copy link
Member

ddthj commented Sep 9, 2023

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

@VirxEC
Copy link
Contributor Author

VirxEC commented Sep 9, 2023

Removing some of those bots will break Story Mode, but yes trimming the botpack should come before this

@NicEastvillage
Copy link
Contributor

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: openai/gym#3202 (comment)

@VirxEC
Copy link
Contributor Author

VirxEC commented Nov 13, 2023

I don't think this is needed anymore, we updated all bots to work in Python 3.11!

@VirxEC VirxEC closed this as completed Nov 13, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in Pre-v5 Maintenance Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request help wanted Extra attention is needed
Projects
Status: Done
Development

No branches or pull requests

4 participants