envrc VS stack

Compare envrc vs stack and see what are their differences.

envrc

Emacs support for direnv which operates buffer-locally (by purcell)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
envrc stack
18 47
325 3,949
- 0.3%
6.4 9.9
10 days ago 1 day ago
Emacs Lisp Haskell
- BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

envrc

Posts with mentions or reviews of envrc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-09.
  • Emacs Advent Calendar 9: devdocs, code-cells, dREPL, etc.
    17 projects | /r/emacs | 9 Dec 2023
    buffer-env: A pure-Elisp version of the direnv utility. Useful to make Emacs aware of Python virtualenvs (which, judging by the questions posted here, is unfortunately still a complication for a lot of people). Similar to (and inspired by) envrc, but doesn't require the direnv program.
  • Nix Survival Mode: macOS upgrades won't break Nix anymore
    12 projects | news.ycombinator.com | 25 Oct 2023
    Yes, most Nix users employ https://direnv.net or the equivalent for your IDE of choice. Emacs for instance has https://github.com/purcell/envrc which set per-buffer variables.
  • Beginner question: how do I set up virtual environments in my Python buffer?
    3 projects | /r/emacs | 22 Apr 2023
    Also take a look at the envrc package. I think it handles multiple projects better.
  • How do YOU use your PKMS?
    5 projects | /r/PKMS | 21 Apr 2023
    I further make my software projects so that when I click a link I go into an environment pre-loaded with their dependencies so dropping in/out of projects is always frictionless. I do this with the reproducibility guarantees of nix, along with glue like nix-direnv and envrc-mode to direnv.
  • Minimal approach for python devel environment with flake
    4 projects | /r/NixOS | 4 Feb 2023
    In conjunction with installing direnv on your favorite text editor, it's a very hassle free experience. Everything happens automatically. If you use Emacs, i higly recommend envrc.el
  • Nix and envrc
    3 projects | /r/emacs | 3 Feb 2023
    Direnv is installed using the nix-direnv installation instructions under "Via configuration.nix in NixOS". I read some recommendations that envrc.el is a better alternative then direnv.el, and after some testing I have to agree. (envrc-global-mode) is enabled in my config. This works perfectly with a normal emacs instance.
  • Emacs + emacs-direnv + Nix + vterm does not just work
    1 project | /r/emacs | 27 Dec 2022
    I don't use flake.nix, only shell.nix, though check if the envrc package works any better for you. https://github.com/purcell/envrc
  • Wrapping gcc with libraries
    2 projects | /r/NixOS | 4 Dec 2022
    As an alternative to emacs-direnv, I’d recommend the “envrc” package.
  • Eglot appreciation post
    3 projects | /r/emacs | 8 Jun 2022
    btw, my main issue regarding tramp was the fact that I didn't have my environment generated by direnv, via the https://github.com/purcell/envrc package. I use direnv almost exclusively to activate my nix-shell, so I can access the exact software dependencies required by that directory of a project.
  • Is it possible to let overlay Emacs use locally configured Agda libraries inside nix-shell?
    1 project | /r/NixOS | 19 May 2022
    I'm not familiar with these tools too but I highly recommend to look at https://github.com/purcell/envrc. If you are not familiar with direnv I suggest to try it with nix-shell/flakes before.

stack

Posts with mentions or reviews of stack. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-24.
  • Leaving Haskell Behind
    7 projects | news.ycombinator.com | 24 Aug 2023
    Ah, didn't run into this issue, as I don't use vscode.

    Apparently there is some work being done to improve the stack <> hls experience, but I wouldn't know how it's going and when it's being delivered: https://github.com/commercialhaskell/stack/issues/6154

  • Help, i get this error when executing the command "xmonad"
    1 project | /r/xmonad | 1 Jun 2023
    this is it: # This file was automatically generated by 'stack init' # # Some commonly used options have been documented as comments in this file. # For advanced use and comprehensive documentation of the format, please see: # https://docs.haskellstack.org/en/stable/yaml\_configuration/ # Resolver to choose a 'specific' stackage snapshot or a compiler version. # A snapshot resolver dictates the compiler version and the set of packages # to be used for project dependencies. For example: # # resolver: lts-3.5 # resolver: nightly-2015-09-21 # resolver: ghc-7.10.2 # # The location of a snapshot can be provided as a file or url. Stack assumes # a snapshot provided as a file might change, whereas a url resource does not. # # resolver: ./custom-snapshot.yaml # resolver: https://example.com/snapshots/2018-01-01.yaml resolver: url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/23.yaml # User packages to be built. # Various formats can be used as shown in the example below. # # packages: # - some-directory # - https://example.com/foo/bar/baz-0.0.2.tar.gz # subdirs: # - auto-update # - wai packages: - xmonad - xmonad-contrib # Dependency packages to be pulled from upstream that are not in the resolver. # These entries can reference officially published versions as well as # forks / in-progress versions pinned to a git hash. For example: # # extra-deps: # - acme-missiles-0.3 # - git: https://github.com/commercialhaskell/stack.git # commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a # # extra-deps: [] # Override default flag values for local packages and extra-deps # flags: {} # Extra package databases containing global packages # extra-package-dbs: [] # Control whether we use the GHC we find on the path # system-ghc: true # # Require a specific version of Stack, using version ranges # require-stack-version: -any # Default # require-stack-version: ">=2.11" # # Override the architecture used by Stack, especially useful on Windows # arch: i386 # arch: x86_64 # # Extra directories used by Stack for building # extra-include-dirs: [/path/to/dir] # extra-lib-dirs: [/path/to/dir] # # Allow a newer minor version of GHC than the snapshot specifies # compiler-check: newer-minor
  • ANN: stack-2.11.1
    2 projects | /r/haskell | 18 May 2023
    Fix incorrect warning if allow-newer-deps are specified but allow-newer is false. See #6068.
  • [ANN] First release candidate for stack-2.11.1
    1 project | /r/haskell | 5 May 2023
    You can download binaries for this pre-release from: Release rc/v2.11.0.1 (release candidate) · commercialhaskell/stack · GitHub .
  • PEP 582 rejected - consensus among the community needed
    7 projects | /r/Python | 28 Mar 2023
    Fair enough! Thanks for the suggestion, then. In fact, the non-Python language I develop most in (Haskell, with the Stack package manager) has exactly that behaviour as a default: new packages are installed to a sandboxed local directory, and it takes an explicit request to install something globally. (And even then, you can switch between different global "known good configurations" of package versions which work well together – a pretty handy feature.)
  • Any open source projects to contribute to for beginners
    8 projects | /r/haskell | 13 Feb 2023
  • How to suppress warnings from external packages?
    1 project | /r/haskell | 30 Jan 2023
    Opened a ticket on GitHub.
  • ANN: stack-2.9.3
    2 projects | /r/haskell | 17 Dec 2022
    In YAML configuration files, the hackage-security key of the package-index key or the package-indices item can be omitted, and the Hackage Security configuration for the item will default to that for the official Hackage server. See #5870.
  • `Stack build` fails with `gcc' failed in phase `Assembler'
    1 project | /r/haskell | 30 Nov 2022
    FYI this was solved in here: https://github.com/commercialhaskell/stack/issues/5958
  • [ANN] First release candidate for stack-2.9.3
    5 projects | /r/haskell | 22 Nov 2022
    Yes, that is correct. Stack's allow-newer: true configuration has always actually meant 'ignore bounds'. However, the author of the allow-newer-deps development has in mind a further development that will introduce an actual ignore-bounds key with the same expressive syntax that is used by Cabal. This is discussed at Stack #5910.

What are some alternatives?

When comparing envrc and stack you can also consider the following projects:

emacs-direnv - direnv integration for emacs

ghcup-hs - THIS REPO IS A MIRROR, BUG REPORTS GO HERE:

dotemacs

Cabal - Official upstream development repository for Cabal and cabal-install

direnv - unclutter your .profile

ghcid - Very low feature GHCi based IDE

lsp-bridge - A blazingly fast LSP client for Emacs

castle - A tool to manage shared cabal-install sandboxes.

buffer-env - Buffer-local process environments for Emacs

profiterole - GHC prof manipulation script

Elpy - Emacs Python Development Environment

haskell-language-server - Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.