07e3694...
by
Charlie Marsh <email address hidden>
Separate local archive vs. local source tree paths in source database (#2922)
## Summary
When you specify a source distribution via a path, it can either be a
path to an archive (like a `.tar.gz` file), or a source tree (a
directory). Right now, we handle both paths through the same methods in
the source database. This PR splits them up into separate handlers.
This will make hash generation a little easier, since we need to
generate hashes for archives, but _can't_ generate hashes for source
trees.
It also means that we can now store the unzipped source distribution in
the cache (in the case of archives), and avoid unzipping the source
distribution needlessly on every invocation; and, overall, let's un
enforce clearer expectations between the two routes (e.g., what errors
are possible vs. not), at the cost of duplicating some code.
Closes #2760 (incidentally -- not exactly the motivation for the change,
but it did accomplish it).
06e96a8...
by
Charlie Marsh <email address hidden>
DRY up source distribution fetching between wheel and metadata routes (#2921)
These will get more involved with hash-checking, so easiest to extract
them now.
No functional changes.
4f14e2a...
by
Charlie Marsh <email address hidden>
Rebrand `Manifest` as `Revision` in wheel database (#2920)
## Summary
I think this is a much clearer name for this concept: the set of
"versions" of a given wheel or source distribution. We also use
"Manifest" elsewhere to refer to the set of requirements, constraints,
etc., so this was overloaded.
1ab471d...
by
Charlie Marsh <email address hidden>
Reduce visibility of some methods in source database (#2919)
cc3c570...
by
Charlie Marsh <email address hidden>
Use scheme parsing to determine absolute vs. relative URLs (#2904)
## Summary
We have a heuristic in `File` that attempts to detect whether a URL is
absolute or relative. However, `contains("://")` is prone to false
positive. In the linked issues, the URLs look like: