First, thanks for taking the time to contribute. We appreciate and welcome any contribution.
The following is a set of guidelines to LieGroups.jl
.
You can most easily reach the developers in the Julia Slack channel #manifolds. You can apply for the Julia Slack workspace here if you haven't joined yet. You can also ask your question on discourse.julialang.org.
If you found a bug or want to propose a feature, please open an issue in within the GitHub repository.
Currently most details are still work-in-progress.
Feel free to contribute ideas, features you would like to see, Lie groups you want to have or would like to contribute, or any other idea for LieGroups.jl
. For these, use either the discussions or issues in the GitHub repository
Please follow the documentation guidelines from the Julia documentation as well as Blue Style.
Run JuliaFormatter.jl
on the repository running using JuliaFormatter; format(".")
on the main folder of the project.
Please follow a few internal conventions:
- Include the mathematical formulae for any implemented function if a closed form exists.
- Define a Lie group, a Lie group action, or a Lie algebra in its own file. Include all related functions in the same file
- an alphabetical order of functions in every file is preferable.
- The preceding implies that the mutating variant of a function follows the non-mutating variant.
- Document both the allocating and the mutating variants of a function. To avoid duplication, attach one doc string defined before both functions and attach it to both.
- There should be no dangling
=
signs. - Add a newline between things of different types (struct/method/const).
- Add a newline between methods for different functions (including allocating/mutating variants).
- Prefer to have no newline between methods for the same function; when reasonable, merge the documentation strings.
- All
import
/using
/include
should be in the main module file. - Avoid using
import
and use the explicit full name, likeBase.exp
, when implementing functions, that extend functions of other packages. - if possible provide both mathematical formulae and literature references using DocumenterCitations.jl and BibTeX where possible
- Always document all input variables and keyword arguments