Skip to content

Commit c5c7c7d

Browse files
[UPDATE] Release Candidate v2.0.9a0
Changes in file .deepsource.toml: * removed setup.py from dependency sources Changes in file .github/dependabot.yml: * removed pytest-checkdocs which can't handle GFM markdown Changes in file .github/labeler.yml: * removed setup from "multicast" label * added setup to "invalid" label Changes in file .github/workflows/CI-BUILD.yml: * related work Changes in file .github/workflows/Tests.yml: * removed "EXTRAS-FOR-SETUP" from config Changes in file .gitignore: * related work Changes in file Makefile: * reworked build logic to avoid any need to call setup.py * improved many test categories to generate additional coverage reports Changes in file docs/conf.py: * version bump Changes in file docs/requirements.txt: * version bumps Changes in file docs/utils.py: * related work Changes in file multicast/__init__.py: * related work Changes in file pyproject.toml: * refactored for PEP-621 Changes in file pytest.ini: * related work Changes in file requirements.txt: * version bumps Changes in file tests/__init__.py: * related work Changes in file tests/check_codecov: * related work Changes in file tests/check_spelling: * related work Changes in file tests/requirements.txt: * version bumps Changes in file tests/test_build.py: * added new PEP-621 test * related work Changes in file tests/test_deps.py: * related work Changes in file tests/test_manifest.py: * related work Deletions from file setup.cfg: * removed for PEP-621 support Deletions from file setup.py: * removed for PEP-621 support Deletions from file tests/check_legacy_setup_coverage: * removed for PEP-621 support Deletions from file tests/test_install_requires.py: * removed for PEP-621 support
1 parent 3c51ad4 commit c5c7c7d

25 files changed

+193
-827
lines changed

.deepsource.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ dependency_file_paths = [
3333
"requirements.txt",
3434
"tests/requirements.txt",
3535
"docs/requirements.txt",
36-
"setup.py"
3736
]
3837

3938
[analyzers.meta]

.github/dependabot.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@ updates:
7878
dependency-type: "development"
7979
- dependency-name: "pytest"
8080
dependency-type: "direct"
81-
- dependency-name: "pytest-checkdocs"
82-
dependency-type: "development"
8381
- dependency-name: "pytest-cov"
8482
dependency-type: "development"
8583
- dependency-name: "pytest-enabler"

.github/labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
Multicast:
55
- changed-files:
66
- any-glob-to-any-file:
7-
- 'setup.*'
87
- multicast/*.py
98
- LICENSE
109
- LICENSE.md
@@ -114,3 +113,4 @@ invalid:
114113
- any-glob-to-any-file:
115114
- .stickler.yml
116115
- .hound.yml
116+
- setup.py

.github/workflows/CI-BUILD.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
printf "%s\n%s\n" "::endgroup::" "::group::make-clean"
168168
make -j1 -f Makefile clean || true ;
169169
printf "%s\n%s\n" "::endgroup::" "::group::make-build"
170-
make -j1 -f Makefile build ;
170+
make -j1 -f Makefile build || exit 1 ;
171171
printf "%s\n" "::endgroup::"
172172
shell: bash
173173
- name: Summerize Building
@@ -188,7 +188,7 @@ jobs:
188188
shell: bash
189189
- name: Test Info
190190
id: test-info
191-
run: python -m setup --name --version --license || true ;
191+
run: python -m multicast --version || true ;
192192
- name: Post-Clean
193193
id: post-bootstrap
194194
run: |

.github/workflows/Tests.yml

Lines changed: 15 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ run-name: Extended Testing
66
#
77
# Jobs included:
88
# - COVERAGE: Generates coverage reports on multiple OS and Python versions
9+
# - DOCTESTS: Generates coverage reports on multiple OS and Python versions via doctests
910
# - STYLE: Checks code style and linting compliance
1011
# - INTEGRATION: Performs integration tests on different platforms
11-
# - EXTRAS-FOR-SETUP: Tests legacy setup scripts
1212
# - EXTRAS-FOR-PIP: Validates package dependencies and pip installations
1313
# - DOCS: Builds and lints documentation
1414
# - TOX: Executes tests across Python environments using Tox
@@ -1313,92 +1313,6 @@ jobs:
13131313
token: ${{ github.token }}
13141314
body-path: '${{ steps.download-integration-summary.outputs.download-path }}/Integration-Summary-Artifact.txt'
13151315

1316-
EXTRAS-FOR-SETUP:
1317-
permissions:
1318-
actions: read
1319-
contents: read
1320-
statuses: write
1321-
packages: none
1322-
pull-requests: read
1323-
security-events: none
1324-
environment: ${{ needs.check_mats.outputs.mats_environment }}
1325-
if: ${{ !cancelled() && success() }}
1326-
needs: [check_mats, COVERAGE, STYLE]
1327-
runs-on: ${{ matrix.os }}
1328-
defaults:
1329-
run:
1330-
shell: bash
1331-
timeout-minutes: 10
1332-
strategy:
1333-
matrix:
1334-
os: [ubuntu-latest, macos-latest]
1335-
python-version: ["${{ vars.PYTHON_OLD_MIN }}", "${{ vars.PYTHON_OLD_EXTRA }}", "${{ vars.PYTHON_DEFAULT }}", "${{ vars.PYTHON_EXPERIMENTAL }}"]
1336-
env:
1337-
OS: ${{ matrix.os }}
1338-
PYTHON_VERSION: ${{ matrix.python-version }}
1339-
LANG: "en_US.utf-8"
1340-
LC_CTYPE: "en_US.utf-8"
1341-
COVERAGE_RCFILE: ./.coveragerc
1342-
COV_CORE_SOURCE: ./
1343-
COV_CORE_CONFIG: ./.coveragerc
1344-
COV_CORE_DATAFILE: .coverage
1345-
CI_BRANCH: ${{ needs.check_mats.outputs.mats_ref_name }}
1346-
CI_COMMIT_SHA: ${{ needs.check_mats.outputs.mats_sha }}
1347-
BRANCH_NAME: ${{ needs.check_mats.outputs.mats_ref_name }}
1348-
VCS_BRANCH_NAME: ${{ needs.check_mats.outputs.build_ref_name }}
1349-
VCS_COMMIT_ID: ${{ needs.check_mats.outputs.build_sha }}
1350-
CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_REPO_TOKEN }}
1351-
steps:
1352-
- name: pre-checkout repository for actions
1353-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1354-
with:
1355-
persist-credentials: false
1356-
ref: ${{ needs.check_mats.outputs.build_sha }}
1357-
sparse-checkout: '.github/actions/checkout-and-rebuild'
1358-
- name: Checkout repository for Tests with ${{ matrix.python-version }}
1359-
id: fetch-build
1360-
uses: ./.github/actions/checkout-and-rebuild
1361-
with:
1362-
sha: ${{ needs.check_mats.outputs.build_sha }}
1363-
build-run-id: ${{ needs.check_mats.outputs.build_id }}
1364-
python-version: ${{ matrix.python-version }}
1365-
path: ${{ github.workspace }}
1366-
- name: Pre-install for Python ${{ matrix.python-version }} on ${{ matrix.os }}
1367-
run: make -j1 -f Makefile user-install || true ;
1368-
if: ${{ success() }}
1369-
- name: Generate Extra Legacy Setup Coverage for py${{ matrix.python-version }} on ${{ matrix.os }}
1370-
run: |
1371-
hash -p ./.github/tool_shlock_helper.sh shlock ;
1372-
./tests/check_legacy_setup_coverage || echo "::warning file=tests/check_legacy_setup_coverage,line=1,endLine=1,title=SKIPPED::SKIP Legacy Setup.py Tests." ;
1373-
if: ${{ !cancelled() }}
1374-
- name: Upload Python ${{ matrix.python-version }} Legacy Setup.py coverage to Codecov
1375-
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
1376-
with:
1377-
token: ${{ secrets.CODECOV_TOKEN }}
1378-
files: ./test-reports/coverage_setup.xml
1379-
directory: .
1380-
job_code: ${{ needs.check_mats.outputs.build_id }}-${{ github.run_number }}
1381-
override_commit: ${{ needs.check_mats.outputs.build_sha }}
1382-
flags: multicast,${{ matrix.os }},${{ matrix.python-version }}
1383-
name: multicast-github-${{ matrix.os }}-${{ matrix.python-version }}
1384-
verbose: true
1385-
fail_ci_if_error: false
1386-
- name: Upload Extra Python ${{ matrix.python-version }} Artifact
1387-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
1388-
with:
1389-
name: Legacy_Setup-Test-Report-${{ matrix.os }}-${{ matrix.python-version }}
1390-
path: ./test-reports/
1391-
if-no-files-found: ignore
1392-
- name: Post-purge
1393-
id: post-uninstall
1394-
run: make -j1 -f Makefile purge || true ;
1395-
if: ${{ !cancelled() }}
1396-
- name: Post-Clean
1397-
id: post-end
1398-
run: make -j1 -f Makefile clean || true ;
1399-
if: ${{ !cancelled() }}
1400-
1401-
14021316
EXTRAS-FOR-PIP:
14031317
permissions:
14041318
actions: read
@@ -1439,12 +1353,13 @@ jobs:
14391353
build-run-id: ${{ needs.check_mats.outputs.build_id }}
14401354
python-version: ${{ matrix.python-version }}
14411355
path: ${{ github.workspace }}
1442-
- name: Install dependencies for python ${{ matrix.python-version }}
1443-
run: |
1444-
pip install --upgrade "pip>=24.3.1" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1" "pip-licenses>=5.0.0";
1445-
pip install -r ./requirements.txt ;
1446-
pip install -r ./tests/requirements.txt || true ;
1447-
pip install --upgrade -r ./docs/requirements.txt || true ;
1356+
- name: Install dependencies for python ${{ matrix.python-version }} on ${{ matrix.os }}
1357+
id: install-pip-deps
1358+
if: ${{ success() }}
1359+
uses: ./.github/actions/setup-py-reqs
1360+
with:
1361+
sha: ${{ needs.check_mats.outputs.build_sha }}
1362+
python-version: ${{ matrix.python-version }}
14481363
- name: Pre-Clean
14491364
id: clean-prep
14501365
run: make -j1 -f Makefile clean ;
@@ -1505,12 +1420,13 @@ jobs:
15051420
id: prep-tox
15061421
run: |
15071422
if [ "$OS" == "ubuntu-latest" ] ; then { sudo apt-get update || true ;} ; wait ; { sudo apt-get install --assume-yes python3.10 python3.11 python3.11-venv || echo "::warning file=.github/workflows/Tests.yml,line=482,endLine=482,title=SKIPPED::SKIP Enhanced TOX Tests." ;} ; wait ; fi
1508-
- name: Install dependencies for Tox
1509-
run: |
1510-
pip install --upgrade "pip>=24.3.1" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1";
1511-
pip install --upgrade -r ./requirements.txt ;
1512-
pip install --upgrade -r ./tests/requirements.txt || true ;
1513-
pip install --upgrade -r ./docs/requirements.txt || true ;
1423+
- name: Install dependencies for tox
1424+
id: install-tox-deps
1425+
if: ${{ success() }}
1426+
uses: ./.github/actions/setup-py-reqs
1427+
with:
1428+
sha: ${{ needs.check_mats.outputs.build_sha }}
1429+
python-version: "${{ vars.PYTHON_DEFAULT }}"
15141430
- name: Pre-Clean
15151431
id: clean
15161432
run: make -j1 -f Makefile clean || true ;

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,4 @@ docs/www/
117117
docs/make.bat
118118
multicast/multicast/**
119119
tests/tests/**
120+
legacy_setup/

Makefile

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,19 @@ MANIFEST.in: init
180180
$(QUIET)$(ECHO) "exclude .*.yaml" >>"$@" ;
181181
$(QUIET)$(ECHO) "exclude .*.conf" >>"$@" ;
182182
$(QUIET)$(ECHO) "exclude package.json" >>"$@" ;
183+
$(QUIET)$(ECHO) "exclude tests/*.py" >>"$@" ;
183184
$(QUIET)$(ECHO) "global-exclude .git" >>"$@" ;
184185
$(QUIET)$(ECHO) "global-exclude codecov_env" >>"$@" ;
185186
$(QUIET)$(ECHO) "global-exclude .DS_Store" >>"$@" ;
186187
$(QUIET)$(ECHO) "global-exclude .local_pip_cleanup.txt" >>"$@" ;
187-
$(QUIET)$(ECHO) "prune .gitattributes" >>"$@" ;
188+
$(QUIET)$(ECHO) "global-exclude .gitattributes" >>"$@" ;
188189
$(QUIET)$(ECHO) "prune test-reports" >>"$@" ;
189190
$(QUIET)$(ECHO) "prune .github" >>"$@" ;
190191
$(QUIET)$(ECHO) "prune .circleci" >>"$@" ;
191192
$(QUIET)$(ECHO) "prune venv" >>"$@" ;
193+
$(QUIET)$(ECHO) "prune docs" >>"$@" ;
192194

193-
build: init ./setup.py MANIFEST.in
195+
build: init ./pyproject.toml MANIFEST.in
194196
$(QUIET)$(PYTHON) -W ignore -m build --installer=pip ./ || $(QUIET)$(PYTHON) -W ignore -m build --sdist --wheel --no-isolation ./ || $(QUIET)$(PYTHON) -W ignore -m build ./ ;
195197
$(QUIET)$(WAIT)
196198
$(QUIET)$(ECHO) "build DONE."
@@ -203,7 +205,7 @@ branding::
203205
$(QUIET)$(ECHO) ""
204206

205207
init: branding
206-
$(QUIET)$(PYTHON) -m pip install $(PIP_COMMON_FLAGS) $(PIP_ENV_FLAGS) "pip>=24.3.1" "setuptools>=75.0" "wheel>=0.44" "build>=1.1.1" 2>$(ERROR_LOG_PATH) || :
208+
$(QUIET)$(PYTHON) -m pip install $(PIP_COMMON_FLAGS) $(PIP_ENV_FLAGS) "pip>=24.3.1" "setuptools>=80.4" "wheel>=0.45" "build>=1.2.1" 2>$(ERROR_LOG_PATH) || :
207209
$(QUIET)$(PYTHON) -m pip install $(PIP_COMMON_FLAGS) $(PIP_ENV_FLAGS) -r requirements.txt 2>$(ERROR_LOG_PATH) || :
208210
$(QUIET)$(ECHO) "$@: Done."
209211

@@ -218,8 +220,6 @@ uninstall:
218220
$(QUIET)$(ECHO) "$@: Done."
219221

220222
legacy-purge: clean uninstall
221-
$(QUIET)$(PYTHON) -W ignore ./setup.py uninstall 2>$(ERROR_LOG_PATH) || :
222-
$(QUIET)$(PYTHON) -W ignore ./setup.py clean 2>$(ERROR_LOG_PATH) || :
223223
$(QUIET)$(RMDIR) ./build/ 2>$(ERROR_LOG_PATH) || :
224224
$(QUIET)$(RMDIR) ./dist/ 2>$(ERROR_LOG_PATH) || :
225225
$(QUIET)$(RMDIR) ./.eggs/ 2>$(ERROR_LOG_PATH) || :
@@ -292,7 +292,7 @@ test-mat-doctests: test-reports MANIFEST.in ## Run doctests MAT category (doctes
292292
$(ECHO) "Try 'make test-mat-doctests' instead."; \
293293
else \
294294
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group mat --category doctests || DO_FAIL="exit 2" ; \
295-
$(QUIET)$(WAIT) ; \
295+
$(WAIT) ; \
296296
$(COVERAGE) combine --keep --data-file=coverage_doctests ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
297297
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_doctests 2>$(ERROR_LOG_PATH) || : ; \
298298
$(COVERAGE) xml -o test-reports/coverage_doctests.xml --include=multicast/* --data-file=coverage_doctests 2>$(ERROR_LOG_PATH) || : ; \
@@ -304,7 +304,11 @@ test-mat-%: MANIFEST.in ## Run specific MAT category (basic|doctests|say|hear|us
304304
$(QUIET)if [ -n "$$TESTS_USE_PYTEST" ]; then \
305305
$(PYTEST) $(COVERAGE_ARGS) -m "mat and $*" tests/ || DO_FAIL="exit 2" ; \
306306
else \
307-
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group mat --category $*; \
307+
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group mat --category $* || DO_FAIL="exit 2" ; \
308+
$(WAIT) ; \
309+
$(COVERAGE) combine --keep --data-file=coverage_$* ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
310+
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_$* 2>$(ERROR_LOG_PATH) || : ; \
311+
$(COVERAGE) xml -o test-reports/coverage_$*.xml --include=multicast/* --data-file=coverage_$* 2>$(ERROR_LOG_PATH) || : ; \
308312
fi
309313
$(QUIET)$(WAIT) ;
310314
$(QUIET)$(DO_FAIL) ;
@@ -313,7 +317,11 @@ test-extra: ## Run all extra tests
313317
$(QUIET)if [ -n "$$TESTS_USE_PYTEST" ]; then \
314318
$(PYTEST) $(COVERAGE_ARGS) -m "extra" tests/ || DO_FAIL="exit 2" ; \
315319
else \
316-
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group extra; \
320+
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group extra ; \
321+
$(WAIT) ; \
322+
$(COVERAGE) combine --keep --data-file=coverage_extra ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
323+
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_extra 2>$(ERROR_LOG_PATH) || : ; \
324+
$(COVERAGE) xml -o test-reports/coverage_extra.xml --include=multicast/* --data-file=coverage_extra 2>$(ERROR_LOG_PATH) || : ; \
317325
fi
318326
$(QUIET)$(WAIT) ;
319327
$(QUIET)$(DO_FAIL) ;
@@ -322,7 +330,11 @@ test-extra-%: ## Run specific extra test category
322330
$(QUIET)if [ -n "$$TESTS_USE_PYTEST" ]; then \
323331
$(PYTEST) tests/ --verbose $(COVERAGE_ARGS) -m "extra and $*" || DO_FAIL="exit 2" ; \
324332
else \
325-
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group extra --category $*; \
333+
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group extra --category $* || DO_FAIL="exit 2" ; \
334+
$(WAIT) ; \
335+
$(COVERAGE) combine --keep --data-file=coverage_$* ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
336+
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_$* 2>$(ERROR_LOG_PATH) || : ; \
337+
$(COVERAGE) xml -o test-reports/coverage_$*.xml --include=multicast/* --data-file=coverage_$* 2>$(ERROR_LOG_PATH) || : ; \
326338
fi
327339
$(QUIET)$(WAIT) ;
328340
$(QUIET)$(DO_FAIL) ;
@@ -331,7 +343,11 @@ test-fuzzing: ## Run all fuzzing tests
331343
$(QUIET)if [ -n "$$TESTS_USE_PYTEST" ]; then \
332344
$(PYTEST) tests/ --verbose $(COVERAGE_ARGS) -m "fuzzing" || DO_FAIL="exit 2" ; \
333345
else \
334-
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group fuzzing; \
346+
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group fuzzing || DO_FAIL="exit 2" ; \
347+
$(WAIT) ; \
348+
$(COVERAGE) combine --keep --data-file=coverage_fuzzing ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
349+
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_fuzzing 2>$(ERROR_LOG_PATH) || : ; \
350+
$(COVERAGE) xml -o test-reports/coverage_fuzzing.xml --include=multicast/* --data-file=coverage_fuzzing 2>$(ERROR_LOG_PATH) || : ; \
335351
fi
336352
$(QUIET)$(WAIT) ;
337353
$(QUIET)$(DO_FAIL) ;
@@ -340,7 +356,11 @@ test-perf: ## Run all performance tests
340356
$(QUIET)if [ -n "$$TESTS_USE_PYTEST" ]; then \
341357
$(PYTEST) tests/ --verbose $(COVERAGE_ARGS) -m "performance"; \
342358
else \
343-
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group performance; \
359+
$(COVERAGE) run -p --source=multicast -m tests.run_selective --group performance || DO_FAIL="exit 2" ; \
360+
$(WAIT) ; \
361+
$(COVERAGE) combine --keep --data-file=coverage_performance ./.coverage.* 2>$(ERROR_LOG_PATH) || : ; \
362+
$(COVERAGE) report -m --include=multicast/* --data-file=coverage_performance 2>$(ERROR_LOG_PATH) || : ; \
363+
$(COVERAGE) xml -o test-reports/coverage_performance.xml --include=multicast/* --data-file=coverage_performance 2>$(ERROR_LOG_PATH) || : ; \
344364
fi
345365
$(QUIET)$(WAIT) ;
346366
$(QUIET)$(DO_FAIL) ;
@@ -412,7 +432,13 @@ cleanup-multicast: cleanup-py-cache-dirs cleanup-py-caches
412432
$(QUIET)$(RM) multicast/__pycache__/* 2>$(ERROR_LOG_PATH) || true
413433
$(QUIET)$(RM) multicast/*/*.pyc 2>$(ERROR_LOG_PATH) || true
414434

415-
cleanup-multicast-eggs: cleanup-dev-backups cleanup-mac-dir-store
435+
cleanup-nested-multicast-eggs: cleanup-dev-backups cleanup-mac-dir-store
436+
$(QUIET)$(RM) multicast/multicast.egg-info/* 2>$(ERROR_LOG_PATH) || true
437+
$(QUIET)$(RMDIR) multicast/multicast.egg-info 2>$(ERROR_LOG_PATH) || true
438+
$(QUIET)$(RMDIR) multicast/.eggs 2>$(ERROR_LOG_PATH) || true
439+
$(QUIET)$(RMDIR) multicast/.eggs/ 2>$(ERROR_LOG_PATH) || true
440+
441+
cleanup-multicast-eggs: cleanup-nested-multicast-eggs cleanup-dev-backups cleanup-mac-dir-store
416442
$(QUIET)$(RM) multicast.egg-info/* 2>$(ERROR_LOG_PATH) || true
417443
$(QUIET)$(RMDIR) multicast.egg-info 2>$(ERROR_LOG_PATH) || true
418444
$(QUIET)$(RMDIR) .eggs 2>$(ERROR_LOG_PATH) || true

docs/conf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
# The short X.Y version.
126126
version = "v2.0"
127127
# The full version, including alpha/beta/rc tags.
128-
release = "v2.0.9"
128+
release = "v2.0.9a3"
129129

130130
# The language for content autogenerated by Sphinx. Refer to documentation
131131
# for a list of supported languages.
@@ -437,6 +437,7 @@
437437
intersphinx_mapping = sanitize_intersphinx_mapping(
438438
{
439439
"python": ("https://docs.python.org/3", (None, "python-inv.txt")),
440+
"PEP": ("https://peps.python.org", (None, "pep-inv.txt")),
440441
},
441442
)
442443

docs/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# limitations under the License.
1616
#python
1717
# time - builtin - PSF license
18-
# typing_extensions - builtin - PSF license
18+
# typing_extensions - builtin? - MIT License
1919
# re - builtin - PSF license
2020
# subprocess - builtin - PSF license
2121
# urllib3 - MIT license
@@ -24,15 +24,15 @@
2424
# struct - builtin - PSF license
2525
# argparse - builtin - PSF license
2626
# setuptools - MIT license
27-
setuptools>=75.0
27+
setuptools>=80.4
2828
# virtualenv - MIT license
2929
#virtualenv>=15.0.1
3030
# pgpy - BSD 3-Clause licensed
3131
#pgpy>=0.4.1
3232
# tox - MIT license
3333
#tox>=3.0.0, !=3.16.1
3434
# wheel - MIT license
35-
wheel>=0.44
35+
wheel>=0.45
3636
# pip - MIT license
3737
pip>=24.3.1
3838
# build - MIT license

docs/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
# URL allowed domain list
3737
# Enforces:
3838
# - URLs Must belong to one of these domains
39-
URL_ALLOWED_NETLOCS = frozenset({"github.com", "readthedocs.com", "docs.python.org"})
39+
URL_ALLOWED_NETLOCS = frozenset({
40+
"github.com", "readthedocs.com", "docs.python.org", "peps.python.org",
41+
})
4042

4143

4244
# Maximum allowed URL length

multicast/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@
221221

222222
global __version__ # skipcq: PYL-W0604
223223

224-
__version__ = "2.0.9"
224+
__version__ = "2.0.9-alpha-3"
225225
"""The version of this program.
226226
227227
The `__version__` attribute, like many dunder attributes, is associated with the implementation

0 commit comments

Comments
 (0)