[Chapel Merge] Allow installing pip dependencies from source

Branch: refs/heads/main
Revision: 021ad40
Author: mppf
Link: Allow installing pip dependencies from source by mppf · Pull Request #18926 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #18926 from mppf/venv-from-source

Allow installing pip dependencies from source

This PR includes changes that were in the Homebrew 1.25.1 release as
patches to support building the Python pip dependencies from source.

  • Work around problems building chpl-venv from source i.e. with pip
    arguments --no-binary :all: by first installing some chpldoc
    dependencies into the venv (since they are also build-time dependencies
    when building from source). Note that building the Python dependencies
    from source was suggested by Homebrew maintainers in
    chapel 1.25.1 by Maxrimus · Pull Request #91257 · Homebrew/homebrew-core · GitHub
    . After this PR, the way to build the pip dependencies is by running
    e.g. make CHPL_PIP_FROM_SOURCE=1 test-venv (vs
    CHPL_PIP_INSTALL_PARAMS=--no-binary :all: which was used for the
    1.25.1 Homebrew formula).
  • Additionally with the above, split chpldoc dependencies into 3 files,
    so that some can be installed before others, to work as build time
    dependencies. These 3 files include the version upgrades from #18894
    (Sphinx from 4.0.2 to 4.3.2; sphinxcontrib-chapeldomain from 0.0.20 to
    0.0.21; breathe from 4.30.0 to 4.31.0) as well as upgrading
    sphinx-rtd-theme from 0.5.2 to 1.0.0 to address problems with building
    from source.
  • Adjusts a test .good file for a trivial difference in output with the
    sphinx-rtd-theme version change.
  • Adjusts another test to avoid platform-specific errors in .good file

Future work:

  • add automated testing that make CHPL_PIP_FROM_SOURCE=1 test-venv
    functions

Reviewed by @lydia-duncan - thanks!

  • [x] check test/chpldoc passes

    Modified Files:
    A third-party/chpl-venv/chpldoc-requirements1.txt
    A third-party/chpl-venv/chpldoc-requirements2.txt
    A third-party/chpl-venv/chpldoc-requirements3.txt
    R third-party/chpl-venv/chpldoc-requirements.txt
    M test/chpldoc/compflags/author/withoutAuthor/withoutAuthor.doc.good
    M test/chpldoc/compflags/folder/PREDIFF
    M test/chpldoc/compflags/folder/failToCreateDir.no-dir.doc.good
    M test/chpldoc/compflags/folder/failToCreateDir.no-perm.doc.good
    M third-party/chpl-venv/Makefile
    M third-party/chpl-venv/Makefile.include

    Compare: Comparing 5de3f3289b89...021ad40683c1 · chapel-lang/chapel · GitHub