This is a standard Maven project. If you wish, you can build the binaries from this source.
- Install Java 11 and the support for Maven and Git in your favorite development environment.
- Eclipse Java IDE includes the M2E and EGit plugins and works fine -- the project includes the settings file for that configuration.
- The build process uses Git commands and the ability to run them in a shell script; installing GitHub Desktop is the easiest way to install Git on a Windows system. Select the options to add the programs to the execution path.
- In order to build the Windows installer, you need to run on Windows and Innosetup needs to be installed.
- Clone this repository.
- Running
mvn package -P production
inside the owlcms subdirectory should give youtarget/owlcms.jar
working uberjar (a .jar file that contains all the dependencies)target/owlcms.zip
which is used on Linux and Mac
- Running
mvn package -P production
inside theowlcms-windows
subdirectory should give you a working installer. This build to be run on a Windows machine because the installer builder is Windows-specific. - The installer is then found in
owlcms-windows\target\owlcms_setup\owlcms_setup.exe
- Cleanup GitHub issue management
- Make sure that all closed issues are closed on GitHub and assigned to the a milestone that matches the release number.
- Go to "Issues/Milestones"
- close obsolete milestones,
- click on the current milestone, click on the link for
closed
issues, check titles.
- Update Release Notes
- The file is located in
owlcms4top/src/main/markdown/ReleaseNotes.md
(the file in owlcmstop will be overwritten), - Close all Typora instances
- The file is located in
- Refresh the
owlcms4top\src
directory, commit and push
The automated build process takes place on the free tier of Azure DevOps.
The azure-pipelines.yml
defines the full process for building owlcms and the companion publicresults application, as well as the Heroku and Docker/Kubernetes packaging.
Note that you must provide credentials in the form of variables (for example, by creating a variable group in the project Library). See src/main/azure-pipelines/variables-releaseRepoCredentials for the $() variables that need to be defined.
You also need to create service connections to your github accounts (for the source repository, and for the additional repositories used for pre-release and release packages), as well as the maven repository used to get the packages (reposilite).