about summary refs log tree commit diff
path: root/read-tree.nix (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-12-20 r/240 fix: Various minor fixes for new repository layoutVincent Ambo1-1/+1
2019-12-19 r/203 feat(readTree): Add support for skipping directory subtreesVincent Ambo1-2/+9
Placing a special `.skip-subtree` file in any directory will now prevent readTree from further traversing that part of the tree. This makes it possible to have packages with internal Nix files that are incompatible with the larger depot structure, for example for projects like buildGo.nix which need to be compatible with the external nixpkgs model.
2019-12-10 r/121 fix(read-tree): Only add marker to imported attribute setsVincent Ambo1-4/+9
Sometimes things that get imported are (intentionally) not attribute sets, e.g. for build functions. Those should not be merged with the marker because, well, that's not possible.
2019-12-09 r/119 refactor(read-tree): Simplify tree recursion logicVincent Ambo1-65/+30
Rewrites the previous initial tick-tocking recursion into a more straightforward style. Every attribute set that is imported by readTree now also contains an attribute called `__readTree` set to `true` which acts as a marker for other types of tree traversals. Unfortunately directories without any children or importable content still result in empty attribute sets, but overall this might be the better tradeoff vs. having to follow the recursion all the way at each subtree level to determine which children exist.
2019-12-09 r/118 feat(read-tree): Mark derivations that have childrenVincent Ambo1-4/+3
Adds a `__treeChildren` attribute that is set to `true` on derivations that have children, e.g. for cases where a folder contains a `default.nix` but has subdirectories with additional things in them.
2019-12-09 r/113 fix(read-tree): Always import with `locatedAt` attributeVincent Ambo1-1/+1
2019-12-09 r/111 refactor: Move CI setup to separate Nix fileVincent Ambo1-1/+3
Instead of polluting the repository namespace with the list of CI projects, move that to a separate file. Currently the list of projects to be built by CI is still hardcoded, but this will be fixed soon.
2019-12-09 r/105 fix(read-tree): Don't import `default.nix` sibling expressionVincent Ambo1-3/+5
If a folder contains a `default.nix`, Nix expressions contained in adjacent files should not be imported (they might be things like a `shell.nix` or a `deps.nix` which do not evaluate to derivations). The tree traversal still continues for all children folders of a folder with a `default.nix`.
2019-12-09 r/100 refactor: Introduce new layout with nixpkgs in third_partyVincent Ambo1-1/+4
This is not the final layout yet, but makes it so that my top-level attribute set is no longer overlaid into nixpkgs itself. This is useful for other people who are importing my monorepo.
2019-12-09 r/98 refactor(read-tree): Remove deprecated 'builtins.toPath' callVincent Ambo1-2/+1
2019-12-02 r/97 refactor(read-tree): Keep traversing even if a default.nix is foundVincent Ambo1-4/+5
This makes it possible for people to drop a default.nix into folders along the way that add additional things into the attribute set at that level. These default.nix files are imported and merged with the rest of the traversal from that point on. In theory nothing stops a user from putting a derivation into one of them, but the effects of merging that derivation's underlying attribute set with random other things from the traversal are undefined. This feature is being introduced for a slight revamp of the thirdParty layout.
2019-11-25 feat(read-tree): Pass in-tree location to imported package setsVincent Ambo1-3/+23
Passes the location from the root at which packages are imported on to all packages. The path is passed in as a parameter called 'locatedAt' which contains a list of strings with each individual path component. For example, the blog source in `services/tazblog` will have a list with `[ "services" "tazblog" ]` passed in as the `locatedAt` attribute. This can be used for enabling features such as path-specific imports when using things like buildGo.
2019-11-25 refactor(read-tree): Idiomatic 'attrsToList' instead of weird hackVincent Ambo1-11/+4
2019-11-15 chore(nix): Move files around to conform to new read-tree layoutVincent Ambo1-3/+1
Broadly speaking, the following things are included: * there is now a uniform `args` struct that is passed to all derivations, package headers have been changed appropriately * overrides are now loaded from a separate `override` folder just using read-tree.nix * third-party packages have moved into the `third_party` attribute set
2019-11-15 feat(build): Add initial read-tree.nix implementationVincent Ambo1-0/+67
This file can read a directory tree into a package set structure, paving the way for getting rid of top-level mapping in default.nix.