Skip to content

Latest commit

 

History

History
37 lines (25 loc) · 2.7 KB

Development.md

File metadata and controls

37 lines (25 loc) · 2.7 KB

Development guide

Theta is written in Java 17 using

Releases and versioning

Theta uses semantic versioning in a MAJOR.MINOR.PATCH format, e.g., v1.2.3. Binaries are uploaded to major/minor releases, but (currently) not for patches. Any change that is not visible from the user's perspective (e.g., the frontends), should be a patch increment (e.g., bugfixes, small performance improvements). Changes visible to the user (e.g., a new option in an algoritmh) should be at least minor increment, but if the change is big enough (e.g., new formalism, new tool) a major increment can be performed. We usually develop on separate branches and increment the version number just before merging to the main branch.

Forking the repository

As the main repository is read-only, we suggest you to create your own fork. Within your fork, we also recommend to create new branches for your development. This enables us later on to easily integrate your work into the main repository by using pull requests.

As the framework is under development, we suggest you to sync your fork often and merge the master branch into your development branch(es). If you are confident that only you are working on your branch, you can also rebase instead of merge, but be careful.

Building

See Build.md.

Developing in IntelliJ IDEA

  • Theta can be imported into IntelliJ IDEA as an existing Gradle project by selecting the build.gradle.kts file in the root of the repository.
  • If you want to build the whole project (and not just run a single test for example), make sure to run the build task of the whole project. This can be done by opening the Gradle tab, and then selecting theta / theta / Tasks / build / build, right clicking and selecting Run.
  • Import doc/ThetaIntelliJCodeStyle.xml as a code style scheme for Java so that your formatting settings are consistent with the rest of the project.

Coding conventions

See Coding-conventions.md.