Contributing
Branching
- Create a feature branch in git.
- Fork and clone locally.
Style Guidelines
- Follow F# Coding Guidelines.
- Take into consideration FSharpLint output.
- Fantomas should be run to ensure formatting is consistent.
Testing
Testing is done in the tests libraries using Expecto which is able to load in any testing framework you may need, but is strongly encouraged to keep things consistent and use Expecto tests and FsCheck for any property-based testing.
- Add test cases where needed.
- Tests are run as part of the build process, please ensure they pass.
- Note that pure F# should be tested - GUI cannot easily be tested.
Documentation
Documentation is built dynamically from F# script files and markdown files using FSharp.Formatting.
The Reference documentation is dynamically generated, and descriptions specified by using ///
rather than //
for comments, see the Formatting documentation
for more information.
- Add documentation as necessary, pages can be modified and created in the
./docsrc
directory. - Documentation is built during the build process.
- Consider adding examples if adding new features.
- Markdown Syntax
Building
- Build the solution with Visual Studio,
build.cmd
orbuild.sh
. - All binaries will be in
./bin
after being built. - When you're ready to commit the code use `build.cmd/sh -t "Release". This will clean up directories, stage, and build everything for release. Once you've confirmed it looks good, commit to your branch and make your PR.
- Please note in order to build the Linux images you must have
Docker
installed.
Releasing
-
Create the distributables via the
Dist
build task, then create the delta and sig files with theCreateDiffs
task. Upload all of the files related to the new version to the release.
Merging
- Send a pull request and have it reviewed.