The shellHook always overwrites existing ./node_modules with a full
flat copy of all transitive dependencies produced by dream2nix from
the lock file.
This allows good interop with npm. npm is still needed to update or
add dependencies. npm can write to the ./node_modules without
any issues and add or replace dependencies.
If npm modifies ./node_modules, then its contents will be a mix of
dream2nix installed packages and npm installed packages until the
devShell is re-entered and dream2nix overwrites the ./node_modules
with a fully reproducible copy again.
The motivation of this change is to trim down the github front page (README.md). Code examples should not be part of that page. It should be short and only contain the most important information that's necessary for a rough overview.
- add sections `Quick Start` and `Presentation ...` to docs
- move usage examples from readme to `Quick Start` in the docs
- trim down the explanation about `Documentation` a bit
- move the youtube presentation to the end
-
- add warning to readme and docs stating that dream2nix is unstable software
- refactor structure of docs: remove title .md pages, instead add titles via (# title) to SUMMARY
- change order of doc topics. move `guides` and `subsystems` to the front
- add docs for python subsystem
- add getting started guide for python
- extend ./examples/python to make use of translator options
- add new function to dlib `systemsFromFile` that allows to load the `supportedSystems` from a file. This alows changing the supported systems without touching the flake.
- move pip translator args to extra file `args.nix` to allow embedding in docs
- fix pip translator
- add a .gitignore to the basic flake template
- use new systemsFromFile function in basic flake template
Indexer which utilizes the libraries.io api.
Given a platform (like npm or crates-io), it returns a list of packages sorted
by the highest number of dependents
(the number of other packages which depend on that package).
This indexer requires an api key that must first be created on libraries.io.
Github login is supported, so this is very straight forward.
More options could be added.
libraries.io also supports other interesting popularity metrics:
- dependent_repos_count
- stars
- forks
- rank (source rank, see https://libraries.io/api#project-sourcerank)
- unsure that all executables of transitive dependencies are linked to /lib/node_modules/.bin
- stop adding many store paths to PATH, instead add .bin directory to PATH
- if installMethod=copy, .bin symlinks will now point to the local copy of the dependency instead of the original store path. This improves issues with runtime dependency errors in some situations
* 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
* feat: add translate and shell commands
* feat: add indexer modules
* feat(nodejs): add a basic npm indexer
* feat: add an index app for indexing using an indexer
* feat(rust): add crates-io indexer
* refactor: use configFile in more places
* feat: implement translate-index app
* refactor: move indexers out of subsystems since they aren't subsystem specific
* fix: discard string context for config text
* docs: add a preliminary document for indexers
* docs: add examples for crates-io and npm indexer inputs
* feat: add support for setting sourceRoot in dream-lock, fix translate source patching
* fix: don't discard context from config passed as text
* fix: remove duplicate resolves
* fix: shell command
* refactor: remove useless nix calls, improve the apps
* feat: improve cli apps UX, implement runNixCmdInSrc, remove shell
* docs: more comments
* feat: add generatePackagesFromLocksTree util
* fix: pass args to generatePackagesFromDreamLocks correctly
* Update indexers.md
* chore: remove license from crates-io indexer
* fix: pass config loaded from env vars to loadConfig
* refactor: don't expose dream2nix internally
* feat: add makeOutputsForIndexes utility
* refactor: make make(Flake)OutputsForIndexes interface consistent with make(Flake)Outputs
* fix: allow passing pkgs to makeFlakeOutputsForIndexes
* fix: remove unused code
* fix: rename var to expected name
* refactor(utils/index): improve and fix overrideOutputs arg
* fix(utils/index): actually pass prev outputs to overrideOutputs
* refactor: patch all sources instead of using a seperate field in dream lock
* fix(utils/index): use .program to access the program
* fix: correct jq command in translate app
* refactor: improve translate app performance
* feat: add crates-io-simple indexer
* fix(apps/translate): only set dir if relPath is set
* fix(apps/callNixWithD2N): pin nixpkgs
* fix: unloaded config passed to dlib
* refactor: rewrite root source patching in nix
* tests: add a unit test for replace root sources
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>