about summary refs log tree commit diff
path: root/external/main.go
AgeCommit message (Collapse)AuthorFilesLines
2019-12-13 feat(external): Include *.s (ASM) files in external buildsVincent Ambo1-0/+8
2019-12-13 fix(external): Fix "inverted" local dependenciesVincent Ambo1-1/+3
Usually in large packages the root depends on one or more sub-packages (or there is no root), but some projects (e.g. golang.org/x/oauth2) do it the other way around. This fix adds compatibility for both ways.
2019-12-13 fix(external): Skip folders with "no buildable Go files"Vincent Ambo1-2/+13
This error is returned by the build analysis logic if the target package does not have any relevant Go files, which might be the case if `+build` flags and such are used.
2019-12-13 feat(external): Switch between packages & programs automaticallyVincent Ambo1-0/+2
2019-12-13 feat(external): Add fully qualified import path to analyser outputVincent Ambo1-6/+8
This is used by Nix to build the derivation names for individual packages.
2019-12-13 fix(external): Correctly set names for root packagesVincent Ambo1-5/+13
Fixes the prefix trimming logic for package names and source files if the source files appear in the package root (which is, unsurprisingly, very common).
2019-12-13 fix(external): Ensure findGoDirs "finds" top-level directoryVincent Ambo1-20/+10
Due to the lexical walk order of `filepath.Walk` the previous directory identification logic failed under certain conditions if the top-level directory contained Go files that showed up *after* the first subdirectories. To simplify the logic a set of directories is now gathered instead on a file-level.
2019-12-13 feat(external): Return references in more useable format for NixVincent Ambo1-16/+20
Sub-packages of external dependencies are traversed by Nix as a tree of attribute sets which need to be accessed by "path". To make this easier, the dependency analyser now returns "paths" as string lists.
2019-12-13 feat(external): Implement tool to analyse external dependenciesVincent Ambo1-0/+159
Adds a tool that can analyse dependencies that were not originally meant to be built with buildGo.nix and return information that can be used to construct appropriate Nix dependencies. The tool will return information about package-local and foreign dependencies separately to let Nix determine whether all required dependencies are provided and to correctly link together sub-packages. To avoid listing standard library imports in the dependencies, a list of all packages in the standard library is generated statically to allow for those to be filtered out during the analysis. This tool is still work-in-progress.