Our great sponsors
shake | just | |
---|---|---|
11 | 164 | |
755 | 17,053 | |
- | - | |
6.7 | 9.1 | |
3 months ago | 3 days ago | |
Haskell | Rust | |
GNU General Public License v3.0 or later | Creative Commons Zero v1.0 Universal |
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.
shake
-
Ninja is enough build system
Another interesting implementation is Shake: https://shakebuild.com/
It is technically a Haskell DSL, but supports Ninja files, time estimates and has tools for linting and profiling.
-
Buck2: Our open source build system
They explicitly refer to Shake build system and Build Systems a la Carte paper.
-
Straightforward Makefile Tutorial that bring together best practices once and for all.
The one paper that gave me hope about build systems was Build systems à la carte: Theory and practice, by Andrey Mokhov, Neil Mitchell, and Simon Peyton Jones. Among other things, it describes the theoretical underpinnings of the Shake build system. To be honest I believe any build system that ignores the maths described in this paper can safely be ignored. (You may however ignore the paper itself if the maths checks out. See Daniel J. Bernstein's redo, which matches Shake very closely.)
-
Worst language you ever used? Really used not just looked at the manual.
Yeah, they don't have to be terrible. I haven't used it, but people in my circles tend to really like Shake, which uses a Haskell embedded DSL to describe builds.
- Shake Build System
-
Strengths, weaknesses, opportunities, and threats facing the GNU Autotools
You could try Shake. It's a sane build system written by a former co-worker of mine. https://shakebuild.com/
-
Overview of the CMake controversy, and break down the pros and cons of the critical C++ tool.
Shake does require compilation as it's essentially just a Haskell library providing a DSL and it works just fine, I guess in gradle's case it's a thing about Java-typical overengineering and complete blindness to resource usage. Shake's underlying engine can actually go head-to-head with ninja itself when building ninja files.
-
Need recommendations for a dependency-tracking system
Did you look at shake: https://shakebuild.com/ ?
- The Shake Build System
-
Trouble Linking Dynamic Library for Package
For reasons I don't want to get into, I am building my own GHC package without cabal. The documentation is a little sketchy, but I've succeeded in build and installing it in my own user database (I'm on linux x86_64, using GHC 8.6.5). I am using shake to do all of this, and I've been pretty pleased with how it works.
just
-
Ask HN: Any tool for managing large and variable command lines?
I started using just [0] on my projects and have been very happy so far. It is very similar to make but focused on commands rather than build outputs.
Define your recipes and then you can compose them as needed.
[0] https://github.com/casey/just
-
Ask HN: What software sparks joy when using?
just - https://github.com/casey/just
-
GitHub switched to Docker Compose v2, action needed
Welp there is absolute chaos in that thread -- guess it's not an April Fools joke.
I wonder if relying on CI for anything other than provisioning machines is a mistake -- maybe we should have never moved from doing things from local scripts written in $LANGUAGE.
That said, I'm probably biased since I'm a massive fan of things like `make` and more appropriately for the current age, `just`[0]
[0]: https://github.com/casey/just
-
Which command did you run 1731 days ago?
> When a command has some cognitive requirements I create a script with some ${1:-default} values and I store them all in $PATH enabled local/bin
I would consider using just for this:
https://github.com/casey/just
-
Using Make – writing less Makefile
Your coworker's experience is more principled: Make is a mediocre tool for executing commands. It wasn't ever designed for that. Although it is pretty common to see what you are mentioning in projects because it doesn't require installing a dependency.
For a repo where an easy to install (single binary) dependency is a non-issue, consider using just. [1] You get `just -l` where you can see all the command available, the ability to use different languages, and overall simpler command writing.
[1] https://github.com/casey/just
-
Show HN: Just.sh – compiler that turns Justfiles into portable shell scripts
This is fantastic, but I'd say that this solution is somewhat in response to this open issue from 2019:
https://github.com/casey/just/issues/429
I really wish just was included as a package in distributions.
-
Sharing Saturday #496
So far, I didn't work on new features at all but on stabilizing the ground for further development: 1. CMake lists and modules were rewritten a lot, now managing builds and their configurations is much lesser pain. 2. Brought in Justfile for regular tasks, and it's great, no less. 3. Linters, formatters, analyzers for almost all the code (except for Janet for now, as because of it being a niche and young technology, it didn't get enough attention yet). 4. ECS stub. Now runtime class doesn't look like a god object. 5. Started writing unit tests which didn't happen with my personal projects before and maybe indicates how serious am I about this one :D 6. Some of previously hardcoded data has been moved to INI files. Now, if I release the game in 10 years, and in 10 more years some eccentric person decides to make a variant of it, it will be slightly simpler.
-
What’s with DevOps engineers using `make` of all things?
i've grown to like this for my personal projects. https://github.com/casey/just
-
Show HN: Jeeves – A Pythonic Alternative to GNU Make
Reminds me of `just`. Which I love.
https://github.com/casey/just
-
Dev Containers: Open, Develop, Repeat...
In my example above, I installed the developer tool "Just" as a Dev Container feature. I could also install it by adding the install script to my Dockerfile. However, I would have to build my own Dockerfile and would have to maintain this piece of code myself. This Dev Container Feature works on different architectures and base images, which makes them convenient to use.
What are some alternatives?
gitHUD - command-line HUD for your git repo
Task - A task runner / simpler Make alternative written in Go
marvin - The paranoid bot (framework)
cargo-make - Rust task runner and build tool.
leksah - Haskell IDE
cargo-xtask
shake-language-c - Cross-compilation framework based on the Shake Haskell library.
Taskfile - Repository for the Taskfile template.
bumper - Haskell tool to automatically bump package versions transitively.
CodeLLDB - A native debugger extension for VSCode based on LLDB
clone-all - clone all the github repositories of a particular user.
cargo-release - Cargo subcommand `release`: everything about releasing a rust crate.