-
Notifications
You must be signed in to change notification settings - Fork 485
Manage Python dependencies for Gramps development through pip #2031
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
base: master
Are you sure you want to change the base?
Manage Python dependencies for Gramps development through pip #2031
Conversation
|
With PEP 735, this seems like it'd be better in |
|
Ideally, yes, but I'd see that as a potential (much bigger) follow-up because it would involve refactoring the entire distribution build. Until then, this will at least allow us to improve the development experience. |
5a5f66d to
e6f5e04
Compare
|
In addition to the libraries mentioned in this PR's
I'm also using Arch Linux, and that requires the installation of
I'm using Python 3.13.2. |
|
Are those development-only dependencies? Because Gramps manages its production dependencies differently (through Operating System packages mostly), those would be out of scope for this PR. |
No. PyGobject is needed to connect to Gtk, GLib, and Pango for the GUI. PyICU is required for localization. orjson is used to access json-formatted fields in the database. |
|
Gotcha. So Nick (I think it was him) confirmed he wants production/runtime dependencies to be better managed in the future but that would require an overhaul of a bunch of code, so we decided to start with dev deps as a stepping stone that for now at least will make setting up development environments easier. |
|
The only dependencies that might be considered development only are those that are imported (or have symbols imported from them) by test code but not application code. Based on the results of That's a long winded way of saying that there aren't any development-only dependencies. |
|
The only dependencies that might be considered development only are those that are imported (or have symbols imported from them) by test code but not application code. Based on the results of |
|
Now some general comments: So all this PR does is add a layer of complexity to install the |
|
Development environments also live on developers' own machines. This PR improves that, and allows other build processes such as CI runs to migrate to it as well. I can do that for Black if that's desired. |
This introduces a pip requirements file that:
pip install -r requirements-dev.txt