Commit Graph

97 Commits

Author SHA1 Message Date
DavHau
17a8993d88 feat(lock): several features
- don't allow nested fields in lock file (can lead to infinite recursion)
- don't modify FOD
- shortcut if output is cached -> inherit hash from drv
2023-03-23 14:27:25 +08:00
DavHau
f2b02bc056 chore(v1): remove some packages from checks (temporarily) 2023-03-22 23:30:58 +08:00
DavHau
694d895f2c fix(nixpkgs-overrides): fix attrs from nixpkgs not applied 2023-03-22 23:17:55 +08:00
phaer
bd4b8b36a6 fix(fetchPip): re-add requirements.txt support 2023-03-22 23:17:55 +08:00
phaer
fa58684291 fix(eval-cache): prevent infinite recursion in doc 2023-03-22 23:17:55 +08:00
phaer
a47ec7511a fix(nixpkgs-overrides): only extract existing pkgs 2023-03-22 23:17:55 +08:00
phaer
eb9e70bdd2 feat(fetch-python-reqs): read egg-info, not...
...requirements.txt. The latter was a dirty hack as its meant for
environments and doesn't really include package metadata.
egg-info + dist info seems to cover most of pypi.
2023-03-22 23:17:55 +08:00
DavHau
dce1cbc2ef feat(updateFODHash): fixes + rename to compureFODHash 2023-03-22 23:09:08 +08:00
DavHau
a984457902 fix(lock): fix config.name refs and makeDrv 2023-03-22 12:50:03 +08:00
phaer
2f162e68e8 chore(lock): move updateFODHash to lock part 2023-03-22 12:03:41 +08:00
phaer
530a05eec0 fix(lock): simplify & clarify log msg...
We don't need to build dependencies separately anymore, as we now check
the drv_path in the nix build log.

Also, the hash found does not have to be "new", it could be the same as
before.
2023-03-22 12:03:41 +08:00
phaer
7ba5d4abc9 feat(lock): re-implement in python...
as discussed during the last weekly, where we've implemented a
prototype, this replaces the nix + jq magic with python.

it requires more SLOCs and error handling could further be improved,
but i think it helps readability and makes the logic of parsing
nix build logs a bit more robust by checking that we get a hash
for the drv_path we expected.

Empty hash is replaced by l.fakeSha256 to silence a nix warning.
2023-03-22 12:03:41 +08:00
DavHau
8a85ff2904 feat(lock): init lock module for generic locking via json file 2023-03-22 12:03:41 +08:00
DavHau
58e6e18ce4 chore(fetchPip): remove unused args 2023-03-22 10:53:55 +08:00
DavHau
f04f032418 Handle zip files in write-dependency-tree
Authored-by: @phaer
2023-03-21 12:53:50 +07:00
DavHau
b1b5887ce8 chore(fetchPythonRequirements): rename to fetchPip 2023-03-21 12:44:05 +07:00
DavHau
a677084257 chore(fetchPythonRequirements): refactor code
- add and improve comments
- reduce nesting in several places
- move requirementsFiles flag logic to python
- MAX_DATE -> maxDate
- respect column 80 wherever possible
2023-03-21 12:35:54 +07:00
DavHau
4aa6e86907 chore(v1): move name & version to top-level 2023-03-19 14:46:59 +07:00
phaer
0007206ea1 feat: merge attrs-from-... into nixpkgs-overrides 2023-03-15 14:12:48 +01:00
DavHau
e8e2978bd4 chore(v1/drvs): update json cache files 2023-03-13 13:38:35 +07:00
DavHau
2404e5e449 fix(v1/eval-cache): several fixes 2023-03-13 13:36:52 +07:00
DavHau
fe667757c8 chore(v1/docs): add doc comments to some flake-parts modules 2023-03-13 12:46:11 +07:00
DavHau
7f2d9e53fa fix(format): reformat write-dependency-tree.py 2023-03-13 12:46:11 +07:00
DavHau
182cdf306d fix(v1/packages): update FOD hashes for all python packages 2023-03-13 12:46:11 +07:00
DavHau
969847352f fix(v1/packages): only output for x86_64-linux 2023-03-13 12:46:11 +07:00
DavHau
d152844a15 fix(fetchPythonRequirements): output sorted dict 2023-03-13 12:46:11 +07:00
DavHau
600a2cbecc chore(formatting): reformat v1 code - python files 2023-03-13 12:46:11 +07:00
DavHau
d96e7234e3 chore(formatting): format v1 code with alejandra 2023-03-13 12:46:11 +07:00
DavHau
ac63eb584f feat: integrate v1 into top-level fake 2023-03-13 12:46:11 +07:00
DavHau
93102e5fdf feat(mach-nix): init module nixpkgs-overrides 2023-03-13 12:46:11 +07:00
DavHau
6210b38ef3 chore: switch nixpkgs to nixos-22.11 and update FOD hashes 2023-03-13 12:46:11 +07:00
phaer
71c396138c feat(mach-nix): use drv-parts for dependencies. 2023-03-13 12:46:11 +07:00
phaer
52a6fc802a style(mach-nix): add makeModuleFromDerivation 2023-03-13 12:46:11 +07:00
phaer
d1ff045a1b style(mach-nix): manualSetupDeps -> mkWheelDist 2023-03-13 12:46:11 +07:00
phaer
173d76b688 feat(mach-nix): wip, split nixpkgsAttrs -> module 2023-03-13 12:46:11 +07:00
phaer
169da1c545 style(mach-nix): refactor wheel preparation 2023-03-13 12:46:11 +07:00
phaer
61c0f29e86 style(mach-nix): reorder, consolidate distDir...
..naming, inline isWheel
2023-03-13 12:46:11 +07:00
phaer
6fd4c8a93b chore(mach-nix): inline only use of getDistDir 2023-03-13 12:46:11 +07:00
DavHau
c04a8a7ea7 chore: adapt to apache-airflow to new interface 2023-03-13 12:46:11 +07:00
DavHau
30e04b5316 feat(mach-nix): cache dependency tree 2023-03-13 12:46:11 +07:00
DavHau
faec8a4156 feat: add buildPythonPackage module 2023-03-13 12:46:11 +07:00
DavHau
39cc8d24f4 update FOD hash of apache-airflow 2023-03-13 12:46:11 +07:00
DavHau
2cdc1aa0e0 feat: use dependency tree only for sdist builds 2023-03-13 12:46:11 +07:00
DavHau
8ea18aa69a fix(python): nativeBuildInputs not applied 2023-03-13 12:46:11 +07:00
phaer
123e6cfe7a wip: use new drv-parts mkDerivation interface 2023-03-13 12:46:11 +07:00
phaer
b2024ad22e move dependency analysis to fetch-python-reqs...
..to require only one IFD
2023-03-13 12:46:11 +07:00
phaer
e5a8cd6e69 chore, mach-nix-xs: use dict for dep tree 2023-03-13 12:46:11 +07:00
phaer
5427ea668e fetch-python-requirements: make more robust...
...and handle packages which might not even contain
a PKG_INFO. They could still include requirements.txt, otherwise
no dependencies are assumed.
2023-03-13 12:46:11 +07:00
phaer
724ed96702 use drv-parts.derivationFromModules for deps 2023-03-13 12:46:11 +07:00
phaer
907f9a9003 proof-of-concept: granular python builder 2023-03-13 12:46:11 +07:00