Skip to content

Releases: mibmo/conch

v0.5.2 - `mkShell` wrappers

10 Oct 13:51
Compare
Choose a tag to compare

A small but hugely powerful change - having the option of swapping out the mkShell function!

This is mainly useful for tools like crane, which has a mkShell-compatible wrapper that adds Cargo and relevant tools, but anything is possible: there's nothing stopping you from creating your own wrapper and customising the inputs before passing to pkgs.mkShell.

Changing values

{
  inputs.conch.url = "github:mibmo/conch";
  outputs = { conch, ... }:
    crane.load [ ... ]
      ({ pkgs, ... }: {
        # unset `packages`
        mkShell = options: pkgs.mkShell (options // { packages = [ ]; });
        # `packages` now has no effect
        packages = with pkgs; [ ... ];
      });
}

Usage with crane

{
  inputs = {
    conch.url = "github:mibmo/conch";
    crane.url = "github:ipetkov/crane";
  };
  outputs = { conch, crane, ... }:
    crane.load [ ... ]
      ({ pkgs, ... }: {
        # use crane's mkShell wrapper
        mkShell = (crane.mkLib pkgs).devShell;
        # still works as normal!
        packages = with pkgs; [ ... ];
      });
}

This might lead into the next generation of Rust integration for Conch, but we'll see; that's for a future release :)

v0.4.3 - Lots of changes!

21 Feb 21:12
Compare
Choose a tag to compare

Been a while since the last release and development has been very sporadic.
This release don't mark anything specific, just a lot of incremental changes!
There is still a lot of work to do, especially with the quality of modules, but this release implements a few much needed changes.

Changelog

Full Changelog: v0.3.3...v0.4.3

Shell

  • environment: set shell environment variables through attribute set.
  • aliases: changed from [{ name, definition }] to an attribute set { name = definition; ... }.
  • shellHooks: snippets of shell code to run at devshell startup. This is internal, and only intended for modules.
  • shellHook: shell code to run at devshell startup. Intended for use by conch end users.
  • Configured formatter is now added to the dev shell.
  • Dependencies of packages defined in flake.packages are added to the dev shell.

Modules

  • nixops: basic support.
  • terranix: basic support.
  • python: basic support.
  • morph: basic support.
  • node: basic support.

Documentation

  • Added templates (can be used to initialize projects with nix flake init --template github:mibmo/conch#...).
  • Conventional commits are no longer required (nor encouraged).

v0.3.3 - Flake configuration

27 Jun 09:54
Compare
Choose a tag to compare

Although this technically isn't a major release or big architectural change, it introduces an extremely useful module option; flake.

WIth it you can set arbitrary flake values (that override other module options; see example)

{
  inputs.conch.url = "github:mibmo/conch";
  outputs = inputs@{ conch, ... }:
    conch.load ["x86_64-linux"] ({ pkgs, system, ... }: {
      formatter = pkgs.nixpkgs-fmt;
      flake = { # also functions as "per-system" configuration, in that values incorporating `system` are unique to your systems
        formatter.${system} = pkgs.alejandra; # this overrides the formatter option
        nixosConfigurations.default = ... ;
      };
    })
}

This allows for using Conch along with existing Nix projects.

Full Changelog: v0.3.1...v0.3.3

v0.3.1 - License

16 Jun 12:53
Compare
Choose a tag to compare

Licenses Conch under MIT.

v0.3.0 - Modules

16 Jun 12:45
Compare
Choose a tag to compare

Complete migration to the modules system, completely removing the old predefined shells.

Full Changelog: v0.2.0...v0.3.0

v0.2.0

13 Jun 01:17
Compare
Choose a tag to compare

Full Changelog: v0.1.0...v0.2.0