Development
Preview of the documentation
To generate the Documentation, first instantiate the docs environment by executing the following command from the TrixiParticles.jl root directory:
julia --project=docs -e "using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()"This command only has to be run once. After that, maintain the docs environment as described under Installation.
With an instantiated docs environment, generate the docs with the following command (again from the TrixiParticles.jl root directory):
julia --project=docs --color=yes docs/make.jlYou can then open the generated files in docs/build with your webbrowser. Alternatively, run
python3 -m http.server -d docs/buildand open localhost:8000 in your webbrowser.
Release management
To create a new release for TrixiParticles.jl, perform the following steps:
- Make sure that all PRs and changes that you want to go into the release are merged to mainand that the latest commit onmainhas passed all CI tests.
- Determine the currently released version of TrixiParticles.jl, e.g., on the release page. For this manual, we will assume that the latest release was v0.2.3.
- Decide on the next version number. We follow semantic versioning, thus each version is of the form vX.Y.ZwhereXis the major version,Ythe minor version, andZthe patch version. In this manual, we assume that the major version is always0, thus the decision process on the new version is as follows:- If the new release contains breaking changes (i.e., user code might not work as before without modifications), increase the minor version by one and set the patch version to zero. In our example, the new version should thus be v0.3.0.
- If the new release only contains minor modifications and/or bug fixes, the minor version is kept as-is and the patch version is increased by one. In our example, the new version should thus be v0.2.4.
 
- If the new release contains breaking changes (i.e., user code might not work as before without modifications), increase the minor version by one and set the patch version to zero. In our example, the new version should thus be 
- Edit the versionstring in theProject.tomland set it to the new version. Push/merge this change tomain.
- Go to GitHub and add a comment to the commit that you would like to become the new release (typically this will be the commit where you just updated the version). You can comment on a commit by going to the commit overview and clicking on the title of the commit. The comment should contain the following text:@JuliaRegistrator register
- Wait for the magic to happen! Specifically, JuliaRegistrator will create a new PR to the Julia registry with the new release information. After a grace period of ~15 minutes, this PR will be merged automatically. A short while after, TagBot will create a new release of TrixiParticles.jl in our GitHub repository.
- Once the new release has been created, the new version can be obtained through the Julia package manager as usual.
- To make sure people do not mistake the latest state of mainas the latest release, we set the version in theProject.tomlto a development version. The development version should be the latest released version, with the patch version incremented by one, and the-devsuffix added. For example, if you just releasedv0.3.0, the new development version should bev0.3.1-dev. If you just releasedv0.2.4, the new development version should bev0.2.5-dev.