-
Notifications
You must be signed in to change notification settings - Fork 44
Creating a new Release
The required steps described below depend on what you intend to release. The typical case is that you want to release your new (crypto) plug-in and test or use it outside Eclipse in JCrypTool. This is described in Releasing your (crypto) plug-in.
In case you want to create a complete JCrypTool release you need to follow the instructions given at Executing the automatic zip/tar.gz file release (Eclipse Tycho Build) (preferred) or Executing the manual zip file release (Eclipse PDE Build).
A JCrypTool plug-in must be exported as any other Eclipse plug-in. Open your plugin.xml in the Plug-in Manifest Editor and switch to the Overview page. Locate the Export Wizard link in the Exporting section:
Click on it and select a directory to export to. Make sure the Package plug-ins as individual JAR archives checkbox is selected on the Options tab.
Click Finish. The directory specified before should now contain your plug-in as a single jar file. Simply copy this jar file into the dropins folder of your JCrypTool installation and (re-)start JCrypTool. Your plug-in should now be available in JCrypTool.
In case your plug-in is separated across more than one plug-in projects you will find more than one jar file into the directory. Copy all those files into the dropins folder.
The preferred way of building a JCrypTool release is to use the Eclipse Tycho based build (Apache Maven). The whole process takes some time (10 to 15 min, first time longer) but is as much automated as possible.
The main pom file (parent pom) to generate a release for all supported platforms is located in the org.jcryptool.releng project. This file (pom.xml) generates the artifacts for all platforms using Maven (version 3.x is required). Using this variant automatically updates the release date in each property file and the about dialog.
Before starting the first build you need to configure Maven once by increasing the heap size.
Open the mvn.bat file in MAVEN_HOME/bin and add the following line: set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m
Open the mvn.sh file in MAVEN_HOME/bin and add the following line: export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
Open the org.jcryptool.releng directory in your terminal and execute mvn clean package to build a normal release for all supported platforms. This will take a while.
Execute mvn clean package -Djcryptool.keystore=[path to jks file] -Djcryptool.alias=[key alias] -Djcryptool.storepass=[store password] -Djcryptool.keypass=[key password] to build and sign all generated artifacts with the JCrypTool key. This key is not available in the GitHub repository.
Signed or not, all generated artifacts will be stored in the core/org.jcryptool.product/target/products directory. These files are ready to ship. The categorized and therefore ready to ship p2 repository (a.k.a. p2 update site) is generated in org.jcryptool.repository/target/repository.
This is the simple alternative in case you don't want to use the Maven Tycho build or want to generate the release for one platform only. The zip file(s) must be generated with the export wizard called via the jcryptool.product file. Simply open this file and click on the Eclipse Product export wizard link.
Deselect the Export for multiple platforms checkbox in case you only want to generate a release for your platform. Otherwise click the Next button and select the platforms you require.
Required platforms for a complete JCrypTool release are Linux (gtk/x86, gtk/x86_64), OS X (carbon/x86, cocoa/x86, cocoa/x86_64) and Windows (win32/x86, win32/x86_64).
This step is only required if you intend to publish the update site created before. You do not need the update site in case you only want to test your plug-in in the JCrypTool runtime.
The update site (the created repository folder) requires categorization when created with the manual process (the automatic release does that automatically). Copy the whole repository folder to org.jcryptool.repository/target/repository and launch the Update Site Categorization.launch file in the org.jcryptool.repository project (in Eclipse). This categorizes the update site and updates two files in the repository project. Simply upload the folders' contents to our webspace.
The two exe installers for Windows must be generated in a separate step (both for automatic and manual build), which requires the NSIS plug-in on Windows (this is not possible on other operating systems). Start with the x86 Windows zip file created before (automatic or manual) and extract this file into the org.jcryptool.releng project. Run the setup-32.nsi file. Copy the generated exe file and delete the jcryptool folder in org.jcryptool.releng afterwards. Now extract the x86_64 Windows zip file in org.jcryptool.releng. Run the setup-64.nsi file, copy the generated exe file.
#Tagging the Repositories
Both repositories, core and crypto, must be tagged with the release name, e.g. RC5.
git tag -a RC5 -m "Release Candidate 5 (0.9.5)"
(-a tag name, -m message, add e.g. 6790f72 as commit hash to tag a specific version)
git push --tags
To delete a wrong tag
git tag -d RC5
(deletes the tag in the local repository)
git push origin :refs/tags/RC5
(deletes the tag in the remote repository)
See GitHub Releases for more information.
Need help? Please visit the public JCT Chatroom or open a new Issue and ask your question. We'll be happy to assist you!