Commit Graph

930 Commits

Author SHA1 Message Date
DavHau
1beb1eaab5 feat: improve nodejs translators/builders
- also execute preinstall script during package installation
- disable devDependencies if no instal script present by default
2022-07-29 16:01:35 +02:00
DavHau
130d71f9d5 feat: pre-commit-hook to cleanup leftover example artifacts 2022-07-29 14:17:40 +02:00
DavHau
97243aa70a libraries-io: get api key from env 2022-07-29 14:14:02 +02:00
DavHau
99914a4331 python: add verbosity to pip translator 2022-07-27 21:23:46 +02:00
DavHau
55f9d0c210
Merge pull request #209 from nix-community/fix/read-only-compat
fix: make dream2nix evaluation work with --read-only flag
2022-07-27 16:48:50 +02:00
Yusuf Bera Ertan
0f4d0a9847
tests: dont run read-only check no certain examples 2022-07-24 19:53:38 +03:00
Yusuf Bera Ertan
46aee5cdfe
fix: remove one more instance where --read-only is broken 2022-07-24 19:45:52 +03:00
Yusuf Bera Ertan
0cf34d9162
tests: run nix eval test after resolving impurities 2022-07-24 19:29:18 +03:00
Yusuf Bera Ertan
07d0e71a13
tests: run nix eval with read-only and no-ifd flags on examples to ensure they work with those flags 2022-07-24 19:26:46 +03:00
Yusuf Bera Ertan
df3d951db0
fix: make dream2nix evaluation work with --read-only flag 2022-07-24 18:58:24 +03:00
DavHau
aaa994667f chore: re-format with alejandra 2 2022-07-24 00:35:42 +02:00
DavHau
7053299bc5 chore: update alejandra 2022-07-24 00:20:26 +02:00
DavHau
d9a5fece32
Merge pull request #208 from nix-community/nodejs
Nodejs devShell: improve & allow for good interop with npm
2022-07-24 00:15:04 +02:00
DavHau
9e85f2ab73 feat: nodejs: move devShell logic to separate file 2022-07-23 23:57:57 +02:00
DavHau
bb07fbd9e3 feat: nodejs: installMethod=copy by default for top-level packages 2022-07-23 23:45:03 +02:00
DavHau
81739947c4 devShell allowing for good interop with npm
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.
2022-07-23 23:41:44 +02:00
DavHau
59f305953f refactor: remove confusing setting from haskell example 2022-07-22 17:31:16 +02:00
DavHau
8e1eac8e38
Merge pull request #207 from nix-community/docs
docs on haskell & refactor docs
2022-07-22 17:22:25 +02:00
DavHau
b478f29d7a add documentation for the haskell subsystem 2022-07-22 17:19:54 +02:00
DavHau
e8fe3f803f rename examples under ./examples
Apply naming scheme {subsystem}_{test-name}
2022-07-22 16:02:21 +02:00
DavHau
2b871d2970 fix ./src/utils/default.nix subsystemInfo missing 2022-07-19 16:16:44 +02:00
DavHau
005e494a68 fix: impure translator template 2022-07-19 16:14:50 +02:00
DavHau
67a96dc5cb fix: dream-lock.json example & impure translator template 2022-07-19 09:57:30 +02:00
DavHau
adaae3473f
Merge pull request #203 from nix-community/revert-202-refine-docs
Revert "refactor: readme/docs"
2022-07-18 18:58:50 +02:00
DavHau
9ce7b78c1f
Revert "refactor: readme/docs" 2022-07-18 18:58:36 +02:00
DavHau
ca44eef8af
Merge pull request #202 from nix-community/refine-docs
refactor: readme/docs
2022-07-18 18:53:21 +02:00
DavHau
3808b309dc refactor: readme/docs
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
-
2022-07-17 21:17:41 +02:00
DavHau
20f9415889
Merge pull request #201 from nix-community/python-docs
python improvements, docs and guide.
2022-07-16 19:07:01 +02:00
DavHau
932ccb13dc fix systemsFromFile
- make use of config.projectRoot to ge relative path of systems file
2022-07-16 18:58:04 +02:00
Yusuf Bera Ertan
43c3bbe8b5
feat(rust): add overrides for zellij and eureka (#200) 2022-07-16 13:57:01 +00:00
DavHau
7cd64d386d python improvements, docs and guide.
- 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
2022-07-16 15:03:37 +02:00
Yusuf Bera Ertan
fdd111cca7
fix(rust/crane): make the generated devshells not build the dependencies / crate, comment the code properly 2022-07-15 23:17:26 +03:00
DavHau
1f271055f3
Merge pull request #197 from nix-community/libaries-io
indexer: add libraries-io
2022-07-14 14:20:14 +02:00
DavHau
cc90dbdb76 indexer: add libraries-io
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)
2022-07-14 12:57:19 +02:00
DavHau
b2c7059bc6
Merge pull request #196 from lelit/typos
Fix typos in documentation
2022-07-14 12:13:37 +02:00
Lele Gaifax
c69534abef Fix typos in documentation 2022-07-14 11:31:44 +02:00
DavHau
dbdcb4abc5
Merge pull request #194 from nix-community/nodejs-bin-links
nodejs: improve builder (executable linking)
2022-07-14 10:25:17 +02:00
DavHau
b7e29c539c nodejs: improve builder (executable linking)
- 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
2022-07-13 23:18:37 +02:00
DavHau
b83394e5f2
haskell: init cabal-plan translator (#192)
* haskell: init cabal-plan translator

* simplify cabal2json: take from new nixpkgs

* delete accidental copy of file

* fix example haskell-plan-json

* rename haskell examples
2022-07-12 21:45:29 +02:00
DavHau
10fecabe3a
add devShell outputs for nodejs ad python (#186)
* 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
2022-07-12 18:54:35 +02:00
Yusuf Bera Ertan
4bb76f8a1b
fix: check if source type is path in replaceRootSources 2022-07-12 18:56:32 +03:00
Yusuf Bera Ertan
d657fcfac8
docs: fix development roundup section 2022-07-12 16:42:12 +03:00
Yusuf Bera Ertan
05167f7e6f
feat: indexers (#184)
* 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>
2022-07-12 12:33:04 +02:00
DavHau
6eb67f2775
Merge pull request #188 from nix-community/dev-roundups
Add development roundup April - June
2022-07-12 11:07:34 +02:00
DavHau
46ee892b40
Merge pull request #193 from happysalada/puppeteer
puppeteer: initial override
2022-07-12 11:06:13 +02:00
happysalada
51295e04af puppeteer: initial override 2022-07-11 20:14:00 -04:00
DavHau
c246205a90
Merge pull request #187 from blaggacao/main
fix: yarn lock translator & builder
2022-07-07 21:50:29 +02:00
DavHau
8d4b848ac9
Merge pull request #189 from nix-community/feat/rust-devshell
feat(rust): add devshells to rust builder outputs
2022-07-07 21:25:05 +02:00
Yusuf Bera Ertan
0f6dcb0c53
feat(rust): add devshells to rust builder outputs 2022-07-07 21:27:30 +03:00
Yusuf Bera Ertan
757501574f
docs: add more examples for overriding rust-toolchain 2022-07-06 20:30:29 +03:00