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

Move from PDM to Rye for project management #361

Merged
merged 8 commits into from
Feb 13, 2024
Merged

Move from PDM to Rye for project management #361

merged 8 commits into from
Feb 13, 2024

Conversation

leroyvn
Copy link
Contributor

@leroyvn leroyvn commented Feb 8, 2024

This PR moves project management from PDM to Rye. Underlying motivations are workspace support (in practice allowing to include Joseki as subprojects to other projects with a shared set of dependencies, independent of Joseki's own dependencies) and simpler, faster dependency solving.

Detailed motivation:

  • Rye has workspace support. This feature allows including Joseki in other Rye-managed projects for which sharing dependencies is desirable.
  • PDM's dependency solver is slow and has very annoying drawbacks in Python's undefined dependency management environment. Rye is faster and more flexible. In particular, Rye's pip-tools-based locking, contrary to PDM's, is not global, but instead focuses only on the active Python version, leading to much less complicated, more reliable and faster dependency solving.
  • Rye already has more traction than PDM in the community, despite its very young age (9k stars vs 6k stars).
  • Rye's fully integrated approach drastically simplifies setup. You don't even need a working Python distribution to set up the dev environment!

To do:

  • Test in a standalone setup (currently only tested as subproject of internal Rayference toolchain: need to see if this can exist alongside local locks)
  • Migrate commands (sort of done, check needed)
  • Migrate release Action
  • Cleanup: Remove Nox and leftover references to PDM
  • Update documentation
  • Migrate CI Action
  • Update version numbering system (add safeguard prior to release that checks if Git tag and package version number are aligned?)

This commit enhances the documentation browsing experience with the
following minor changes:

* Documentation search is now active
* Search results are highlighted
* The Joseki logo is displayed in docs headers
Motivations are as follows:

* PDM's dependency solver is slow and has very annoying drawbacks in
  Python's undefined dependency management environment. Rye is faster
  and more flexible.
* Rye has workspace support. This feature allows including Joseki in
  other Rye-managed projects for which sharing dependencies is
  desirable.
* Rye already has more traction than PDM in the community, despite its
  very young age (9k stars vs 6k stars).
* Rye's fully integrated approach drastically simplifies setup. You
  don't even need a working Python distribution to set up the dev
  environment!

To do:

* Migrate CI
* Migrate commands
* Update documentation
* Test in a standalone setup
@leroyvn leroyvn changed the title WIP: Move from PDM to Rye for project management Move from PDM to Rye for project management Feb 13, 2024
@leroyvn leroyvn merged commit e34b3f2 into main Feb 13, 2024
5 checks passed
@leroyvn leroyvn deleted the rye branch February 13, 2024 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant