Skip to content

remove nested .envrc from projects, version devtools#92

Closed
designbyajay wants to merge 30 commits intomainfrom
simplify-dev-config
Closed

remove nested .envrc from projects, version devtools#92
designbyajay wants to merge 30 commits intomainfrom
simplify-dev-config

Conversation

@designbyajay
Copy link
Member

projects are now any folder with manfest files in them. All devtools for all projects are now loaded in the root dev shell. The dev shell now reads the project manifest and selects the correct versions of the dev tools for the manifest. Each nix package in a nix flake is now separately versioned and tagged. Projects can now be nested in each other.

this utility returns a list of matching directory entities
for a folder, an optinoal matchDirentName lambda
that evaluates to true/false, an optional matchDirentType
that evaluates to true/false

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
decouple stubProject.nix from
importFromLanguageFolder.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
do not importStubProject in importFromLanguageFolder.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
.config/stubProject.nix → stub-project.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
instead of checking language-* for a
stubProject.nix, check .config for a
stub-project-<language>.nix

move language-nix/stubProject.nix → stub-project-nix.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
stub project command can now include multiple
tools, each with a version:

stub-project-nix.nix → stub-project-nix_v2.33.1.nix

i.e. “stub-project-[<language>_<version>].nix”

e.g. stub-project-nix_v2.33.1-deno_v2.6.5.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
decouple from from devShell.nix

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
make a tool.nix that imports
tool-<name>_<version>.nix. The goal is to maintain
links to versions of tools that are needed to run
project-* commands

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
tool.nix imports
tool-<name>_v<MAJOR>.<MINOR>.<PATCH>.nix
files and arranges them into an attrset in which
name.major.minor.patch points to the bin with
the tool

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
parse-manifest-* receives a manifest file and returns
tool, version, and the corresponding project-lint,
project-lint-semver, project-build, project-test,
project-publish commands

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
dev-shell.nix will replace devShell.nix

it provides a simpler definition for project-lint
project-lint-semver project-build project-test

note: we don’t provide a project-bump-semver
because CI will never run this command!

note: we don’t provide a project-publish, because
each manifest file gets its own project-publish
github action

Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
Signed-off-by: Ajay Ganapathy <ajay@incremental.design>
chore: make github actions use dev-shell.nix cmds
we no longer need language-* folders because
now we just put all config in the .config folder,
with no nesting
@designbyajay designbyajay deleted the simplify-dev-config branch March 1, 2026 15:55
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.

1 participant