Skip to content

Phase 1.2: Build Tooling Modernization#1788

Merged
oberstet merged 11 commits intocrossbario:masterfrom
oberstet:modernization-phase-1.2
Dec 2, 2025
Merged

Phase 1.2: Build Tooling Modernization#1788
oberstet merged 11 commits intocrossbario:masterfrom
oberstet:modernization-phase-1.2

Conversation

@oberstet
Copy link
Copy Markdown
Contributor

Description

Fixes #1787


Related Issue(s)

Closes or relates to #1787


Checklist

  • I have referenced relevant issue numbers above
  • I have performed a self-review of my code and it follows
    the style guidelines of this project
  • I have added new or used existing tests that prove my fix
    is effective or that my feature works
  • I have added necessary documentation (if appropriate) and
    updated the changelog
  • I have added an AI assistance disclosure file (required!)
    in this PR

@oberstet oberstet changed the title Phase 1.2: Build Tooling Modernization #203 Phase 1.2: Build Tooling Modernization Nov 25, 2025
…ysis

Document NULL pointer dereference issue reported by University of
Athens researchers and provide comprehensive analysis of effort
required to rewrite NVX module in Rust.

Issue crossbario#1789: Simple fix (< 1 hour) - add NULL checks after malloc
Rust rewrite: 2-3 weeks effort - eliminates entire class of bugs

Recommendation: Fix crossbario#1789 in Phase 1.2, consider Rust rewrite later.

Note: This work was completed with AI assistance (Claude Code).
- Add project header banner to justfile default recipe
- Add clean-build recipe to remove build artifacts
- Add verify-wheels recipe with twine check and auditwheel validation
- Add docstring to docs-view recipe

Part of GitHub issue crossbario#1789 (Phase 1.2 Build Tooling Modernization).

Note: This work was completed with AI assistance (Claude Code).
Added recipes:
- fix-format: renamed from autoformat (autoformat kept as alias)
- test-all: run tests on all environments
- upgrade: upgrade dependencies in single environment
- upgrade-all: upgrade dependencies in all environments

These recipes align autobahn-python with the common justfile recipes
specification defined in MODERNIZATION.md for consistent developer
experience across the WAMP Python ecosystem.

Note: This work was completed with AI assistance (Claude Code).
- Move autobahn/, flatbuffers/, twisted/ packages to src/ directory
- Update pyproject.toml for src layout with where = ["src"]
- Update docs/conf.py autoapi_dirs to point to src/autobahn
- Update .ai submodule to latest (3d10240) with audit docs
- Create docs/ai/ subfolder with symlinks to .ai submodule
- Update docs/index.rst to reference ai/ subfolder

Note: This work was completed with AI assistance (Claude Code).
- Update paths from autobahn/nvx/ to src/autobahn/nvx/
- Add detailed comment explaining why setup.py is still needed
  (CFFI has no pyproject.toml support for cffi_modules)

Note: This work was completed with AI assistance (Claude Code).
- Update mypy.ini python_version from 3.7 to 3.11
- Update justfile paths from autobahn/ to src/autobahn/
  - check-typing mypy path
  - check-coverage-asyncio pytest paths
  - test-asyncio pytest paths
  - clean-fbs, build-fbs FlatBuffers paths

Note: This work was completed with AI assistance (Claude Code).
The _utf8validator.c and _xormasker.c files are needed at runtime
for CFFI to compile the native extensions.

Note: This work was completed with AI assistance (Claude Code).
With src layout, tests run from src/ directory. Using non-editable
install copies files to site-packages, causing pytest to find both
locations and fail with "import file mismatch".

Changed all test/check recipes to use install-dev (editable mode)
instead of install (non-editable):
- check-typing, check-coverage-*, check-coverage
- test-import, test-twisted, test-asyncio, test-serdes
- wstest-testeeclient-*, wstest-testeeserver-*

Note: This work was completed with AI assistance (Claude Code).
Note: This work was completed with AI assistance (Claude Code).
@oberstet oberstet merged commit 14720c6 into crossbario:master Dec 2, 2025
28 of 31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Phase 1.2: Build Tooling Modernization

1 participant