For sdists, replace symlink with copy for docs requirements #157811
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.
Before this change, there was the requirements file
.ci/docker/requirements-docs.txt
which was symlinked as../.ci/docker/requirements-docs.txt
fromdocs/requirements.txt
since #151796.In this situation, because
.ci
is excluded from the source tarball, we end up with a broken symlink, that additionally is invalid in a Python source distribution.The broken symlink can be confirmed in the rc sources.
After this change, there is still a single source of truth, which now isdocs/requirements.txt
, symlinked as../docs/requirements.txt
from.ci/docker/requirements-docs.txt
, which would also be invalid in a Python source distribution, but is not included in the tarball (see above). Additionally, the docs requirements that were missing from the previous tarball, are now actually included, allowing users to build the documentation again.@malfet clarified offline that there is a problem with the docs workflows because they use a cache with a key that includes the hash of the requirements document in the
.ci
folder, which now does no longer change when the requirements change. Hence, a different solution is needed~, though for now the problem remains~.The solution in this PR is simply to copy the actual document to replace the symlink just prior to creating the source distribution. This way, a single document needs to be maintained, git checkouts remain as they are, and the source distributions contain the before-missing document.
A better solution may be implemented at a later stage with a better build system.
Stack from ghstack (oldest at bottom):