Skip to content

Make filename for single st2client file / release reusable #10392

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

Closed
winem opened this issue Nov 21, 2021 · 4 comments
Closed

Make filename for single st2client file / release reusable #10392

winem opened this issue Nov 21, 2021 · 4 comments

Comments

@winem
Copy link

winem commented Nov 21, 2021

What's the problem this feature will solve?
This will unblock us, the StackStorm maintainers (https://github.com/StackStorm/st2) in the release process. One of our scripts failed while releasing our latest release 3.6.0 of the st2client (https://pypi.org/manage/project/st2client/) and we had to trigger it again. Unfortunately it's not yet idempotent. So we fixed the issue and removed the release 3.6.0 from PyPI to ensure that our script will work without deviations on the 2nd run. Now we can't upload the 3.6.0 artifacts again.

Describe the solution you'd like
While we understand that there are good reasons have non-reusable filenames, it would be great and highly appreciated if there is any chance to make an exception. st2client 3.6.0 was available for less than 3 hours on saturday evening.

Selection_314

Additional context
This would be really helpful and allow us to complete the release process without having to increment the versions of all our components and restart the whole process. st2client is "just" the tool to manage and orchestrate StackStorm. The files we'll upload will be exactly the same as those that were uploaded on Saturday. The issue we fixed was a configuration issue related to the vagrant/OVA setup and occurred at a latter step in the same workflow as we use to publish the packages to PyPI. So there is no change to the code of the st2client package itself.

It would be great if this can be done!

@ewjoachim
Copy link
Contributor

If I'm not mistaken, if you do a 3.6.0.post0, pip will recognize it as a 3.6.0 while still having a different version number. https://www.python.org/dev/peps/pep-0440/#post-releases

Would that solve the issue for you ?

@winem
Copy link
Author

winem commented Nov 22, 2021

That's actually something I'm currently evaluating, too. We do know that this requires some changes on our release scripts and the CI/CD but it's a bit tricky to identify all the places where we have to take care of it in advance.

Our biggest pain point with the current situation is that some of our components are already released and available (i.e. on dockerhub) but others like the st2client aren't. With your support we'll be able to publish our components to all platforms before EOB today, without it will probably take a few more days.

We already created tasks to discuss .point releases in the future and make our CD scripts idempotent.

So it would still be super helpful if you can support us here.

@di
Copy link
Member

di commented Nov 22, 2021

Hi @winem, thanks for creating the issue. In the short term, we're unable to offer an exception for st2client project, as it's both against our general policy to make exceptions like this, and also not something we have the technical ability to easily do without making changes to PyPI and to assumptions that downstream mirrors make about consuming artifacts from PyPI.

Like @ewjoachim mentioned, post-releases should be used for exactly this kind of situation, and should work exactly the same with installers like pip. I'd recommend this as your best path forward here.

Long-term, resolving #4440 would satisfy this use case, so I'm going to close this issue as a duplicate of that issue.

@di di closed this as completed Nov 22, 2021
@winem
Copy link
Author

winem commented Nov 22, 2021

Hi @di,

thanks for the feedback. I totally understand that.

I'll see if I can contribute something to #4440.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants