-
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 it outside the Eclipse IDE directly in the JCrypTool platform. 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 (requires Apache Maven version 3.x). The build process may take several minutes but is fully automated.
The main pom file (the JCrypTool 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. Using this variant automatically updates the release date in each plug-in property file and the JCrypTool about dialog. This pom file therefore contains a timestamp element which not only formats the timestamp but sets the build type as well (weekly, release candidate or final).
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"
Open the mvn.sh file in MAVEN_HOME/bin and add the following line
export MAVEN_OPTS="-Xmx512m"
Open the org.jcryptool.releng directory in a terminal. There are three different types of releases available:
Enter and execute the following line to build a stable release for all supported platforms:
mvn clean package
Enter and execute the following line to build a weekly build for all supported platforms (a weekly build contains the weekly in the release id in the about dialog):
mvn clean package -Dbuild=weekly
Enter and execute the following line to build and sign all generated artifacts with the JCrypTool key (this key is not available in the GitHub repository):
mvn clean package -Djcryptool.keystore=[path to jks file] -Djcryptool.alias=[key alias] -Djcryptool.storepass=[store password] -Djcryptool.keypass=[key password]
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), Mac OS X (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.
#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!