{"repo":"devlooped/oss","free":true,"listed":false,"github":"https://github.com/devlooped/oss","clone":"git clone https://github.com/devlooped/oss.git","description":"Basic repo configuration for my OSS projects","language":"C#","stars":16,"topics":["oss","template","netconfig"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"oss template === For my new open source projects, this is the basic repository structure and build approach I'm going to use. Goals 1. Trivial to apply and update via dotnet-file with just two simple dotnet commands. 2. Repo instructions should just be: dotnet restore & dotnet build & dotnet test right on the repo root. Installing After creating an empty repo (maybe with just a readme.md ), just run: This will fetch the given dotnetconfig in the repo containing all the downloaded entries for future sync. At this point, you should add a skip value to the .netconfig file for the entries you don't want to keep up-to-date afterwards. The default skips would likely match the provided .netconfig, plus any extra files you want to modify, for example: NOTE: you can also download the raw .netconfig from this repository and run dotnet file update instead. It already contains skips for the readme. Updating From this point on, applying template changes is as easy as running: You can also just list detected changes with: Automation is provided via the dotnet-file.yml workflow, which runs daily and does a dotnet file sync and creates a PR in your repository as needed, with a populated changelog to inspect the incoming changes. Design Choices In no particular order: 1. src folder contains Directory.Build.props and Directory.Build.targets and those contain all the customizations for the build, packaging and versioning. In the past I went crazy factoring the targets into multiple files with s","default_branch":null,"files":null,"tree":[],"storefront":"/r/devlooped","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/devlooped/oss/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}