When releasing a new version of Refine, the following steps should be followed:
- Make sure the
masterbranch is stable and nothing has broken since the previous version. We need developers to stabilize the trunk and some volunteers to try out
masterfor a few days.
- Change the version number in RefineServlet.java and in the POM files using
mvn versions:set -DnewVersion=2.6-beta -DgenerateBackupPoms=false. Commit the changes.
- Compose the list of changes in the code and on the wiki. If the issues have been updated with the appropriate milestone, the Github issue tracker should be able to provide a good starting point for this.
- Set up build machine. This needs to be Mac OS X or Linux.
- Download Windows and Mac JREs to bundle them in the Windows and Mac packages from AdoptOpenJDK. You only need the JREs, not the JDKs. Use the lowest version of Java supported (Java 8 currently). Configure the location of these JREs in the
settings.xmlfile at the root of the repository. It is important to download recent versions of the JREs as this impacts which HTTPS certificates are accepted by the tool.
- Insert the production Google credentials in https://github.com/OpenRefine/OpenRefine/blob/bc540a880eceb88e54f85ca43eb54769de3bfa4f/extensions/gdata/src/com/google/refine/extension/gdata/GoogleAPIExtension.java#L36-L39 without committing the changes.
- Build the release candidate kits using the shell script (not just Maven). This must be done on Mac OS X or Linux to be able to build all 3 kits. On Linux you will need to install the
./refine dist 2.6-beta.2
To build the Windows version with embedded JRE, use
mvn package -s settings.xml -P embedded-jre -DskipTests=true.
On a Mac machine, compress the Mac
genisoimagedoes not compress it by default) with the following command on a mac machine:
hdiutil convert openrefine-uncompressed.dmg -format UDZO -imagekey zlib-level=9 -o openrefine-3.1-mac.dmg. If running OS X in a VM, it's probably quicker and more reliable to transfer the kits to the host machine first and then to Github. Finder -> Go -> Connect -> smb://10.0.2.2/. You can then sign the generated DMG file with
codesign -s "Apple Distribution: Code for Science and Society, Inc." openrefine-3.1-mac.dmg. This requires that you have installed the appropriate certificate on your Mac, see below.
Tag the release candidate in git and push the tag to Github. For example:
git tag -a -m "Second beta" 2.6-beta.2 git push origin --tags
- Upload the kits to Github releases https://github.com/OpenRefine/OpenRefine/releases/ Mention the SHA sums of all uploaded artifacts.
- Announce the beta/release candidate for testing
- Repeat build/release candidate/testing cycle, if necessary.
- Tag the release in git. Build the distributions and upload them.
- Update the OpenRefine Homebrew cask or coordinate an update via the developer list
- Verify that the correct versions are shown in the widget at http://openrefine.org/download
- Announce on the OpenRefine mailing list.
- Update the version in master to the next version number with
mvn versions:set -DnewVersion=4.3-SNAPSHOT
- If releasing a new major or minor version, create a snapshot of the docs, following Docusaurus' versioning procedure.
We have code signing certificates for our iOS distributions. To use them, follow these steps:
- Request firstname.lastname@example.org to be added to the Apple team: you need to provide the email address that corresponds to your AppleID account;
- Create a certificate signing request from your Mac: https://help.apple.com/developer-account/#/devbfa00fef7
- Go to https://developer.apple.com/account/resources/certificates/add and select "Apple Distribution" as certificate type
- Upload the certificate signing request in the form
- Download the generated certificate
- Import this certificate in the "Keychain Access" app on your mac
- You can now sign code on behalf of the team using the
codesignutility, such as
codesign -s "Apple Distribution: Code for Science and Society, Inc." openrefine-3.1-mac.dmg.