moon
NUKE
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
moon
-
Launch HN: Moonrepo (YC W23) – Open-source build system
(for context - I'm not interested in first class node support)
This seems pretty cool. I particularly like how 'gradual' it seems to be relative to things like Bazel, i.e. you can take some shell scripts and migrate things over. I did have a play and hit an initial problem around project caching I think, which I raised at [0].
One comment, from the paranoid point of view of someone who has built distributed caching build systems before is that your caching is very pessimistic! I understand why you hash outputs by default (as well as inputs), but I think that will massively reduce hit rate a lot of the time when it may not be necessary? I raised [1].
As an aside, I do wish build systems moved beyond the 'file-based' approach to inputs/outputs to something more abstract/extensible. For example, when creating docker images I'd prefer to define an extension that informs the build system of the docker image hash, rather than create marker files on disk (the same is true of initiating rebuilds on environment variable change, which I see moon has some limited support for). It just feels like language agnostic build systems saw the file-based nature of Make and said 'good enough for us' (honorable mention to Shake, which is an exception [2]).
Hey HN, Miles and James here from Moonrepo (https://moonrepo.dev). Are you struggling with large codebases? Well look no further! We built Moonrepo to simplify repository management, project ownership, task running, and everyday developer and productivity workflows.
If you’ve used Bazel (or another “enterprise” build system) in the past, you’re probably aware of how complex they can be to setup, configure, and use. Let alone the cognitive overhead required by developers on a day to day basis. After more than a decade in the industry, with many of those years working on infrastructure and developer tooling related products, we set out to build Moon, a language agnostic build system.
Existing systems focused solely on runtime logistics (faster builds, concurrency), while we want to also focus on the developer experience. We do this by automating workflows as much as possible, in an effort to reduce manual work. We constantly sync and verify configuration, so that the repository stays in a healthy state. We also infer/detect as much as we can from the environment/repository/codebase, so pieces "just work".
We wanted our system to be enjoyable to use and easy to understand, but also solve the same problems as existing systems. For example, configuration is in YAML, not a proprietary syntax. Tasks are defined and run as if you were running them in the terminal; no more abstractions like BUILD files. Unlike Bazel, we don’t hide or heavily rewrite terminal output, so the feedback loop is what you expect. We manage a toolchain, ensuring the correct version of languages is used (no more “works on my machine”). And lastly, our foundation is built on Rust and Tokio, so performance is first-class, the runtime is reliable, and memory safety is guaranteed.
We follow the open core model. Moon is open source, but we’re also working on a few subscription-based services for monitoring and improving your continuous integration pipelines, a registry of project and code ownership, a continuous deployment/delivery board, auxiliary application systems, and more. We haven't finalized the subscription model yet, so there's no pricing information on the website. However, we do have a starter/free tier that everyone can use by registering on https://moonrepo.app. In the future, we will offer on-prem as well.
Although Moonrepo is relatively new, we’re already feature-packed, stable, and used in production. We’re big fans of honest feedback, and look forward to your comments!
-
Building a full-stack TypeScript application with Turborepo
There are many tools like Lerna, Nx, Turborepo, Moon, Rush, and Bazel, to name a few. Today, we'll be using Turborepo, as it's lightweight, flexible, and easy to use.
NUKE
-
ModularPipelines - Strong-Typed, Parallel, C# Pipelines - Would appreciate feedback and thoughts
Is it similar to Nuke?
-
How to write unit tests with Dapper
testcontainers and https://github.com/dotnet/Docker.DotNet are on my to-do list to try out, but just like with something like https://nuke.build/ i can't see the value other than that the config would be c# instead of some flavour of yaml.
-
Launch HN: Moonrepo (YC W23) – Open-source build system
We started using https://nuke.build/. Early days so can’t comment too much but it seems good so far.
-
CAKE vs NUKE?
I think you're giving a really bad example of what consumers should expect from open-source projects. This year I reworked the whole website, released several versions, did a huge chunk of development, and spoke at 5 events (with travel). This is the first significant gap in almost 6 years of continuous development. Maybe it's hard to imagine, but also maintainers sometimes face severe issues in their life. Comments like this don't make it any better.
- How to find open source projects to participate in?
-
CI/CD tool agnostic pipelines
https://nuke.build – and it comes with tons of features beyond what you’ve mentioned
-
What is your preferred CI/CD tool?
Nuke. https://nuke.build/
-
My Top N Favorite Plugins and Tools for Developers
This plugin makes Rider / Resharper more NUKE friendly by adding icons, live templates and runner features to your IDE.
-
How do you guys make sense of a complex project on GitHub?
Re moby dick makefiles, you could take a look at https://nuke.build .. I’m maintaining that project
-
Nuke Build - best build automation system
BUT, now I had the opportunity to use Nuke.Build for my build system and I am obsessed heavily with it that I love it so much.
What are some alternatives?
Cake - :cake: Cake (C# Make) is a cross platform build automation system.
MSBuild - The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
FAKE - FAKE - F# Make
GitVersion - From git log to SemVer in no time
FlubuCore - A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Psake - A build automation tool written in PowerShell
Nake - Magic script-based C# task runner for .NET Core
Invoke-Build - Build Automation in PowerShell
pipeline - A cloud-native Pipeline resource.
dhall-kubernetes - Typecheck, template and modularize your Kubernetes definitions with Dhall
NUKE/common
dagger - Application Delivery as Code that Runs Anywhere