Difference between revisions of "Release Instructions"
(→Release) |
LegacyKing (talk | contribs) (→Create Release Notes) |
||
(42 intermediate revisions by 4 users not shown) | |||
Line 6: | Line 6: | ||
Here are the steps to follow when making a release of PCGen. If it is your first time, please check the prereqs section at the bottom of this page. | Here are the steps to follow when making a release of PCGen. If it is your first time, please check the prereqs section at the bottom of this page. | ||
+ | |||
+ | ==Prerequisites== | ||
+ | The first time you run a release you will have to make sure you have the following tools available: | ||
+ | ===Release Notes=== | ||
+ | * Text editor | ||
+ | * Web browser | ||
+ | * Perl interpreter | ||
+ | * Perl modules: readonly (installed on Windows via ActivePerl's Perl Package Manager) | ||
+ | |||
+ | ===Release=== | ||
+ | * Java SDK 1.8 (the one that includes the javac compiler) --FOR PCGEN 6.07.x | ||
+ | * Gradle 1.x | ||
+ | * git | ||
+ | * Perl interpreter | ||
+ | * [http://nsis.sourceforge.net/Download NSIS] | ||
+ | |||
+ | ===Outstanding Issues=== | ||
+ | You need to check JIRA for any outstanding issues to ensure the release meets our QA std. | ||
+ | |||
+ | * Alpha releases require no Blockers, allow Critical only with Code lead exception | ||
+ | * Beta releases require no Blockers or Criticals | ||
+ | * RCs/final releases require no Blockers, Criticals, or Majors | ||
==Create Release Notes== | ==Create Release Notes== | ||
− | # Update your local copy of pcgen from | + | # Update your local copy of pcgen from github |
# Copy the previous set of release notes to pcgen-release-notes-nnn.html where nnn is the version number. | # Copy the previous set of release notes to pcgen-release-notes-nnn.html where nnn is the version number. | ||
# Do a global replace of the old version number to the new version number, both as n.nn.n and nnnn | # Do a global replace of the old version number to the new version number, both as n.nn.n and nnnn | ||
− | # Open | + | # Open Jira and for each project open the release notes for the version. |
− | # | + | # Copy the html to the changelog section, changing h2 tags to h3. |
− | # | + | # Update the What's New section with any high profile changes. |
+ | # Update the Thanks section with the list of people who committed during the cycle. The search filter "is:pr is:closed is:merged updated:>2015-02-09" is useful for triming the list of pull request to those included in the release. | ||
# Commit the new release notes and notify pcgen_bod so they can review it. | # Commit the new release notes and notify pcgen_bod so they can review it. | ||
# Notify pcgen dev and experimental lists of upcoming release, asking for autobuilds to be tested. Best to give 24 hours notice. | # Notify pcgen dev and experimental lists of upcoming release, asking for autobuilds to be tested. Best to give 24 hours notice. | ||
+ | |||
+ | |||
+ | == Release Notes Placeholder == | ||
+ | * https://pcgenorg.atlassian.net/projects/CODE?orderField=RANK&selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased | ||
==The Build== | ==The Build== | ||
# Using a clean directory with no changes to the pcgen files | # Using a clean directory with no changes to the pcgen files | ||
− | # ''' | + | # '''git pull master''' the PCGen repository (5 mins) |
− | # Release manager edits src/java/pcgen/ | + | # Release manager edits '''pcgen/code/src/java/pcgen/resources/prop/PCGenProp.properties''' to set the release date, version number, contributors, etc. and commit the result (5 mins) |
− | # Execute ''' | + | # If switching to or from RC mode, edit '''gradle.properties''' and adjust the version number to be in the correct format. e.g. '''6.04.00 RC1''' or '''6.04.00''' |
− | # Check | + | # Execute '''gradle prepareRelease slowtest''' OR IF USING WINDOWS ('''gradle prepareRelease slowtest --project-cache-dir c:\gradle\cache''') in the pcgen directory and verify there are no failing Junit test. Also check if there are any "Unknown publisher" messages. If so you need to add new entries for the listed publishers to the '''gendatalist.pl''' script. (20 mins) |
− | # | + | # Check Jira for any closed requests missing from the release notes. Steps 4 and 6 of 'Create Release Notes' section above can be used to assist here. (10 mins) |
− | # Smoke test the newly | + | # Update the '''readme.md''' file with the what's new section of the release notes. |
− | + | # Smoke test the newly built pcgen full zip or exe. (30 mins) | |
− | # | + | # Create a folder for the release under the [https://sourceforge.net/projects/pcgen/files/ File Manager] |
− | + | # Upload the release notes using the File Manager to the release folder | |
− | + | # Run '''gradle pcgenRelease''' OR IF USING WINDOWS ('''gradle pcgenRelease --project-cache-dir c:\gradle\cache''') (which updates the gradlefiles and tags the SVN repository). (2 mins) | |
− | + | # Upload the release files to SourceForge. The quickest way is uploading via the web, the same way you uploaded the release notes etc. (10 mins) | |
− | + | # Update '''Readme.MD''' with the SHA256 checksums from target/SHA256-digests.txt. Upload the revised file and check-in. (5 mins) | |
− | # | ||
− | |||
− | |||
# Notify PCGen_bod of the new release. (5 mins) | # Notify PCGen_bod of the new release. (5 mins) | ||
− | |||
# PR Monkeys create a news item for the new release | # PR Monkeys create a news item for the new release | ||
# PR Monkeys send announcement to all pcgen mailing list for the new release | # PR Monkeys send announcement to all pcgen mailing list for the new release | ||
+ | |||
+ | ==Update JIRA== | ||
+ | |||
+ | For each of the projects, mark the version you are working on as released and create the next version if it doesn't already exist. When marking a version as released, please make sure the released date is set to today. | ||
+ | |||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/CODE/versions Code Versions] | ||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/DATA/versions Data Versions] | ||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/DOCS/versions Documentation Versions] | ||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/NEWSOURCE/versions New Source Versions] | ||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/NEWTAG/versions New Tag Versions] | ||
+ | * [https://pcgenorg.atlassian.net/plugins/servlet/project-config/OS/versions Output Sheets Versions] | ||
+ | |||
+ | ==Mac Installer== | ||
+ | |||
+ | See [http://pcgen.svn.sourceforge.net/viewvc/pcgen/Trunk/pcgen/installers/mac-installer/instructions.html Instructions] | ||
+ | |||
+ | ==IMPORTANT== | ||
+ | For Production Cycle Autobuilds the file '''code\gradle\autobuild.gradle''' lines 16-18 needs to be set to: | ||
+ | destAutobuildDir = '/home/pcgen1/public_html/autobuilds-prod/' | ||
+ | } else { | ||
+ | destAutobuildDir = "${buildDir}/autobuilds-prod/" | ||
+ | |||
==Signing Files with PGP== | ==Signing Files with PGP== | ||
− | We | + | '''Historical only''' We used to use the [[http://www.gnupg.org/ GnuPG for Windows]] to generate the signatures. You will need the private key, either your own, or the PCGen one (contact the PCGen BOD). Once GnuPG is installed and knows about the key you wish to use, it is just a matter fo right clicking on the files to be signed (multi-select is fine) and selecting GPGee > Sign and then making sure the PCGen key is selected, hitting OK and entering the passphrase for the key. This creates an .asc signature file for each selected file. |
+ | |||
+ | ==Troubleshooting== | ||
+ | Yes, even the best installs of all the program amount to nothing if there is a hitch. These are basic notes from the current issues cropping up and resolutions. These notes are not prettified yet. The idea being we will get a full set of troubleshooting tips and tricks here in the near future. | ||
+ | |||
+ | Check your versions. | ||
+ | JDK1.8 is required with JAVA_HOME variable (see below) | ||
+ | My Computer > System > Advanced Settings: | ||
+ | For JAVA_HOME make sure it's a set System Variable and make sure it's using the correct path to your current installation base folder | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ===OLD=== |
− | + | SVN must be a true .exe install, TortoiseSVN will not meet this requirement | |
− | + | SVN exe can be found here [[http://subversion.tigris.org/files/documents/15/46531/Setup-Subversion-1.6.5.msi SVN]] | |
− | |||
− | |||
− |
Latest revision as of 23:54, 12 November 2018
Introduction
Here are the steps to follow when making a release of PCGen. If it is your first time, please check the prereqs section at the bottom of this page.
Prerequisites
The first time you run a release you will have to make sure you have the following tools available:
Release Notes
- Text editor
- Web browser
- Perl interpreter
- Perl modules: readonly (installed on Windows via ActivePerl's Perl Package Manager)
Release
- Java SDK 1.8 (the one that includes the javac compiler) --FOR PCGEN 6.07.x
- Gradle 1.x
- git
- Perl interpreter
- NSIS
Outstanding Issues
You need to check JIRA for any outstanding issues to ensure the release meets our QA std.
- Alpha releases require no Blockers, allow Critical only with Code lead exception
- Beta releases require no Blockers or Criticals
- RCs/final releases require no Blockers, Criticals, or Majors
Create Release Notes
- Update your local copy of pcgen from github
- Copy the previous set of release notes to pcgen-release-notes-nnn.html where nnn is the version number.
- Do a global replace of the old version number to the new version number, both as n.nn.n and nnnn
- Open Jira and for each project open the release notes for the version.
- Copy the html to the changelog section, changing h2 tags to h3.
- Update the What's New section with any high profile changes.
- Update the Thanks section with the list of people who committed during the cycle. The search filter "is:pr is:closed is:merged updated:>2015-02-09" is useful for triming the list of pull request to those included in the release.
- Commit the new release notes and notify pcgen_bod so they can review it.
- Notify pcgen dev and experimental lists of upcoming release, asking for autobuilds to be tested. Best to give 24 hours notice.
Release Notes Placeholder
The Build
- Using a clean directory with no changes to the pcgen files
- git pull master the PCGen repository (5 mins)
- Release manager edits pcgen/code/src/java/pcgen/resources/prop/PCGenProp.properties to set the release date, version number, contributors, etc. and commit the result (5 mins)
- If switching to or from RC mode, edit gradle.properties and adjust the version number to be in the correct format. e.g. 6.04.00 RC1 or 6.04.00
- Execute gradle prepareRelease slowtest OR IF USING WINDOWS (gradle prepareRelease slowtest --project-cache-dir c:\gradle\cache) in the pcgen directory and verify there are no failing Junit test. Also check if there are any "Unknown publisher" messages. If so you need to add new entries for the listed publishers to the gendatalist.pl script. (20 mins)
- Check Jira for any closed requests missing from the release notes. Steps 4 and 6 of 'Create Release Notes' section above can be used to assist here. (10 mins)
- Update the readme.md file with the what's new section of the release notes.
- Smoke test the newly built pcgen full zip or exe. (30 mins)
- Create a folder for the release under the File Manager
- Upload the release notes using the File Manager to the release folder
- Run gradle pcgenRelease OR IF USING WINDOWS (gradle pcgenRelease --project-cache-dir c:\gradle\cache) (which updates the gradlefiles and tags the SVN repository). (2 mins)
- Upload the release files to SourceForge. The quickest way is uploading via the web, the same way you uploaded the release notes etc. (10 mins)
- Update Readme.MD with the SHA256 checksums from target/SHA256-digests.txt. Upload the revised file and check-in. (5 mins)
- Notify PCGen_bod of the new release. (5 mins)
- PR Monkeys create a news item for the new release
- PR Monkeys send announcement to all pcgen mailing list for the new release
Update JIRA
For each of the projects, mark the version you are working on as released and create the next version if it doesn't already exist. When marking a version as released, please make sure the released date is set to today.
- Code Versions
- Data Versions
- Documentation Versions
- New Source Versions
- New Tag Versions
- Output Sheets Versions
Mac Installer
See Instructions
IMPORTANT
For Production Cycle Autobuilds the file code\gradle\autobuild.gradle lines 16-18 needs to be set to:
destAutobuildDir = '/home/pcgen1/public_html/autobuilds-prod/' } else { destAutobuildDir = "${buildDir}/autobuilds-prod/"
Signing Files with PGP
Historical only We used to use the [GnuPG for Windows] to generate the signatures. You will need the private key, either your own, or the PCGen one (contact the PCGen BOD). Once GnuPG is installed and knows about the key you wish to use, it is just a matter fo right clicking on the files to be signed (multi-select is fine) and selecting GPGee > Sign and then making sure the PCGen key is selected, hitting OK and entering the passphrase for the key. This creates an .asc signature file for each selected file.
Troubleshooting
Yes, even the best installs of all the program amount to nothing if there is a hitch. These are basic notes from the current issues cropping up and resolutions. These notes are not prettified yet. The idea being we will get a full set of troubleshooting tips and tricks here in the near future.
Check your versions. JDK1.8 is required with JAVA_HOME variable (see below) My Computer > System > Advanced Settings: For JAVA_HOME make sure it's a set System Variable and make sure it's using the correct path to your current installation base folder
OLD
SVN must be a true .exe install, TortoiseSVN will not meet this requirement SVN exe can be found here [SVN]