- the reason for this change is that the flake app structure can only be used inside `apps`. Nix run will not execute it if it is inside any other attribute
- 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
* Nixpkgs input updated
Starting from now `cabal2json` is available in nixpkgs
* Using `cabal2json` from Nixpkgs
* Using more idiomatic `haskellLib` utils
* Formatting
* docs: setup mdbook book for documentation
* ci: add github action for docs
* docs: add a cli command for showing docs in terminal
* Update docs/src/subsystems/rust.md
Co-authored-by: Ilan Joselevich <personal@ilanjoselevich.com>
* docs(rust): add example for crane overriding
* docs: add a further reading section to intro
* docs: fix a few links
* docs(readme): move documentation section up and fit some sections into 80 columns
Co-authored-by: Ilan Joselevich <personal@ilanjoselevich.com>
* 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
This aims to reduce the complexity of adding support for new ecosystems to dream2nix.
Now`discoverProject` can be defined in a translator, which allows to detect projects for that translator with a simple 3-liner.
This should be the default, and only later if complexity is required a fully featured discoverer needs to be implemented.