-
Notifications
You must be signed in to change notification settings - Fork 259
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
PyPi releases do not always match repo code #322
Comments
0.0.17 was my bad, I attempted to build 0.0.18 but forgot to versionbump. |
@jettify is it worth getting travis to somehow republish 0.0.17? |
@terrycain you cannot edit published dists. |
At first, I did deploy manually so something could be missing, but now we have build script so, I believe the situation will improve, also @terrycain watching my back now. |
We still need to manually bump version and updated changes, if someone has ideas how to improve this please share. |
@jettify I have a completely tested and working flow where the only thing needed is just pushing a new tag. It's a single source of truth. |
I've solved that in the past with |
Which proves to be error-prone because of human presence in deployment chain. |
@jettify @terrycain do you still want hardcoded version based flow? |
@webknjaz im not too fussed, if we can push a tag and thats all, as you said less error prone is better. You got an example of that magical solution, im interested. |
I've been using this flow with setuptools-scm plugin for years. Andrew doesn't want it for aiohttp, but I'm pretty sure that other repos can rely on this all long as their maintainers want this. I can prepare a PR if there's no objections. |
Sure, as long as @jettify has no objections |
It looks like @jettify doesn't care... |
Sure raise pr :). I converted one of my projects to setuptools SCM the other day. Really nice |
I am on long business trip, do not have lots of time right now. Will take a look once back to the town.
… On Nov 19, 2018, at 11:00, Sviatoslav Sydorenko ***@***.***> wrote:
It looks like @jettify doesn't care...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@jettify still there? |
So |
with setuptools-scm you don't need to store version in a python file (but there's an option to do so). you can grab the installed version via pkg_resources. |
I think having version in |
so when current commit is tagged, setuptools sets version to that tag value, if it's not tagged then version will be tag+patch_bump+local_version_spec. |
So I'll do smth like https://github.com/pytest-dev/pytest/blob/master/setup.py#L29 then |
But version is not present in git ... |
And yet it's in sync with the source |
Is it possible to have commit that bumps version? |
Why would you need it? It creates desynchronized source |
You need a version in dist because it doesn't have Git tree context. Git itself has tags. It'd be pointless to have a file different from a tag. |
@webknjaz does git plugin replace |
Almost: it generates a new module. So I'd not combine it with other code and have a separate file for version. |
e.g. |
In my experience release publishing requires a little more work than just version pinning. |
You should always keep in mind to match the tag version with source anyway. I think that if you maintain a ton of dists this simple thing makes release process much easier. |
@jettify ? |
I love automation but version pinning takes less than 30 seconds for every release. |
While trying to work out why installing
0.0.17
still triggered the issue outlined in #302, I started looking at other versions and discovered that a few of them don't appear to match the code tagged for that release in this repo.I've done a rudimentary check on the last 5 versions by doing a very lazy test, just checking if the version of
pymysql
matches between the git tag and the pypi release, here are the results:0.0.15
: match0.0.16
: doesn't match0.0.17
: doesn't match0.0.18
: no release0.0.19
: matchAt best this is awfully confusing because according to the code
0.0.17
was the first release to have the conservative version pinning forpymysql
, but in fact that's some how made it into the0.0.16
release (which the code doesn't reflect) but not into0.0.17
.It's a little unsettling to find that the versions released in PyPi don't always match the tagged code releases. Is this some sort of mistake or quirk in the shipping process? 😕
Possibly related: #318
The text was updated successfully, but these errors were encountered: