flakes: ensure that flake packages don't throw during construction
#657
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Our
toolsconstruction returnsnullfor packages that are missing (for whatever reason). While this works okay for our internal module system, external consumers of the packages output sometimes make the assumption that these are all valid derivations.At some point we added a filter that would remove the nulls, however this introduced even worse issues. To filter out the nulls, we need to evaluate each tool. But not all tools can be evaluated: some are stubs that throws (useful) errors. So now we're forced to supress removal notices and other messages to be able to evaluate the tool list.
This commit refactors tools to return placeholder derivations. These can be safely filtered out if needed.