This is a repository that contains several useful things that other nblockchain
repos use, such as:
- Config file and plugins for commitlint.
- A reference .editorconfig file.
- An F# style guide.
- Workflow guidelines.
- Scripts that aid maintainability:
- Detection of .fsx scripts without shebang.
- Detection of .fsx files without +x attrib.
- F# scripts compilation.
- EOF without EOL detection.
- Mixed line-endings detection.
- Auto-wrap the latest commit message.
- Detect non-verbose flags (e.g.
dotnet build -c Debug
instead ofdotnet build --configuration Debug
) being used in scripts or YML CI files (there are exceptions, e.g.env -S
). - Use of unpinned versions:
- Use of inconsistent versions:
All in all, this is mainly documentation, and some tooling to detect bad practices.
More things to come:
- Detect old versions of FSharpLint and fantomas/fantomless being used.
- Detect old versions of .editorconfig or Directory.Build.props being used.
- Detect GitHubCI bad practices, such as:
- Missing important triggers such as push or pull_request, workflow_dispatch, schedule.
- Branch filtering on push trigger (only acceptable one is '**', otherwise '*' doesn't match to branch names with slashes in them).
- GitHub comment auto-responder? E.g. to answer to comments that end with "not working" or "doesn't work" or "does not work", asking for more details.
- wrapLatestCommitMsg.fsx script to fail for obvious requirements that can't be automated (e.g. title max length)