7 comments

  • bargainbin 1 hour ago
    If you haven’t tried it, I highly recommend Mise. It manages everything at the user level so it’s not as “all encompassing” as Nix and is readily compatible with immutable distros.

    https://mise.jdx.dev/

    Your solution is akin to putting your dotfiles in the code repo, which is going to cause issues with languages with poor version compatibility (such as node and python) when switching between old projects.

    Also, bold of you to assume developers know make and bash just because they’re using Linux!

    • ManuelKiessling 36 minutes ago
      These days, all dev tooling of my projects lives behind mise tasks, and the runtime for my projects is Docker.

      This means that getting a project in shape for development on a new system looks like this:

      - clone project

      - `mise run setup`

      I have zero dev tools on my host, projects are 100% self-contained.

      Pure bliss.

      See https://github.com/dx-tooling/sitebuilder-webapp for an example.

    • igor47 52 minutes ago
      I cannot endorse mise more highly. I commit it to my repos to make sure every engineer has the same environment. I use it in CI for consistency there as well. I keep all commands that would normally be documented in a readme as mise tasks. I use mise to load the environment, independent of language specific tools like dotenv. I use a gitignored mise.local to put real creds into the environment for testing.
  • theowaway213456 1 hour ago
    Five years ago, I would've loved this. I love the simplicity and power of good old Make. And I obsess over my workstation's configuration. I used to have a massive bash script I would use to reprovision my workstation after every clean upgrade of Ubuntu.

    But these days, I just tell codex to install things for me. I basically use it as a universal package manager. It's more reliable honestly than trying to keep up to date with "what's the current recommended way to install this package?"

    I also have it keep a list of packages I have installed, which is synced to GitHub every time the list changes.

    • tpoacher 1 hour ago
      Add the LLM to your makefile then :p

        target:
            llm command "Install X for me."
      
      (PS. I don't even know if I'm joking anymore)
    • nemosaltat 1 hour ago
      Just add the universal install script to AGENTS.md and yolo https://xkcd.com/1654/
  • tpoacher 38 minutes ago
    I have something somewhat similar here: https://git.sr.ht/~tpapastylianou/misc-updater

    The main difference is I initially only needed a mechanism to check if my "Manually-Installed or Source -Compiled" (MISC) packages have updates, but now it also supports install/upgrading too.

    In other words, things I am forced to do by hand outside of a package manager, I now only do by hand once, save it as an 'install' script, and then incorporate it into this system for future use and to check for updates. Pretty happy with it.

  • ekropotin 1 hour ago
    I think you are re-inventing the wheel https://github.com/nix-community/home-manager
    • Arthurian 1 hour ago
      I recently used clause code to help me learn nix + home-manager! For anyone considering it - it’s been fun, genuinely useful in my day to day, and I can’t recommend it enough - I now have a source controlled tool kit that I can take with me anywhere I go
    • ika 1 hour ago
      I agree. I started with Nix flakes in my project and fell in love with them. Then I started using Home Manager, and now I feel complete. I even played with nix-darwin and NixOS. It's an amazing piece of software.
  • tmarice 16 minutes ago
    I’ve been using devenv.sh for the last year for this, and never been happier.
  • esafak 1 hour ago
    you can declare tools and tasks with http://mise.jdx.dev/
  • rheakapoor 15 minutes ago
    [dead]