-
Notifications
You must be signed in to change notification settings - Fork 15
Puts requirements in pyproject #51
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: main
Are you sure you want to change the base?
Conversation
4239004
to
b81e358
Compare
b81e358
to
8fcceff
Compare
Ok it looks like I have to fix the CI to do this. This is definitely worth doing, but was a bit more effort than I was expecting |
I don't think we would want to make this change to only a single repo. Ideally the actions config should stay in sync between all of the circuitpython library repos. I don't necessarily think we would want to move the requirements into pyproject.toml either. I believe that some of the infrastructure utilities in use will expect that requirements.txt exist and contain the required libraries. I'm not sure that I see the up side to moving them out of |
I didn't have a specific problem in this case, but in general static configurations are "better" as they're more in-line with modern python packaging. Tools will generally support the static configuration natively (for example something like adding a dependency through the cli, or exporting groups of dependencies in an export format like requirements.txt together). This was definitely just a knee-jerk reaction to seeing that those were defined dynamically, and that my default position is "static definition through pyproject unless there's a good reason not to." One problem I do have is I personally generally use As you said, this should probably also just be done through the GitHub actions upstream. I don't think it would be too hard to add this to the upstream actions and do change this incrementally across all the libraries as they have time to update, since it's pretty easy to export a TLDR: More tools are supported with static configs, so dynamic dependencies should usually be an escape hatch when needed, at least in my opinion. Probably not a big need to change it, but it's probably a good idea to do so. This should probably be done in a PR upstream. |
To reply to this:
I would argue that the tools should be updated to also support |
Hi y'all! I was looking through open PRs and saw this one, not sure if there was more discussion after this. @FoamyGuy is correct in that much of our infrastructure expects this current state across all the libraries. Primarily, automated library checking tool (adabot) would almost certainly need updates, as well as the cookiecutter repository used to make new repositories, as well as patching the old ones en masse. The first and last ones are probably the most difficult, I think. Based on work I did to move the libraries off of |
Yeah there wasn't more discussion, and least from me. I'm not super active here, so my opinion on what y'all should do is very much backseating the project, but in general I think it's a reasonable recommendation from me to try and move infrastructure towards more modern python standards of the will to do so is there. That being said, this should probably be an iterative process rather than a "do everything all at once" project since there are so many things to change To me, someone who doesn't have intimate knowledge of the situation here, that seems to be the best path forward without causing a huge disruption. I personally would recommend this be done, but again, I'm not really a stakeholder here, so that should definitely be done only with more discussion. |
This just puts the requirements into pyproject statically, as opposed to dynamically defining them with setup tools.