This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Rearrange the RMG steps relating to the release branch and tag
authorSteve Hay <steve.m.hay@googlemail.com>
Fri, 16 Aug 2013 21:27:32 +0000 (22:27 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Fri, 16 Aug 2013 22:32:37 +0000 (23:32 +0100)
commitc90225edcba46bec1ec4972c79990bd16e62735e
tree8a96358346c52565854dfa6807314f88b425c5e4
parent82446b561fa3cf4c21487362a4c7cbfdd4807f73
Rearrange the RMG steps relating to the release branch and tag

The main steps in this regard in the current RMG are:

1. Commit the work as it's done to the local release branch
2. Push those commits to the remote release branch (creating it in the
   process)
3. Create a tag identifying the last commit in the release branch
4. Publish that release tag to the public repository
5. Merge the [local] release branch commits into the local blead branch
6. Push those merged commits to the remote blead branch

A recently added query in the RMG asked why it was necessary to push the
work so far (step (2) above), given that we're working on a release branch.

In an email discussion with RJBS we reached the conclusion that it is
indeed unnecessary: the merge in step (5) operates purely on the local
release branch, so there is no need to push anything first.

The release tag still needs to be pushed (step (4)), though, because in a
default Git configuration "git push" only pushes commits, not tags as well.
However, if we omit step (2) then it makes more sense to delay step (4)
until after steps (5) and (6) otherwise we are publishing a tag identifying
a commit that hasn't been pushed anywhere public yet.

The above sequence of steps has therefore been changed to:

1. Commit the work as it's done to the local release branch
2. Create a tag identifying the last commit in the local release branch
3. Merge the local release branch commits into the local blead branch
4. Push those merged commits to the remote blead branch
5. Publish the tag (which identifies the last of those pushed commits)
   to the public repository

For the same reasons, the "git push origin ...." when disarming
patchlevel.h in non-BLEAD-POINT releases has been removed since we're still
on the release branch at this point in the process.

Also, since we now never push anything to a remote release branch, there is
no longer any need to delete it. Only the local release branch needs
deleting.

Finally, the last "git commit" instruction in the RMG (regarding copying
perldelta.pod to blead for MAINT and BLEAD-FINAL releases) was lacking a
"git push origin ....": we're no longer on the release branch by this stage
of the process.
Porting/release_managers_guide.pod