Skip to content

Switch to emake for build system#29

Open
Eeems wants to merge 6 commits intomainfrom
emake
Open

Switch to emake for build system#29
Eeems wants to merge 6 commits intomainfrom
emake

Conversation

@Eeems
Copy link
Copy Markdown
Owner

@Eeems Eeems commented May 8, 2026

Summary by CodeRabbit

  • Chores
    • CI revamped to use a unified build tool across lint, test, fuzz and packaging; artifact handling and publish steps streamlined.
    • Packaging/build consolidated with unified sdist/wheel builds and uploads; legacy wheel script removed.
    • Makefile updated to drive dev dependencies via the unified tool.
    • Project metadata updated to include MIT license and simplified optional dependency for fuzz.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This PR migrates the repository's build system from Make-based scripts to emake-based orchestration. Configuration updates add MIT licensing and emake tool settings. The Makefile references emake for dependency management. GitHub Actions workflows are updated to use emake for lint, test, fuzz, and all packaging jobs. Legacy wheel build scripts are removed as their functionality is integrated into emake commands.

Changes

Emake Build Migration

Layer / File(s) Summary
Tool Configuration and Dependencies
pyproject.toml
Adds MIT license field, simplifies fuzz optional dependency to a single-line definition, and configures emake test command to ./test.sh.
Local Development Environment Setup
Makefile
VENV_BIN_ACTIVATE target updated to run emake requirements dev; clean target remains git clean --force -dX.
Lint Job Migration
.github/workflows/build.yaml
Lint job installs emake via shared anchor and runs emake lint; display/step labels updated.
Test Job and Artifact Handling
.github/workflows/build.yaml
Test job installs emake, downloads test.ext4, and runs emake test; job/step labeling updated.
Fuzz Job Integration
.github/workflows/build.yaml
Fuzz job uses shared emake install step before running fuzz steps.
Build Distribution Jobs
.github/workflows/build.yaml
build-sdist, build-any-wheel, and build-wheel jobs run emake build variants and emake test --wheel where applicable; build-wheel adds an exclusion for i686 + python 3.14 + glibc and uploads dist/*.
Distribution Publishing and Release
.github/workflows/build.yaml
publish downloads pip-* artifacts into dist and uses pypa/gh-action-pypi-publish@release/v1 with packages-dir and skip-existing; release uploads files from downloaded artifact directory to GitHub release.
Legacy Build Script Removal
wheel.sh, test-wheel.sh
wheel.sh removed; test-wheel.sh appears only as prior content in the diff view (no new hunk).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Eeems/python-ext4#28: Modifies CI workflow and wheel build/test scripts (wheel.sh and test-wheel.sh) alongside build tooling updates.
  • Eeems/python-ext4#10: Updates CI workflow and Makefile targets for lint, test, and build operations.
  • Eeems/python-ext4#21: Alters test artifacts and workflow test scripts related to test.ext4 handling.

Poem

🐰 In burrows of code the rabbit did sweep,

emake hummed softly while old scripts sleep,
Wheels roll in dist, neat artifacts stay,
CI carrots glint in orderly array,
A short hop, a clean build — then back to the hay.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Switch to emake for build system' directly and accurately summarizes the main objective of the pull request, which centrally focuses on replacing the existing build system with emake across all workflows and configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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 marked this pull request as ready for review May 8, 2026 06:46
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

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