* Rename BuildDirectory to TempDirectory
Because that's what it is.
* Use TempDirectory in more places (take 2)
* Fix indentation...
* 🎨
* Dumb mistake.
* Defer creation of temporary directory
* Misc
* Oops!
* Use better name
* Fix mistakes made in rebasing
* Remove unnecessary wrapping
* 📰
* Misc change to trigger a new CI build
* Make TempDirectory more robust
Update test accordingly
* 🎨 Remove unused import
* 🔧 Fix mistake made during merge
* Move kind to prefix
* Move delete initalization to __init__
* Remove unrelated message
* Improve existing test
* Oops.
* Add a test to verify that readonly files are also deleted
* 🎨
* Increase places where TempDirectory is used
* Remove unused import
* Improve tests, fix bug
* 🎨
* Update test for new behaviour
* Missed no_clean argument
* Make temp_dir private
* Delete the temporary directory based on no_clean
* Give TemporaryDirectory use a unique name
* 🎨
* 📝 Add basic documentation
As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:
> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.
Test Plan: Manually visited all the links I’ve modified.
Those commands already checked hashes, since they use RequirementSet, where the hash-checking is done.
Reorder some options so pre, no-clean, and require-hashes are always in the same order.
`pip download` has the same functionality as `pip install --download`,
and the behavior of `pip install --download` is preserved with a deprecation
warning. `pip install --download` will be removed in pip version 10.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
Using --install-options, --build-options, --global-options changes
the way that setup.py behaves, and isn't honoured by the wheel code.
The new wheel autobuilding code made this very obvious - disable
the use of wheels when these options are supplied.
With wheel autobuilding in place a release blocker is some granular
way to opt-out of wheels for known-bad packages. This patch introduces
two new options: --no-binary and --only-binary to control what
archives we are willing to use on both a global and per-package basis.
This also closes#2084
Wheel cache lookups become more complex when we wish to allow binary
blacklisting. Rather than passing more parameters around, replace
cache_root with wheel_cache, and create a wheel cache in all the
relevant command entry points.
We we normalising it right before making it, after passing it
RequirementSet, which means RequirementSet also had to normalise it.
And then we passed it to WheelBuilder which as a result had to
normalise it too.
Instead, pass it as-is to RequirementSet, have that normalise it, and
then pull it back out in WheelBuilder.
- Move code into separate method - check_required_packages
- Use new import_or_raise function - mostly so we don't have to have
hacks for flake8 and comments to explain said hacks
* Deprecates accessing non secure origins by default, the list of
which is taken from Chrome.
* Adds a --trusted-host flag to enable users to mark a specific
host as a secure origin regardless of what we think.
* Refactors the original warning to better indicate the intent
and the new flag.
* Deprecates the --download-cache option & removes the download
cache code.
* Removes the in memory page cache on the index
* Uses CacheControl to cache all cacheable HTTP requests to the
filesystem.
* Properly handles CacheControl headers for unconditional
caching.
* Will use ETag and Last-Modified headers to attempt to do a
conditional HTTP request to speed up cache misses and turn
them into cache hits.
* Removes some concurrency unsafe code in the download cache
accesses.
* Uses a Cache-Control request header to limit the maximum
length of time a cache is valid for.
* Adds pip.appdirs to handle platform specific application
directories such as cache, config, data, etc.