Skip to content
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

Publish releases directly from Travis after applying a tag #3060

Closed
nicoddemus opened this issue Dec 23, 2017 · 4 comments
Closed

Publish releases directly from Travis after applying a tag #3060

nicoddemus opened this issue Dec 23, 2017 · 4 comments
Labels
type: infrastructure improvement to development/releases/CI structure type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature

Comments

@nicoddemus
Copy link
Member

nicoddemus commented Dec 23, 2017

In the light of the current problems with metadata in 3.3 and in the interest of making the releases even easier, I would like for us to move to a "publish on tag" method which we have been applying successfully in a number of pytest plugins (notably pytest-xdist).

I propose to change our release process to:

  1. Manually use our invoke tasks to run regendocs, changelog and push a PR with the changed contents (very similar to what we do today).
  2. After the PR is approved, we push a tag and Travis publishes the package automatically.

Notably missing from the current approach is using devpi and testing the package manually (I have been using devpi-cloud-tester); I think today the tools are mature enough where this step is not necessary, plus we already test using tox, which ensures the package is working properly.

Further @jaraco and a few others use this approach successfully, which gives me further confidence.

This is not fully automated yet, but I believe is a step in that direction nonetheless.

@nicoddemus nicoddemus added type: infrastructure improvement to development/releases/CI structure type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature labels Dec 23, 2017
@pytestbot
Copy link
Contributor

GitMate.io thinks the contributor most likely able to help you is @RonnyPfannschmidt.

@RonnyPfannschmidt
Copy link
Member

i was also intending to automate it in the following way

a) have pytestbot publish those regendoc executed branches to the pytest repo (because pushing tags to a pr only really works when we do it on the main repo)
b) create a own pypi upload tool because @TravisCI pypi deploys are broken and incorrectly report success/failure since years now - basically travis cant be trusted with correct tooling there

@nicoddemus
Copy link
Member Author

a) have pytestbot publish those regendoc executed branches to the pytest repo

By opening a PR you mean? Yeah that sounds like a plan. I was thinking this should be triggered by any merge to master or features.

We could have an app running somewhere that receives a merge event via webhooks, and then clones pytest/creates virtualenv/runs invoke regen/pushes a PR against the merged branch.

@conda-forge has a bot running in Heroku which does similar things (they listen for specific comments like @conda-forge-admin please rerender and that triggers the rerendering process in a PR; the bot then pushes the new commits).

because pushing tags to a pr only really works when we do it on the main repo

Actually it works, I've done this a few times already: by pushing the tag, you also push the PR's commits to the main repository. 😉

b) create a own pypi upload tool because @TravisCI pypi deploys are broken and incorrectly report success/failure since years now - basically travis cant be trusted with correct tooling there

I see what you mean, but I would like to follow with just using Travis deploy tool for now; I understand it may fail to deploy and still pass, but the worst outcome of that (while annoying) is just having to make a upload manually. Having a new invoke task for that seems like a good addition, but shouldn't block the main proposal here IMHO.

In summary I definitely like your ideas (they actually match what I had in the back of my mind for some time as well), but would like to implement what I mention in the initial post soon because it will simplify our deployment process at a very low cost. Your other suggestions are definitely a nice follow up.

@RonnyPfannschmidt
Copy link
Member

ah, i misunderstood the intent there - pushing tags to the main repo should indeed work
thanks for the clarification - its indeed a good progression

nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 9, 2018
nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 9, 2018
nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 15, 2018
nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 17, 2018
nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 17, 2018
nicoddemus added a commit to nicoddemus/pytest that referenced this issue Feb 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: infrastructure improvement to development/releases/CI structure type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature
Projects
None yet
Development

No branches or pull requests

3 participants