Skip to content

Test wheels after build, support big endian architectures#28

Merged
Eeems merged 12 commits intomainfrom
wheel-test
Apr 18, 2026
Merged

Test wheels after build, support big endian architectures#28
Eeems merged 12 commits intomainfrom
wheel-test

Conversation

@Eeems
Copy link
Copy Markdown
Owner

@Eeems Eeems commented Apr 18, 2026

Summary by CodeRabbit

Release Notes v1.3.2

  • New Features

    • Added support for additional architectures (riscv64, s390x) and musl libc builds.
  • Chores

    • Incremented version to 1.3.2.
    • Updated minimum Python requirement to 3.11+ (dropped 3.10 support).
    • Enhanced wheel build and test infrastructure.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f74c2d73-ea06-49db-bbbb-2fe7db7a6a2a

📥 Commits

Reviewing files that changed from the base of the PR and between eaeb827 and 5d3625f.

📒 Files selected for processing (3)
  • .github/workflows/build.yaml
  • ext4/inode.py
  • test.py
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/build.yaml
  • ext4/inode.py

📝 Walkthrough

Walkthrough

This PR modernizes the ext4 library's type system by introducing a basetype attribute to enum classes and updating struct field definitions to use the underlying ctype instead of enum wrappers. Python 3.10 support is dropped to 3.11+, while CI is expanded to build wheels for riscv64 and s390x architectures with musl support, adding automated wheel testing.

Changes

Cohort / File(s) Summary
Type System Modernization
ext4/enum.py, ext4/blockdescriptor.py, ext4/directory.py, ext4/htree.py, ext4/inode.py, ext4/superblock.py
Added basetype attribute to TypedCEnumeration factory; updated struct field definitions across multiple files from enum types to their underlying .basetype for proper ctypes storage. Simplified enum coercions from assert_cast(...) calls to direct enum constructor calls.
CI Workflow Enhancements
.github/workflows/build.yaml, wheel.sh
Adjusted workflow formatting; removed Python 3.10 from CI matrix; expanded build-wheel matrix to include riscv64 and s390x architectures; enabled musl builds alongside glibc; added conditional Docker image selection for riscv64; integrated test-image as build dependency.
Test Infrastructure & Scripts
test-wheel.sh, test.py
Added new wheel testing script that selects wheels by architecture/libc/Python version, builds Docker commands with platform mapping, installs binfmt support for non-x86_64 arches, and executes tests. Updated test expectations for dx_root_info.hash_version type and added exception-safety validation.
Package Metadata
pyproject.toml
Bumped version from 1.3.1 to 1.3.2; raised requires-python from ≥3.10 to ≥3.11; removed Python 3.10 Trove classifier; cleared test optional dependencies list.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • PR #21: Modifies DXRootInfo structure exports and htree behaviour; directly related to the hash_version field type changes in this PR.
  • PR #7: Modifies test image generation and CI workflow artifact handling; shares common concerns with test infrastructure and workflow enhancements.

Poem

🐰 Our types now base, our arches grow wide,
riscv64 and s390x along for the ride,
Wheels tested on musl, Python 3.11 and beyond,
The enum's foundation: a robust new bond!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: adding wheel testing after build and supporting additional architectures (big-endian).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Eeems Eeems changed the title Test wheels Test wheels after build, support big endian architectures Apr 18, 2026
@Eeems Eeems marked this pull request as ready for review April 18, 2026 08:11
coderabbitai[bot]

This comment was marked as resolved.

@Eeems

This comment was marked as resolved.

@coderabbitai

This comment was marked as resolved.

@Eeems Eeems merged commit 8a97ee5 into main Apr 18, 2026
84 checks passed
@Eeems Eeems deleted the wheel-test branch April 18, 2026 20:09
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.

1 participant