https://github.com/nblockchain/conventions
Useful things that other `nblockchain` repos use
https://github.com/nblockchain/conventions
Last synced: 6 months ago
JSON representation
Useful things that other `nblockchain` repos use
- Host: GitHub
- URL: https://github.com/nblockchain/conventions
- Owner: nblockchain
- License: mit
- Created: 2022-09-26T11:25:53.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2026-01-11T05:49:25.000Z (6 months ago)
- Last Synced: 2026-01-11T12:45:16.108Z (6 months ago)
- Language: F#
- Homepage:
- Size: 1.83 MB
- Stars: 1
- Watchers: 1
- Forks: 11
- Open Issues: 22
-
Metadata Files:
- Readme: ReadMe.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
This is a repository that contains several useful things that other `nblockchain` repos use, such as:
- [Config file](commitlint.config.ts) and [plugins](commitlint/plugins.ts) for commitlint.
- [A reference .editorconfig file](.editorconfig).
- [An F# style guide](docs/FSharpStyleGuide.md).
- [Workflow guidelines](docs/WorkflowGuidelines.md).
- Scripts that aid maintainability:
* [Detection of .fsx scripts without shebang](scripts/shebangConvention.fsx).
* [Detection of .fsx files without +x attrib](scripts/executableConvention.fsx).
* [F# scripts compilation](scripts/compileFSharpScripts.fsx).
* [EOF without EOL detection](scripts/eofConvention.fsx).
* [Mixed line-endings detection](scripts/mixedLineEndings.fsx).
* [Auto-wrap the latest commit message](scripts/wrapLatestCommitMsg.fsx).
* [Detect non-verbose flags (e.g. `dotnet build -c Debug` instead of `dotnet build --configuration Debug`) being used in scripts or YML CI files (there are exceptions, e.g. `env -S`)](scripts/nonVerboseFlagsInGitHubCIAndScripts.fsx).
* Use of unpinned versions:
* [Use of `-latest` suffix in `runs-on:` GitHubCI tags](scripts/unpinnedGitHubActionsImageVersions.fsx).
* [Use of asterisk (*) in `PackageReference` items of .NET projects](scripts/unpinnedNugetPackageReferenceVersionsInProjects.fsx).
* [Missing the version number in `#r "nuget: ` refs of F# scripts](scripts/unpinnedNugetPackageReferenceVersionsInFSharpScripts.fsx).
* [Missing the `--version` flag in `dotnet tool install foo` invocations](scripts/unpinnedDotnetToolInstallVersions.fsx).
* Use of inconsistent versions:
* [Use of inconsistent version numbers in `uses:` and `with:` GitHubCI tags](scripts/inconsistentVersionsInGitHubCI.fsx).
* [Use of inconsistent version numbers in `#r "nuget: ` refs of F# scripts](scripts/inconsistentNugetVersionsInFSharpScripts.fsx)
* [Use of inconsistent version numbers in nuget packages of .NET projects](scripts/inconsistentNugetVersionsInDotNetProjects.fsx).
* [Use of inconsistent version numbers in nuget packages of .NET projects and `#r "nuget: ` refs of F# scripts](scripts/inconsistentNugetVersionsInDotNetProjectsAndFSharpScripts.fsx).
All in all, this is mainly documentation, and some tooling to detect bad practices.
More things to come:
- Detect old versions of 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)