- Update test.rs to use unicorn-engine 2.x API:
- Replace Permission with Prot for memory permissions
- Change mem_map/mem_protect size parameter from usize to u64
- Use bitwise OR instead of insert() for Prot flags
- Reorganize justfile for better discoverability:
- Add help command showing all available recipes
- Add ci recipe that runs full lint + test pipeline
- Align recipes with CI workflow (nightly for fmt/clippy)
- Organize into clear sections: build, lint, test, dev
- Add fmt-check for formatting verification without changes
Add the generate-import-lib feature to pyo3 to allow building Windows
wheels for Python versions that aren't installed on the build machine.
This is required for i686 builds where maturin uses bundled sysconfig
instead of actual interpreters.
zydis 3.x bundles an old zydis-c with cmake_minimum_required < 3.5.
Newer CMake versions reject this, so we set CMAKE_POLICY_VERSION_MINIMUM=3.5
as a workaround.
- Rename publish-pypi.yaml → python-wheels.yaml
- Change workflow name to "Python Wheels"
- Rename pypi-publish job to publish
- Cleaner step names
The workflow now clearly reflects its dual purpose: building wheels
(on manual trigger, PRs, releases) and publishing (releases only).
Add workflow_dispatch trigger to publish-pypi.yaml so builds can be
tested manually without creating a release. The pypi-publish job
still only runs on tagged releases.
Change Windows ARM64 target from 'arm64' to 'aarch64' to match the
Rust target triple format expected by maturin-action.
The error was: "could not find specification for target 'arm64'"
Update CI workflow to actually test pyflirt and pylancelot with
Python 3.14 instead of Python 3.11. The setup-python action was
already configured for Python 3.14, but the test steps were creating
Python 3.11 virtualenvs.
This ensures the bindings are properly tested with Python 3.14 before
publishing wheels.
Also updates GitHub Actions to latest versions (checkout@v4,
setup-python@v5).
Fixes#225