pypa / setuptools-scm

the blessed package to manage your versions by scm tags
https://setuptools-scm.readthedocs.io/en/latest/
MIT License
867 stars 214 forks source link

Inconsistency between `setuptools_scm.get_version()` and `write_to` results #968

Open abhinavsingh opened 1 year ago

abhinavsingh commented 1 year ago

We use the following to automatically write a version file upon pip install -e . which then gets shipped within the container.

[tool.setuptools_scm]
write_to = "path/to/somewhere/_scm_version.py"

During Python repo's build process, we collect static and push to a cloud storage. Path for upload is generated using setuptools_scm.get_version() by the build process. During runtime, server is able to appropriately point to storage based upon version written in _scm_version.py. This has worked for 99% of the scenarios for us till now, but we are starting to experience inconsistencies between the two results. Below is an example:

Notice 7 vs 8 character hash, which leads to service unable to load necessary static. Per https://git-scm.com/docs/git-describe#_examples I understand that "The length of the abbreviation scales as the repository grows, using the approximate number of objects in the repository and a bit of math around the birthday paradox, and defaults to a minimum of 7", but why this inconsistency within setuptools_scm.

As a workaround:

RonnyPfannschmidt commented 1 year ago

you could request the full nodeid instead of a abbreviation in a custom command

ts not lear to me whats the issue

i suspect there may be inonsistenc in the way setuptools_scm abbreviates (i do recall we have a fewl ....[:7] there