-
Notifications
You must be signed in to change notification settings - Fork 3
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
Define a PDS standard to manage version in python project #2
Comments
@tloubrieu-jpl will orgnize a meeting on monday for that |
👪 Meeting Summary→ Goal: make releasing easy, error-free, and consistent:
Ideals, ideas, and observations:
A note on 🖥 Technologies and Standards
|
Question from @nutjob4life to @jordanpadams @tloubrieu-jpl what triggers the release is it a git push --tags or equivalent. or a release action in github (new release button), the later can create the tag automatically ? |
the team https://github.com/orgs/NASA-PDS/teams/pds-software-pmc is the group of people allowed to review pull request before merge. The same group should be able to create release. |
@tloubrieu-jpl also @NASA-PDS/pdsen-operations |
@tloubrieu-jpl @nutjob4life that being said, I am not stuck either way. in order to cleanup snapshots, you do need to manage tags as well. but either works. |
Let's try Versioneer with a pilot project (perhaps PDS (what other could it be?) Deep Archive?) and see how that goes. It seems closest to Maven so it should afford less errors due to the similar look-and-feel. If we like it, we can integrate it with the rest of the PDS Python-based projects. |
Ok, to start with Versionneer, @nutjob4life will test on pds-deep-archive |
@nutjob4life says we should use versionneer with setup.cfg |
Among following options:
We chose git-describe format. |
Use Sean input's here and decide which or the cocktail of which options are the best fit for PDS python projects:
Sean message:
Let me look at how some of the "big name" Python projects handle it. Regardless, you want version as queryable metadata in the package's main module (i.e., init). But you also don't want to repeat yourself and have that version also in setup.py or setup.cfg.
Pillow (Python Imaging) keeps a src/PIL/_version.py and reads a version attribute using exec and compile; clever. But not compatible with the new everything-in-the-setup.cfg approach now recommended.
Requests (easy HTTP) does the same thing. Also not compatible with everything-in-the-setup.cfg.
Pandas (structured data) uses an add-on, "Versioneer". This is closer to the Maven approach, looks interesting; see https://github.com/warner/python-versioneer
Numpy (numeric and matrix) hard-codes it in setup.py then uses the PyCharm IDE to sub values into version.py from version.pyi 🤢
The Roundup Action (Yee-haw :face_with_cowboy_hat:) uses a VERSION.txt file that is read by init.py to provide the version attribute but also uses the file: syntax in the new setup.cfg support to provide by runtime and buildtime support.
The text was updated successfully, but these errors were encountered: