Comments (5)
Hey, as I'm the author of dotnet-releaser, and I found this discussion while trying to see folks discussing about it, always good to find out ideas. 🙂
So I was not aware of MinVer. I have used MSBuildGitHash in the past, and looked at Nerdbank and GitVersion but they were over complicated, and I'm super glad, because I'm starting to use MinVer from my own projects. Just to clarify, dotnet-releaser
doesn't handle what MinVer is doing but relies on whatever you use to produce the version. So it should be compatible with MinVer and others. I switched dotnet-releaser
itself to use it actually, and found one issue when using it with it, so all good!
On the topic of release drafter, super glad that you mentioned that, again, something I was not aware of, it's great. I'm actually working on integrating an equivalent of it directly in dotnet-releaser because I would like to have that entirely built-in, it's so nice.
On this topic:
Ok looked into in more detail. Instead of writing a Cake file and release drafter yml file we'd switch to a large toml file which would contain a tonne of options.
The idea is that I hope that for the a default experience for a regular OSS project, you won't have to define much (see for example the TOML file of grpc-curl here)
While it can do a lot, if you need to do anything outside the bounds of what it can do you're stuck. Whereas if you use MinVer/Cake/ReleaseDrafter separately you have full flexibility.
Agreed. Cake is a case where dotnet-releaser is not here to help solving that problem. If I take for examples all the OSS libraries I'm shipping, I will be able to ship them with dotnet-releaser. Anything else that would start to do more than the usual dance of dotnet build
, dotnet test
, dotnet publish
, dotnet pack
, dotnet nuget push
...etc. is out of scope.
But it made me realize that I really want the full process of my build to be more automated for all my OSS projects (build, test, coverage, not only the packing/publishing), so I will add that support to dotnet-releaser as well.
Just wanted to say thank you for the discussion, that was insightful and brought me some inspirations! 😃
from templates.
Hi @xoofx, your project looked really interesting, so glad to chat and its awesome you found something useful here.
A bit about MinVer:
https://rehansaeed.com/the-easiest-way-to-version-nuget-packages/
The way I personally use release-drafter:
https://rehansaeed.com/the-fastest-nuget-package-ever-published-probably/
The idea is that I hope that for the a default experience for a regular OSS project, you won't have to define much (see for example the TOML file of grpc-curl here)
Good defaults would be awesome and the main selling point of dotnet-releaser. I think your project will work for 75-90% of projects and will do great and be quick to setup. I'll keep an eye on where you go with it.
from templates.
I saw this and discussed it briefly with @VictorioBerra.
dotnet-releaser would be a replacement for Cake build, Minver and Release Drafter. It'd need to have the folowing features to be equivelant:
- Can draft proper release notes on GitHub according to a custom template driven by GitHub tags. GitHub can also now draft release notes but not driven by labels.
- Autolabeller - Automatically add GitHub labels to a PR based on the files changed. This currently doesn't work if you use GitHub permissions but release-drafter is working on it.
- Versioning needs to be as simple as MinVer and based on Git labels.
- Need to be able to run the build locally.
Not sure it satisfies all the requirements. Haven't looked into it deeply.
from templates.
Ok looked into in more detail. Instead of writing a Cake file and release drafter yml file we'd switch to a large toml file which would contain a tonne of options.
While it can do a lot, if you need to do anything outside the bounds of what it can do you're stuck. Whereas if you use MinVer/Cake/ReleaseDrafter separately you have full flexibility.
While I think it has a place for those wanting to get started quickly. The lack of flexibility and some missing features I listed above, means I don't think we'd move to it just yet.
https://github.com/xoofx/dotnet-releaser/blob/main/doc/readme.md
from templates.
Okay, it makes sense for now. It's an early stage project, but I think it would be worth evaluating once it's more mature.
What drew me to it was how easy it makes it to cross-compile for many different architectures, and produce packages for a lot of different packaging formats. I don't think there's as simple a way to do that in Cake, but I'd be happy to be proved wrong.
from templates.
Related Issues (20)
- Add Security HTTP Headers
- Disabling Docker Leaves Cake File with No Default Task HOT 1
- Improve Docker Image Security
- Investigate New Docker Settings for HTTPS Support
- .NET 7 Improvements
- Unable to access health checks with Orleans template. HOT 3
- Add Lets Encrypt Feature
- Add Open Telemetry Metrics
- Include `xunit.analyzers` HOT 2
- Donet Cake DockerBuild does not fail the GH action step HOT 3
- Enable reproducible builds HOT 1
- Add Dev Tunnels to launchSettings.json
- .NET 8 Improvements HOT 1
- Two assets found targeting the same path HOT 2
- Reporting a weird error with .NET 7 and changing hostingContext.HostingEnvironment.ApplicationName
- Swagger does not respond with bad request and instead responds with 406
- .editorconfig syntax errors when using EnableGenerateDocumentationFile
- error xUnit1030: Test methods should not call ConfigureAwait(), as it may bypass parallelization limits.
- Microsoft.AspNetCore.ApplicationInsights.HostingStartup is depreciated.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from templates.