MatPoliquin / stable-retro

Retro Games in Gym
MIT License
53 stars 6 forks source link

Farama Foundation Standards Progress #15

Open zbeucler2018 opened 1 year ago

zbeucler2018 commented 1 year ago

Farama Foundation Standards

Good Science

Standard Progress (none, in-progress, done) Notes
Be fully deterministic The docs don't say anything about RNG address in new game integrations. A lot of old games don't even use RNG, but this is absolutely needed, because lots of games covered in this library actually use a RNG.
Include explicit versioning none
Use Farama Notifications none

Release Details

Standard Progress (none, in-progress, done) Notes
Be released on PyPI none Yes for gym-retro, no for stable-retro
Include a full package description none yes for gym-retro, no for stable-retro
Deploy packages to PyPI via GitHub Actions none no GH actions

Binaries

Standard Progress (none, in-progress, done) Notes
Be deterministically compiled
Ship any binaries for both x86_64 and Arm architectures and both Linux and macOS operating systems none x86_64 support on linux and non-ARM macs
All supported operating systems should have wheels provided. none No GH actions to build them automatically

Quality of Life

Standard Progress (none, in-progress, done) Notes
Include a thorough documentation website the only docs are gym-retro's
Run on both Linux and macOS done runs on both linux and mac

Development Workflow

Standard Progress (none, in-progress, done) Notes
Have continuous integration testing none There are unit tests, but they arent hooked up to GH and some might be old/out-dated
Include a git pre-commit in-progress PR-14

Code Standardization

Standard Progress (none, in-progress, done) Notes
Have Python code comply with the black, flake8, and isort linting/formatting tools none
Add type hinting where reasonable none
Include docstrings for all substantial functions none

Standardization

Standard Progress (none, in-progress, done) Notes
Support the Gymnasium and/or PettingZoo API done supports gymnasium, but not PettingZoo I believe. Maybe need to check if gymnasium is fully supported
Support all current versions of Python currently supports 3.6-3.8

Farama Branding

Standard Progress (none, in-progress, done) Notes
Have a logo in the same style as the other projects none
Have the documentation website be at .farama.org. none
Include the standard Farama code of conduct. none

Security

Standard Progress (none, in-progress, done) Notes
List Jordan Terry and Mark Towers as owners on PyPI none
Have maintainers with GitHub or PyPI permissions use TOTP based 2FA or better none

Other

Standard Progress (none, in-progress, done) Notes
Include Google analytics none
Use an MIT or similarly styled open source license done
Link Farama donations page none
Pull documentation website information from environments directly none
pseudo-rnd-thoughts commented 1 year ago

Is there anyway that we can start dividing up the tasks. Some of the easier ones that people can do separately is

  1. Update the setup info and upload to pypi
  2. Move testing to github actions
  3. Add testing for all possible environments using check_env
  4. Make some general documentation for each of the emulators
  5. Update the third-party packages
  6. Add flake8, black, isort (or ruff due to project size) to pre-commit
  7. Add basic testing for different OSes / CPUs
arvganesh commented 1 year ago

Should we make these separate GH issues and then tag them as "good first issue"?

MatPoliquin commented 1 year ago

We can do that for now but eventually we can use something like Trello if you prefer

I will create the GH issues from the list above

zbeucler2018 commented 1 year ago

We can do that for now but eventually we can use something like Trello if you prefer

I will create the GH issues from the list above

Thank you!