MiniScaffold
What is MiniScaffold?
This is an F# Template for:
- creating and publishing libraries targeting .NET 6.0
net6.0
- creating and publishing applications targeting .NET 6.0
net6.0
Why use MiniScaffold?
This takes away the ambiguity that developers face when creating an OSS project. Such as:
- How do I structure my project?
- How do I create repeatable builds?
- Which test framework should I use?
- How to I create releases?
- What Issue/Pull Request templates should I use?
- How should I go about creating documentation?
- How do I setup CI?
- What's the standard .gitignore file?
- What other things would make it easier for me when starting off creating a project I might not even know about?
What does this include in the box?
All project types
- Standard project structure for your dotnet application
- Build Automation tool via FAKE
- Package management tool via Paket
- Unit Testing via Expecto
-
Code Coverage via Altcover
- Also builds an html report with ReportGenerator
- Code formatting style via Fantomas
-
Release
build step commits latest CHANGELOG.md in the body and creates a git tag.- If you reference a Pull Request in the
CHANGELOG.md
it will update that Pull Request with the version it was released in.
- If you reference a Pull Request in the
Release
build step publishes a GitHub Release via the CHANGELOG.md and adds any artifacts (nuget/zip/targz/etc).- Continuous integration via GitHub Actions
For Libraries
-
Builds for
net6.0
- Target Frameworks- To build for
net6.0
.NET 6.0 installed
- To build for
- Sourcelink which enables a great source debugging experience for your users, by adding source control metadata to your built assets
- Documentation Generation - Generates Documentation from markdown files, fsx files, and the XML Documentation Comments from your library.
-
Release build step pushes NuGet packages to NuGet
- Generates Package Version from
CHANGELOG.md
- Adds Package Release Notes metadata from
CHANGELOG.md
- Generates Package Version from
For Applications
- Basic argument parsing example via Argu
-
Builds a
net6.0
application - Target Frameworks-
To build for
net6.0
- Have .NET core 6.0 installed
-
To build for
-
Builds for
win-x64
,osx-x64
andlinux-x64
- Runtime Identifiers. Bundles the application via dotnet-packaging- Bundles the
win-x64
application in a .zip file. - Bundles the
osx-x64
application in a .tar.gz file. - Bundles the
linux-x64
application in a .tar.gz file.
- Bundles the
Getting started quickly
Install the dotnet template from NuGet:
1:
|
|
I want to build a library
1:
|
|
I want to build a console application
1:
|
|
Tutorials
Takes you by the hand through a series of steps to create your first library.
How-To Guides
Guides you through the steps involved in addressing key problems and use-cases.
Explanations
Discusses key topics and concepts at a fairly high level and provide useful background information and explanation..
Reference
Contain technical references.