* add devShell outputs for nodejs ad python
* nodejs devShell improvements
- do not export NODE_PATH
- create node_modules directory
- add .bin directories of direct dependencies to PATH
* nodejs: revise devShell logic
- fix namespaced modules symlinking to ./node_modules
- add all transitive exectables to ./node_modules/.bin
- add ./node_modules/.bin to PATH
* set nodejs version in eslint example
* nodejs: improve error message on failed node_modules symlink in devShell
* readme: add nodejs version setting to example
- translator: ensure setup requirements from pyproject.toml are respected
- builder: ensure setup requirements are installed first before the package is built
- simplify the python translator
- dont depend on mach-nix for dependency extraction
- use only pip download to extract dependencies
- allow impure pip translator to cache downloads
- fix dream-lock.json. location was missing
* fix(builder/crane): remove code that triggers IFD, remove dependency on full project source for deps only drv
* fix(rust/builders): pass pkgs to utils.nix
* fix(builder/crane): break dependency on whole project source in dependency derivation
* refactor(rust/builders): change nix version to be more close to when reading toFile paths was made non-IFD
* docs(translator/cargo-lock): make the safety comment about unsafeDiscardStringContext usage more clear
* chore(deps): update crane
* fix: use builtins.path to make paths content addressed and named properly in a few places, fix cargo-lock path replacements
* refactor(rust/builders): remove nix version check for writing cargo.lock to store
* tests: update dream2nix input before overriding it
* tests: remove 'flake.lock's, overriding input generates flake.lock correctly
* tests: use nixpkgs from dream2nix input in d2n-init-pkgs
* refactor: remove useless builtins.path calls
* fix: use writeText for writing generated Cargo.lock, toFile causes problems
* feat: return underlying d2n instance if pkgs was passed to init, document init pkgs
* feat: implement makeOutputs
* tests: dont fail if resolveImpure fails
* feat: make init return a dream2nix instance, rework makeFlakeOutputs code
* feat: default to source if config.projectRoot is not specified, update examples and readme
* fix: update the simple template
* docs: clarify init in readme
* docs: change readme numbering to back to 1
* refactor: dont default projectRoot to source
* docs: make extensive example use makeFlakeOutputs, link per-pkgs d2n example in readme
* fix: call loadConfig correctly
* refactor: implement a validation system for builders / translators etc, organize files
* refactor: use seq instead of complicated validation function for validator
* feat: allow adding discoverers, translators and builders via config
* refactor: rework discoverers to use makeSubsystemModules as well
* fix: validate extra modules properly
* feat: support inline modules
* feat: use extra attribute for extending
* feat: make fetchers extensible properly
* fix: add name to extra fetchers
* feat: support list for extra
* docs: add some comment to lib/modules.nix
* fix: get extra module args from extraArgs
* fix: collect all modules instead of only collecting modules for built-in subsystems
* refactor: minor improvements
* refactor: improve how default subsystem modules are declared
* fix: translators and builders are directly under subsystem now
* fix: correct attribute path, remove unused argument
* fix: correct translators attribute paths
* fix: correct file paths and translators attribute paths
* fix: use correct translator attr path in wrapPureTranslator
* fix: update unit tests code
* fix: remove extra paranthesis in unit tests code
* tests: add an extended dream2nix example
* refactor: replace recursiveUpdate usage with normal update op
* tests: fix and extend d2n-extended example
* fix: pass config to d2n instance in wrap pure translator script
* fix: correct toFile usage
* fix: pass config to dlib in more places
* fix: pass config to d2n instance in aggregated hashes cli and gomod2nix translator
* refactor: remove unused extra modules validation, add warning for function modules
* fix: remove non-existent inherited variable
* docs: update translator attr path in contributors guide
* docs: add docs for extending dream2nix
* refactor: comment more code, warn for function modules only if extra is an attrset decl
* docs: fix some typos
* docs: explain some stuff in extending d2n better
* fix: print function modules warning when it is a function
* tests: add a new example that tests adding new subsystem and config.extra as nix file
* tests: use cargo-toml as translator on d2n-extended to potentially catch more bugs
* feat: add ifd warning for builders
* tests: use build-rust-package builder instead of crane builder in d2n-extended to also test it instead of only testing crane builder
* fix(rust/builders): always write the generated Cargo.lock so it doesnt get out of sync with our dream-lock
* fix(rust/builders): delete cargo lock before writing it?
* refactor: also print ifd warnings for translators
* docs: link extending d2n doc in readme, link examples in extending d2n
* docs: example naming (translators.new -> translators.example-translator)
* feat: allow setting nix files for modules declarations (eg. subsystems, subsystems.translators)
* refactor: move IFD warnings to src/lib/builders.nix / translators.nix respectively
* refactor: throw instead of warning if function declarations for modules are used
* refactor: fix throw usage
* refactor: improve modules code
* chore(deps): update nixpkgs
* fix: correct some map usages
* fix: use correct attr path for extra modules
* chore: update examples flake inputs
* style: minor formatting changes