Opinionated solution template for building F# OSS libraries and tools.
Sample repository is available here - https://github.com/Krzysztof-Cieslak/SampleWaypoint
Sample generated documentation can be found here - http://kcieslak.io/SampleWaypoint
dotnetlocal tools (
build.fsxfile, containing default FAKE script with targets for building, testing, documentation generation, publishing to GitHub, and publishing to NuGet
paket.dependencieswith basic set of dependencies
srcfolder containing 2 projects - one class library (
netstandard2.0), and CLI tool (
testfolder containing UnitTest project using Expecto and FsCheck
docsfolder with Fornax documentation template that will generate nice documentation for your project.
.devcontainerfolder with definition of Development Container
.github/workflowsfolder with definition for 2 GitHub actions - one for building and testing code as CI, one for deploying documentation when new tag is pushed. To use latter, you need to define
PERSONAL_TOKENsecret in GitHub repo settings with Personal Access Token.
.github/ISSUE_TEMPLATEfolder with 2 different issue templates - one for bug report, other one for feature request
Template includes, out-of-the-box, nice theme for your project documentation, which integrates with FSharp.Formatting to create also API reference
Samplein search available on http://kcieslak.io/SampleWaypoint
dotnet newtemplate with
dotnet new -i Waypoint
mkdir TestAppand go into it
dotnet new Waypoint
Waypoint got created for couple of reasons. Mostly because I (Chris) was unhappy with possible options "on the market" - don't get me wrong, I think projects like MiniScaffold are doing great job, but it was just not hitting my personal sweet spot for what I wanted from project scaffold. Secondly I strongly believe into having opinionated set of tools working well together, providing great Developer Experience - building such tools is something I've been doing for last couple of years, so providing single "package" seems like a logical next step. Thirdly, I want Waypoint to be "canonical" example of using Fornax for documentation generation - scaffolded template contains really nice theme for documentation, integration with FSharp.Formatting, built-in search support, and more.
No project lives in vacuum - good ideas are very often just small improvements on the previous state of art. Waypoint has been heavily inspired by:
dotnet- CLI tool for developers
ProjectScaffold is fairly outdated template, and I think everyone, including original creators of ProjectScaffold will welcome modern alternative.
MiniScaffold is great project, with many options and functionalities - such as code formatting, test coverage, sourcelinks and more. I've decided to create a scaffold feeding my needs and needs of Ionide projects that's bit more opinionated, and provide less functionalities. Please use whichever scaffold you want!
dotnet new consoleand
dotnet buildnot enough?
No, it's not enough. Real world project, unlike conference demos, requires more structure, testing, documentation - especially OSS projects, if you care for adaption and user happiness. Beacuse of that we need something that will provide nice experience for both users and developers of the OSS projects.