All Projects → ionide → Waypoint

ionide / Waypoint

Licence: mit
Opinionated solution template for building F# OSS libraries and tools.

Programming Languages

fsharp
127 projects

Projects that are alternatives of or similar to Waypoint

Craftsman
Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files.
Stars: ✭ 165 (+153.85%)
Mutual labels:  dotnet-core, scaffolding
Generate
A new command line tool and developer framework for scaffolding out GitHub projects. Generate offers the robustness and configurability of Yeoman, the expressiveness and simplicity of Slush, and more powerful flow control and composability than either.
Stars: ✭ 238 (+266.15%)
Mutual labels:  project-template, scaffolding
Phint
Interactively scaffolds and init new (or fixup old) PHP project/library with sane defaults using templates in no time
Stars: ✭ 89 (+36.92%)
Mutual labels:  project-template, scaffolding
opencart-project-template
OpenCart Project Template
Stars: ✭ 16 (-75.38%)
Mutual labels:  project-template, scaffolding
Templates
.NET project templates with batteries included, providing the minimum amount of code required to get you going faster.
Stars: ✭ 2,864 (+4306.15%)
Mutual labels:  project-template, dotnet-core
Copier
Library and command-line utility for rendering projects templates.
Stars: ✭ 277 (+326.15%)
Mutual labels:  project-template, scaffolding
Fakeiteasy
The easy mocking library for .NET
Stars: ✭ 1,092 (+1580%)
Mutual labels:  dotnet-core
Dotnet Bundle
MSBuild task and CLI tools for bundling .NET Core projects into MacOS applications (.app)
Stars: ✭ 59 (-9.23%)
Mutual labels:  dotnet-core
React Cool Starter
😎 🐣 A starter boilerplate for a universal web app with the best development experience and a focus on performance and best practices.
Stars: ✭ 1,083 (+1566.15%)
Mutual labels:  scaffolding
Subloader
Subloader is a simple and minimalistic subtitle downloader that enables you to quickly find and download subtitles for your video files.
Stars: ✭ 53 (-18.46%)
Mutual labels:  dotnet-core
Skater .net Obfuscator
Skater .NET Obfuscator is an obfuscation tool for .NET code protection. It implements all known software protection techniques and obfuscation algorithms.
Stars: ✭ 64 (-1.54%)
Mutual labels:  dotnet-core
Ionic Example App
A Ionic Example App (previously known as ionic 2 examples). Contains different examples on how to use the Ionic Framework
Stars: ✭ 61 (-6.15%)
Mutual labels:  dotnet-core
Aspnet Core Clean Arch
It is a clean architecture project template which is based on hexagonal-architecture principles built with .Net core.
Stars: ✭ 60 (-7.69%)
Mutual labels:  dotnet-core
Dotnetworkqueue
A work queue for dot.net with SQL server, SQLite, Redis and PostGreSQL backends
Stars: ✭ 58 (-10.77%)
Mutual labels:  dotnet-core
Pioneer Console Boilerplate
Dependency injection, logging and configuration in a .NET Core console application.
Stars: ✭ 60 (-7.69%)
Mutual labels:  dotnet-core
Yarn.msbuild
MSBuild integration for the Yarn package manager.
Stars: ✭ 57 (-12.31%)
Mutual labels:  dotnet-core
Icanpay.donet
统一支付网关。支持NET46和NETSTANDARD2_0。支持支付宝,微信,银联支付渠道通过Web,App,Wap,QRCode方式支付。简化订单的创建、查询、退款跟接收网关返回的支付通知等功能
Stars: ✭ 62 (-4.62%)
Mutual labels:  dotnet-core
Electron.net Musicplayer Sample
Stars: ✭ 55 (-15.38%)
Mutual labels:  dotnet-core
Dnczeus
DncZeus 是一个基于ASP.NET Core 3 + Vue.js(iview-admin) 的前后端分离的通用后台权限(页面访问、操作按钮控制)管理系统框架。后端使用.NET Core 3 + Entity Framework Core构建,UI则是目前流行的基于Vue.js的iView(iview-admin)。项目实现了前后端的动态权限管理和控制以及基于JWT的用户令牌认证机制,让前后端的交互更流畅。码云镜像:https://gitee.com/rector/DncZeus 。演示地址(demo):
Stars: ✭ 1,104 (+1598.46%)
Mutual labels:  dotnet-core
Aspnetboilerplate Core Ng
Tutorial for ASP.NET Boilerplate Core + Angular
Stars: ✭ 61 (-6.15%)
Mutual labels:  dotnet-core

Waypoint

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

Part of the Ionide initiative. You can support Ionide development on Open Collective.

Open Collective

What's included in template

  • Paket, FAKE, and Fornax added as dotnet local tools (.config/dotnet-tools.json)
  • build.fsx file, containing default FAKE script with targets for building, testing, documentation generation, publishing to GitHub, and publishing to NuGet
  • paket.dependencies with basic set of dependencies
  • src folder containing 2 projects - one class library (netstandard2.0), and CLI tool (netcoreapp3.1)
  • test folder containing UnitTest project using Expecto and FsCheck
  • docs folder with Fornax documentation template that will generate nice documentation for your project.
  • .devcontainer folder with definition of Development Container
  • .github/workflows folder 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_TOKEN secret in GitHub repo settings with Personal Access Token.
  • .github/ISSUE_TEMPLATE folder with 2 different issue templates - one for bug report, other one for feature request

Documentation Theme

Template includes, out-of-the-box, nice theme for your project documentation, which integrates with FSharp.Formatting to create also API reference

How to use template

  1. Install dotnet new template with dotnet new -i Waypoint
  2. Create new folder mkdir TestApp and go into it cd TestApp
  3. Create new project with dotnet new Waypoint

Motivation

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.

Inspired by

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:

Used projects

  • .Net Core SDK - modern, OSS, cross platform distribution of .Net; dotnet - CLI tool for developers
  • Paket - Paket is a dependency manager for .NET projects, popular in F# community.
  • FAKE - F# build DSL and task runner
  • Fornax - scriptable static site generator using type safe F# DSL to define page layouts
  • Expecto - F# test library
  • FsCheck - Random testing library for F#

FAQ

  1. What about fsprojects/ProjectScaffold ?

ProjectScaffold is fairly outdated template, and I think everyone, including original creators of ProjectScaffold will welcome modern alternative.

  1. What about TheAngryByrd/MiniScaffold ?

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!

  1. Why do we even need solution scaffold? Is dotnet new console and dotnet build not 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.


How to build template

Those are instructions for developing template. For instructions regarding scaffolded project check generated README.md file

  1. Make sure you've installed .Net Core version defined in global.json
  2. Run dotnet tool restore to install all developer tools required to build the project
  3. Run dotnet fake build to build default target of build script

How to contribute

Imposter syndrome disclaimer: I want your help. No really, I do.

There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help me with this project.

I assure you, that's not the case.

This project has some clear Contribution Guidelines and expectations that you can read here.

The contribution guidelines outline the process that you'll need to follow to get a patch merged. By making expectations and process explicit, I hope it will make it easier for you to contribute.

And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)

Thank you for contributing!

Contributing and copyright

The project is hosted on GitHub where you can report issues fork the project and submit pull requests.

The library is available under MIT license, which allows modification and redistribution for both commercial and non-commercial purposes.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].