Skip to content

Conversation

@jfroche
Copy link
Collaborator

@jfroche jfroche commented Dec 11, 2025

The current development shell include a large number of packages which
leads to a very large closure size (5 Gb) and slow startup times.
To improve the situation we defer installing large packages to devshell
commands which only get installed when needed.
We introduce the use of devshell to define the commands in a
declarative way as well as to improve the overall developer experience.
The closure of the default devshell is now down to 2 Gb (which still could be improved later on).

Included changes:

  • Add organized command menu with categories (check, ami, extension, postgres)
  • Add watch command using watchexec + nix-fast-build for continuous checking
  • Expose common tasks as named commands: fmt, check, lint, watch
  • Add aws-vault to development tools

The current development shell include a large number of packages which
leads to a very large closure size (5 Gb) and slow startup times.
To improve the situation we defer installing large packages to devshell
commands which only get installed when needed.
We introduce the use of devshell to define the commands in a
declarative way as well as to improve the overall developer experience.

Included changes:

- Add organized command menu with categories (check, ami, extension, postgres)
- Add watch command using watchexec + nix-fast-build for continuous checking
- Expose common tasks as named commands: fmt, check, lint, watch
- Add aws-vault to development tools
`writeShellApplication` avoids substitute commands, provides the correct
package metadata and make sure that all scripts are shellcheked.
We don't need to maintain our own packer package anymore since we are
using a recently updated nixpkgs that includes packer.
@jfroche jfroche requested review from a team as code owners December 11, 2025 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants