-
-
Notifications
You must be signed in to change notification settings - Fork 43
Release command 🚀 #243
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
Release command 🚀 #243
Conversation
I know the code is totally crap right now. This is some example of output when executing this command against
Without colors |
Disabled travis for now on this PR, I don't want to trigger a lot of builds when pushing commits |
https://github.com/park-manager/hubkit Feel free to reuse the Version class which automatically determines the next possible version, validates gaps, etc 😃 Just make sure to keep the Edit. Hmm, maybe I can move these to there own library 🤔 |
Hmm, that would be nice, but I know what the next version should be by looking at the labels of all PRs. Is there a way to do that with your class @sstok ? I mean, given a current release and a |
I have a question about github. When you tag a new version, how do you mark it as the latest release? The thing is, when executing this command, I check for the latest release, but looking at https://github.com/sonata-project/SonataDoctrineORMAdminBundle/releases |
We can use this: https://developer.github.com/v3/repos/contents/#get-contents To get the content of the changelog, then prepend the new changelog and use that other method: https://developer.github.com/v3/repos/contents/#update-a-file To update it and create a commit for the next release, then use this: https://developer.github.com/v3/git/tags/#create-a-tag-object To create the tag pointing to that commit sha, and finally use this: https://developer.github.com/v3/repos/releases/#create-a-release To create the release pointing to that tag. 🎉 WDYT @sonata-project/contributors, sounds nice, but also risky if something goes wrong EDITWith that method there is no GPG signature on the release/tag (https://developer.github.com/changes/2016-04-04-git-signing-api-preview/). Looking at how symfony does that, seems that they have a method that creates a PR and auto merges with the changes on changelog and version: Looking at that PR there is no signature verification, seems like its automated. But then if we look at the tag / release , it is verified, so maybe that step is manual at the moment. |
Yes, you can take a version say v1.2.4 and ask for an increase of any part, including alpha, beta, rc, etc. v1.2.4 + minor = v1.3.0 https://github.com/park-manager/hubkit/blob/master/src/Helper/Version.php#L177 But there is a minor catch if you want to jump from v1.2.4 to 2.0.0-ALPHA1, you need to create this version explicit as you can also have v1.3.0-ALPHA1. And all versions must follow the semver scheme (
|
Thanks @sstok , will try to refactor the |
b8d4074
to
45ba8bd
Compare
1d8c1f6
to
4b92065
Compare
326c26b
to
104b73f
Compare
My proposal is to leave this PR with only a command to show what the current state of the branch and what will be the changelog of the new version, status of merged PRs, etc.. And create another PR after this one is merged to do the automatic Pull request with the new changelog (maybe with automerge) and show to the user what commands needs to execute to create the tag (maybe?) WDYT @sonata-project/contributors |
And currently I cannot execute this command for |
as we were generating this changelog from now on, should we add the authors like symfony does? ping @sonata-project/contributors |
The authors would be a really really nice touch! |
Give me the format of authors, and I will add it. |
I already added The pull request associated with every line of the changelog. But agree that having the author is nice too |
IMO this PR was a big amount of work and @jordisala1991 did it great! This PR was opened 3 Months ago and still no merge. It would be great to get a tool which provides as much as it can help to create a new release... |
I can write some tests, but I will also like to know the current state of this PR first. (And IMO it can be done in another step, because this will delay a lot this PR, it won't be easy to test everything) |
We should merge this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: No request change but I will handle the rest manually later.
Soon this will be a year old, 🎉 |
That's cute! tpope/vim-pathogen#142 |
Any progress here? |
Can we finally merge this, if this is still an open topic... |
Does somebody know what this means? |
No idea, does the PR is still useful? I can continue the work if this will help the release process and have a chance to get merged |
I will try it for next release and see how it compares to the bash script I wrote, maybe we will end up with a mix of both :P |
f19e371
to
dd66d16
Compare
This release command with help the release manager to generate the needed changelog and check that every PR is well formed, have the correct labels, and have the needed changelog associated.
75108be
to
3e036ff
Compare
I rebased the PR, squashed all commits, and fixed some of the reviews you have made here. For the command... IMO we should go with a similar strategy than Symfony uses. They have several commands, but the most important ones are (seen in a Symfony meetup):
This PR is going for the first step, we still missing the automatic PR creation but it can be done later too. Once we are good for the first step, we can go for the second to automate the process of creating the tag and the release wdyt @sonata-project/contributors ? |
I agree, let's not try to do everything at once. |
Sullivan will not review this again
Thanks @jordisala1991 ! |
Thank you :) I will start thinking of next steps |
Command to make releases easy.
ToDo
Nice to have
Subject
There are a lot of manual tasks that can be done automatically. Maybe we don't start with a full automatic release process, but this will be the first step.
Yes, we can:
https://developer.github.com/v3/repos/contents/#get-contents
https://developer.github.com/v3/repos/contents/#update-a-file
https://developer.github.com/v3/git/tags/#create-a-tag-object
https://developer.github.com/v3/repos/releases/#create-a-release