Skip to content

Commit

Permalink
for 4.11.5
Browse files Browse the repository at this point in the history
  • Loading branch information
bobjacobsen committed Apr 14, 2018
1 parent c73dfcb commit cf304cb
Showing 1 changed file with 53 additions and 53 deletions.
106 changes: 53 additions & 53 deletions scripts/HOWTO-distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ If you're attempting to perform this on MS Windows, refer to the MS Windows note

- Update this note by (details in the update-HOWTO.sh comments; arguments when you run it should be last release, this release you're making, the next release; you may need to update):
```
./scripts/update-HOWTO.sh 4.11.4 4.11.5 4.11.6
./scripts/update-HOWTO.sh 4.11.5 4.11.6 4.11.7
```
(and then manually update that line above to be last version released, this version being made today, next version to be made later; i.e. when starting to do *.4, the arguments after you edit it here are *.4 *.5 *.6)

- To check the script ran OK, the following should be the release you're doing now: 4.11.4
- To check the script ran OK, the following should be the release you're doing now: 4.11.5

- Go to the master branch on your local repository. Pull back from the main JMRI/JMRI repository to make sure you're up to date.

Expand All @@ -81,7 +81,7 @@ If you're attempting to perform this on MS Windows, refer to the MS Windows note

- Bring in all possible GitHub JMRI/JMRI [pull requests](https://github.com/JMRI/JMRI/pulls)

- Bring in all possible [sf.net patches](https://sourceforge.net/p/jmri/patches/), including decoders
- We no longer check [sf.net patches](https://sourceforge.net/p/jmri/patches/)

- Check if the decoder definitions have changed since the previous release (almost always true) If so, remake the decoder index.

Expand Down Expand Up @@ -159,7 +159,7 @@ We roll some general code maintenance items into the release process. They can
- Commit the current copy of these notes. Push directly back to master on GitHub.

```
git commit -m"for 4.11.4" scripts/HOWTO-distribution.md
git commit -m"for 4.11.5" scripts/HOWTO-distribution.md
git push github
```

Expand All @@ -176,13 +176,13 @@ git push github
```
cd (local web copy)/releasenotes
git pull
cp jmri4.11.4.shtml jmri4.11.5.shtml
cp jmri4.11.5.shtml jmri4.11.6.shtml
(edit the new release note accordingly)
change numbers throughout
move new warnings to old
remove old-version change notes
git add jmri4.11.5.shtml
git commit -m"start new 4.11.5 release note" jmri4.11.5.shtml
git add jmri4.11.6.shtml
git commit -m"start new 4.11.6 release note" jmri4.11.6.shtml
git push github
cd (local JMRI copy)
```
Expand All @@ -197,7 +197,7 @@ where the date at the end should be the date (and optionally time) of the last r

- (MANUAL STEP FOR NOW) Update the <version> element in pom.xml to say the current release:
```
<version>4.11.4-SNAPSHOT</version>
<version>4.11.5-SNAPSHOT</version>
```
Commit, and push back directly to master (this should be the only change, and has to be before the next step)

Expand All @@ -211,28 +211,28 @@ Commit, and push back directly to master (this should be the only change, and ha
- Put the following comment in the release GitHub item saying the branch exists, and all future changes should be documented in the new release note: (NOT FOR THE LAST TEST RELEASE FROM MASTER BEFORE A PRODUCTION RELEASE)

```
The release-4.11.4 branch has been created.
The release-4.11.5 branch has been created.
From now on, please document your changes in the [jmri4.11.5.shtml](https://github.com/JMRI/website/blob/master/releasenotes/jmri4.11.5.shtml) release note file.
From now on, please document your changes in the [jmri4.11.6.shtml](https://github.com/JMRI/website/blob/master/releasenotes/jmri4.11.6.shtml) release note file.
Maintainers, please set the 4.11.5 milestone on pulls from now on, as that will be the next test release from the HEAD of the master branch.
Maintainers, please set the 4.11.6 milestone on pulls from now on, as that will be the next test release from the HEAD of the master branch.
Jenkins will be creating files shortly at the [CI server](http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.4/)
Jenkins will be creating files shortly at the [CI server](http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.5/)
````

FOR THE LAST TEST RELEASE FROM MASTER BEFORE A PRODUCTION RELEASE:
```
The release-4.11.4 branch has been created.
The release-4.11.5 branch has been created.
From now on, please document your changes in the [jmri4.11.5.shtml](https://github.com/JMRI/website/blob/master/releasenotes/jmri4.11.5.shtml) release note file.
From now on, please document your changes in the [jmri4.11.6.shtml](https://github.com/JMRI/website/blob/master/releasenotes/jmri4.11.6.shtml) release note file.
Maintainers, please set the 4.11.5 milestone on pulls from now on, as that will be the next test release from the HEAD of the master branch.
Maintainers, please set the 4.11.6 milestone on pulls from now on, as that will be the next test release from the HEAD of the master branch.
Jenkins will be creating files shortly at the [CI server](http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.4/)
Jenkins will be creating files shortly at the [CI server](http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.5/)
If you're developing any additional (post-4.11.4) changes that you want in the JMRI 4.10 production release, please start from this branch, i.e. do
If you're developing any additional (post-4.11.5) changes that you want in the JMRI 4.10 production release, please start from this branch, i.e. do
```
git checkout -b release-4.11.4
git checkout -b release-4.11.5
```
to start your work.
```
Expand Down Expand Up @@ -263,11 +263,11 @@ to start your work.

- Change the release note to point to the just-built files (in CI or where you put them), commit, wait (or force via ["Build Now"](http://builds.jmri.org/jenkins/job/Web%20Site/job/Website%20from%20JMRI%20GitHub%20website%20repository/) update). Confirm visible on web.

- Announce the file set via email to jmri-developers@lists.sf.net with a subject line "First 4.11.4 files available":
- Announce the file set via email to jmri-developers@lists.sf.net with a subject line "First 4.11.5 files available":

First JMRI 4.11.4 files are available in the usual way at:
First JMRI 4.11.5 files are available in the usual way at:

http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.4
http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.5

Feedback appreciated. I would like to release this later today or tomorrow morning if the files are OK.

Expand All @@ -278,23 +278,23 @@ Feedback appreciated. I would like to release this later today or tomorrow morni

If anybody wants to add a change from here on in, they should

- Ideally, start the work on either the release-4.11.4 branch (if working after that was started) or on a branch-from-master that's _before_ the release-4.11.4 branch was created. That way, the change can be cleanly included in the release branch, and also directly onto master.
- Ideally, start the work on either the release-4.11.5 branch (if working after that was started) or on a branch-from-master that's _before_ the release-4.11.5 branch was created. That way, the change can be cleanly included in the release branch, and also directly onto master.

- Commit their changes to that branch, and push as needed to get it to their GitHub fork.

- On the GitHub web site, make _two_ pull requests:

- One to master, as usual

- One to the release branch e.g. "release-4.11.4". The comment on this PR should explain why this should be included instead of waiting for the next release.
- One to the release branch e.g. "release-4.11.5". The comment on this PR should explain why this should be included instead of waiting for the next release.

Merging the PR to the master makes those changes available on further developments forever; the one on the release, if accepted, includes the change and kicks off new runs of the various CI and build jobs.

Note: The GitHub automated CI tests do their build after doing a (temporary) merge with the target branch. If the release branch and master have diverged enough that a single set of changes can't be used with both, a more complicated procedure than above might be needed. In that case, try a PR onto the release branch of the needed change, and then pull the release branch back onto the master branch before fixing conflicts.

If somebody has merged their change into master (or it's branched from master later than the release tag), you have two choices:

- Merge master into the release-4.11.4 branch. This will bring _everything_ that's been merged in, so remember to update the version markers on those PRs. Effectively, you've just started the release process later. Note that the `release.properties` file will have the wrong minor number in it: You'll have to edit and commit that to get the right number in the release.
- Merge master into the release-4.11.5 branch. This will bring _everything_ that's been merged in, so remember to update the version markers on those PRs. Effectively, you've just started the release process later. Note that the `release.properties` file will have the wrong minor number in it: You'll have to edit and commit that to get the right number in the release.

- `git cherrypick` just the changes you want. Read the documentation on that command carefully and double check your work. If possible, check the contents of the release branch on the GitHub web site to make sure only the changes you wanted were included.

Expand Down Expand Up @@ -323,7 +323,7 @@ This has the nice property that if multiple things arise, they can definitely be

Run a script to download the created files, create checksums and create text for release notes, etc
```
./scripts/releasesummary 4.11.4
./scripts/releasesummary 4.11.5
```

====================================================================================
Expand All @@ -346,29 +346,29 @@ Note: Once a GitHub Release is created it is *not* possible to change it to refe

- Fill out form:

- "tag version field" gets v4.11.4 (e.g. leading lower-case "v")
- @ branch: select the release-4.11.4 release branch
- "tag version field" gets v4.11.5 (e.g. leading lower-case "v")
- @ branch: select the release-4.11.5 release branch
```
"Release title" field gets "Test/Prod Release 4.11.4"
"Release title" field gets "Test/Prod Release 4.11.5"
```
- Description content (the releasesummary script above proposed this!):
```
[Release notes](http://jmri.org/releasenotes/jmri4.11.4.shtml)
[Release notes](http://jmri.org/releasenotes/jmri4.11.5.shtml)
Checksums:
File | SHA256 checksum
---|---
[JMRI.4.11.4.R72446d4.dmg](https://github.com/JMRI/JMRI/releases/download/v4.11.4/JMRI.4.11.4.R72446d4.dmg) | 7852de77d6bf44c8a677d3229ebaa38115258a0afc518667e3e7f8d6a89a2ce3
[JMRI.4.11.4.R72446d4.exe](https://github.com/JMRI/JMRI/releases/download/v4.11.4/JMRI.4.11.4.R72446d4.exe) | 8a2b32d6c1da0664502b2d4660c93c5853fc9b988a29bfd0255586c56fe91499
[JMRI.4.11.4.R72446d4.tgz](https://github.com/JMRI/JMRI/releases/download/v4.11.4/JMRI.4.11.4.R72446d4.tgz) | 46bf97d949c43e6d7c95d61c741efb12698158658b5ccebd3cffb892e3803c19
[JMRI.4.11.5.R72446d4.dmg](https://github.com/JMRI/JMRI/releases/download/v4.11.5/JMRI.4.11.5.R72446d4.dmg) | 7852de77d6bf44c8a677d3229ebaa38115258a0afc518667e3e7f8d6a89a2ce3
[JMRI.4.11.5.R72446d4.exe](https://github.com/JMRI/JMRI/releases/download/v4.11.5/JMRI.4.11.5.R72446d4.exe) | 8a2b32d6c1da0664502b2d4660c93c5853fc9b988a29bfd0255586c56fe91499
[JMRI.4.11.5.R72446d4.tgz](https://github.com/JMRI/JMRI/releases/download/v4.11.5/JMRI.4.11.5.R72446d4.tgz) | 46bf97d949c43e6d7c95d61c741efb12698158658b5ccebd3cffb892e3803c19
```

- Attach files by selecting them or dragging them in (you might have to have downloaded them above via e.g. a separate
```
curl -o release.zip "http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.4/lastSuccessfulBuild/artifact/dist/release/*zip*/release.zip""
curl -o release.zip "http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.5/lastSuccessfulBuild/artifact/dist/release/*zip*/release.zip""
```
and expansion; it's slow to upload from a typical home connection, though, so wish we had a way to cross-load from somewhere fast

Expand All @@ -387,7 +387,7 @@ git fetch
git checkout master
git pull
git checkout -b temp-master
git merge origin/release-4.11.4
git merge origin/release-4.11.5
```

Note that you're testing the merge of the release branch back onto master. This should report "Already up-to-date.", i.e. no changes, with the possible exception of some auto-generated files:
Expand All @@ -406,12 +406,12 @@ If there are any changes in other files, do both of:

- You can delete that temp-master local branch now

- Create the next [GitHub Issue](https://github.com/JMRI/JMRI/issues) to hold discussion with conventional title "Create Test Release 4.11.5". Add the next release milestone (created above) to it. Typical text:
- Create the next [GitHub Issue](https://github.com/JMRI/JMRI/issues) to hold discussion with conventional title "Create Test Release 4.11.6". Add the next release milestone (created above) to it. Typical text:
```
This is the third release of the 4.12 cycle. It's intended to be released around April 11 from HEAD of master.
```

- Confirm that the tag for the current release (release-4.11.4) is in place, then manually delete the current release branch via the [GitHub UI](https://github.com/JMRI/JMRI/branches).
- Confirm that the tag for the current release (release-4.11.5) is in place, then manually delete the current release branch via the [GitHub UI](https://github.com/JMRI/JMRI/branches).

- Go to the GitHub PR and Issues [labels list](https://github.com/JMRI/JMRI/labels) and remove any "afterNextTestRelease" (and "afterNextProductionRelease" if appropriate) labels from done items

Expand All @@ -431,7 +431,7 @@ git checkout -b (release-n.n.n+1)
git push github
```

- Create the next [GitHub Issue](https://github.com/JMRI/JMRI/issues) to hold discussion with conventional title "Create Test Release 4.11.5". Add the next release milestone (created above) to it. Typical text:
- Create the next [GitHub Issue](https://github.com/JMRI/JMRI/issues) to hold discussion with conventional title "Create Test Release 4.11.6". Add the next release milestone (created above) to it. Typical text:
```
This is the third release of the 4.12 cycle. It's intended to be released around April 11 from HEAD of master.
```
Expand All @@ -455,14 +455,14 @@ git push github

ant realclean compile
cd target
rm properties.4.11.4.zip
rm properties.4.11.5.zip

# the following will take several minutes
foreach x ( `find classes -name \*.properties` )
printf '%s\n' 0a '# from tag v4.11.4' . x | ex $x
printf '%s\n' 0a '# from tag v4.11.5' . x | ex $x
end

find classes -name \*.properties | zip -@ properties.4.11.4.zip
find classes -name \*.properties | zip -@ properties.4.11.5.zip

Then decide what to do with it. Attach to release?

Expand All @@ -472,27 +472,27 @@ Then decide what to do with it. Attach to release?

- Mail announcement to jmriusers@yahoogroups.com

Subject is "Test version 4.11.4 of JMRI/DecoderPro is available for download" or "JMRI 4.8 is available for download"
Subject is "Test version 4.11.5 of JMRI/DecoderPro is available for download" or "JMRI 4.8 is available for download"

Content:

Test version 4.11.4 of JMRI/DecoderPro is available for download.
Test version 4.11.5 of JMRI/DecoderPro is available for download.

This is the next in a series of test releases that will culminate in a production release, hopefully in Summer 2018.

- Alt: There have been a lot of updates in this version, so it should be considered experimental.
- Alt: We're getting close to the end of the development series, so we'd appreciate feedback on whether or not this release works for your layout.

If you use JMRI on Linux or Mac and are updating from JMRI 4.7.3 or earlier, there’s a necessary migration step. (Not needed on Windows) Please see the release note for details: <http://jmri.org/releasenotes/jmri4.11.4.shtml#migration>
If you use JMRI on Linux or Mac and are updating from JMRI 4.7.3 or earlier, there’s a necessary migration step. (Not needed on Windows) Please see the release note for details: <http://jmri.org/releasenotes/jmri4.11.5.shtml#migration>

For more information on the issues, new features and bug fixes in 4.11.4 please see the release note:
<http://jmri.org/releasenotes/jmri4.11.4.shtml>
For more information on the issues, new features and bug fixes in 4.11.5 please see the release note:
<http://jmri.org/releasenotes/jmri4.11.5.shtml>

Note that JMRI is made available under the GNU General Public License. For more information, please see our copyright and licensing page.
<http://jmri.org/Copyright.html>

The download links, along with lots of other information which we hope you'll read, can be found on the release note page:
<http://jmri.org/releasenotes/jmri4.11.4.shtml>
<http://jmri.org/releasenotes/jmri4.11.5.shtml>


- If a production version, update the SF automatic download icon by selecting default in SF.net FRS (3 times)
Expand Down Expand Up @@ -546,7 +546,7 @@ If you're building locally:
- Get the release in your local work directory

```
git checkout release-4.11.4
git checkout release-4.11.5
```

- edit release.properties to say release.official=true (last line)
Expand Down Expand Up @@ -654,9 +654,9 @@ Possibilities for automating GitHub release creation:
Alternatively, if you have shell access to the Jenkins server, you perhaps can upload directly from there, once the initial draft release has been created (this hasn't been tested):

```
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.4 -n "JMRI.4.11.4+Rd144052.dmg" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.11.4/workspace/dist/release/JMRI.4.11.4+Rd144052.dmg
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.4 -n "JMRI.4.11.4+Rd144052.exe" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.7.5/workspace/dist/release/JMRI.4.11.4+Rd144052.exe
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.4 -n "JMRI.4.11.4+Rd144052.tgz" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.7.5/workspace/dist/release/JMRI.4.11.4+Rd144052.tgz
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.5 -n "JMRI.4.11.5+Rd144052.dmg" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.11.5/workspace/dist/release/JMRI.4.11.5+Rd144052.dmg
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.5 -n "JMRI.4.11.5+Rd144052.exe" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.7.5/workspace/dist/release/JMRI.4.11.5+Rd144052.exe
github-release upload -s {github_secret} -u JMRI -r JMRI -t v4.11.5 -n "JMRI.4.11.5+Rd144052.tgz" -f /var/lib/jenkins/jobs/TestReleases/jobs/4.7.5/workspace/dist/release/JMRI.4.11.5+Rd144052.tgz
```

(It might be possible to automate this in Ant, see http://stackoverflow.com/questions/24585609/upload-build-artifact-to-github-as-release-in-jenkins )
Expand All @@ -671,13 +671,13 @@ This step uploads the Linux, Mac OS X and Windows files to the SourceForge file

(replace "user" below with your SourceForge.net user name; must have SSH keys for SourceForge.net set up)

- (The "./testrelease 4.11.4" local script on shell.sf.net does the following steps, except for the edit, of course)
- (The "./testrelease 4.11.5" local script on shell.sf.net does the following steps, except for the edit, of course)
```
ssh user,jmri@shell.sf.net create
ssh user,jmri@shell.sf.net
curl -o release.zip "http://builds.jmri.org/jenkins/job/Test%20Releases/job/4.11.4/ws/dist/release/*zip*/release.zip"
curl -o release.zip "http://builds.jmri.org/jenkins/job/Test%20Releases/job/4.11.5/ws/dist/release/*zip*/release.zip"
(use the following instead if building on second Jenkins server)
curl -o release.zip "http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.4/ws/dist/release/*zip*/release.zip"
curl -o release.zip "http://builds.jmri.org/jenkins/job/TestReleases/job/4.11.5/ws/dist/release/*zip*/release.zip"
rm release/JMRI*
unzip release.zip
cd release
Expand Down

0 comments on commit cf304cb

Please sign in to comment.