-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: setup.py redesign and helpers (#2433)
* feat: setup.py redesign and helpers * refactor: simpler design with two outputs * refactor: helper file update and Windows support * fix: review points from @YannickJadoul * refactor: fixes to naming and more docs * feat: more customization points * feat: add entry point pybind11-config * refactor: Try Extension-focused method * refactor: rename alt/inplace to global * fix: allow usage with git modules, better docs * feat: global as an extra (@YannickJadoul's suggestion) * feat: single version location * fix: remove the requirement that setuptools must be imported first * fix: some review points from @wjacob * fix: use .in, add procedure to docs * refactor: avoid monkeypatch copy * docs: minor typos corrected * fix: minor points from @YannickJadoul * fix: typo on Windows C++ mode * fix: MSVC 15 update 3+ have c++14 flag See <https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=vs-2019> * docs: discuss making SDists by hand * ci: use pep517.build instead of manual setup.py * refactor: more comments from @YannickJadoul * docs: updates from @ktbarrett * fix: change to newly recommended tool instead of pep517.build This was intended as a proof of concept; build seems to be the correct replacement. See pypa/pyproject-hooks#83 * docs: updates from @wjakob * refactor: dual version locations * docs: typo spotted by @wjakob
- Loading branch information
Showing
31 changed files
with
1,391 additions
and
169 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,6 +10,8 @@ on: | |
- v* | ||
|
||
jobs: | ||
# This tests various versions of CMake in various combinations, to make sure | ||
# the configure step passes. | ||
cmake: | ||
strategy: | ||
fail-fast: false | ||
|
@@ -50,11 +52,14 @@ jobs: | |
- name: Prepare env | ||
run: python -m pip install -r tests/requirements.txt | ||
|
||
# An action for adding a specific version of CMake: | ||
# https://github.com/jwlawson/actions-setup-cmake | ||
- name: Setup CMake ${{ matrix.cmake }} | ||
uses: jwlawson/[email protected] | ||
with: | ||
cmake-version: ${{ matrix.cmake }} | ||
|
||
# These steps use a directory with a space in it intentionally | ||
- name: Make build directories | ||
run: mkdir "build dir" | ||
|
||
|
@@ -67,6 +72,7 @@ jobs: | |
-DDOWNLOAD_CATCH=ON | ||
-DPYTHON_EXECUTABLE=$(python -c "import sys; print(sys.executable)") | ||
# Only build and test if this was manually triggered in the GitHub UI | ||
- name: Build | ||
working-directory: build dir | ||
if: github.event_name == 'workflow_dispatch' | ||
|
@@ -76,3 +82,57 @@ jobs: | |
working-directory: build dir | ||
if: github.event_name == 'workflow_dispatch' | ||
run: cmake --build . --config Release --target check | ||
|
||
# This builds the sdists and wheels and makes sure the files are exactly as | ||
# expected. Using Windows and Python 2.7, since that is often the most | ||
# challenging matrix element. | ||
test-packaging: | ||
name: 🐍 2.7 • 📦 tests • windows-latest | ||
runs-on: windows-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Setup 🐍 2.7 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 2.7 | ||
|
||
- name: Prepare env | ||
run: python -m pip install -r tests/requirements.txt --prefer-binary | ||
|
||
- name: Python Packaging tests | ||
run: pytest tests/extra_python_package/ | ||
|
||
|
||
# This runs the packaging tests and also builds and saves the packages as | ||
# artifacts. | ||
packaging: | ||
name: 🐍 3.8 • 📦 & 📦 tests • ubuntu-latest | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Setup 🐍 3.8 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.8 | ||
|
||
- name: Prepare env | ||
run: python -m pip install -r tests/requirements.txt build twine --prefer-binary | ||
|
||
- name: Python Packaging tests | ||
run: pytest tests/extra_python_package/ | ||
|
||
- name: Build SDist and wheels | ||
run: | | ||
python -m build -s -w . | ||
PYBIND11_GLOBAL_SDIST=1 python -m build -s -w . | ||
- name: Check metadata | ||
run: twine check dist/* | ||
|
||
- uses: actions/upload-artifact@v2 | ||
with: | ||
path: dist/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
# This is a format job. Pre-commit has a first-party GitHub action, so we use | ||
# that: https://github.com/pre-commit/action | ||
|
||
name: Format | ||
|
||
on: | ||
|
@@ -17,6 +20,9 @@ jobs: | |
- uses: actions/checkout@v2 | ||
- uses: actions/setup-python@v2 | ||
- uses: pre-commit/[email protected] | ||
with: | ||
# Slow hooks are marked with manual - slow is okay here, run them too | ||
extra_args: --hook-stage manual | ||
|
||
clang-tidy: | ||
name: Clang-Tidy | ||
|
Oops, something went wrong.
fd61f50
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉