Skip to content

Switch to emake#2

Merged
Eeems merged 9 commits intomainfrom
emake
Apr 25, 2026
Merged

Switch to emake#2
Eeems merged 9 commits intomainfrom
emake

Conversation

@Eeems
Copy link
Copy Markdown
Contributor

@Eeems Eeems commented Apr 24, 2026

Summary by CodeRabbit

  • Chores

    • Version bumped to 1.0.2; license set to MIT
    • Build configuration updated (Nuitka-based builds) and test extras added
  • Compatibility

    • Added official support for Python 3.13 and 3.14
  • CI / Release

    • New CI pipeline with multi-architecture wheel builds and streamlined artifact publishing to releases and PyPI

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

📝 Walkthrough

Walkthrough

Replaces a legacy GitHub Actions workflow with a new multi-job CI, changes Makefile build targets, updates packaging metadata and build backend, tightens type annotations and subprocess handling in launcherctl modules, converts an exception to a class, and adds tooling configs and optional test deps.

Changes

Cohort / File(s) Summary
CI workflows
\.github/workflows/build.yaml (deleted), \.github/workflows/build.yml (added)
Removed the old two-job workflow; added a new multi-job pipeline: matrix lint, sdist and wheel builds (including multi-arch native wheels), per-job artifact uploads, and tag-triggered jobs to publish to PyPI and upload to GitHub Releases.
Project metadata & build config
pyproject.toml
Bumped version to 1.0.2, added MIT license and test optional-deps (pytest), updated Python classifiers (added 3.13/3.14), switched build backend to a Nuitka-based backend and updated build-system.requires, and added tool.ruff and tool.pyright configs.
Makefile
Makefile
Removed sdist target and Ruff-related bootstrap/lint/format targets; wheel build now calls emake build --wheel; retained clean, install, test, and deploy phony targets.
Core API & utilities
launcherctl/_app.py, launcherctl/_launcher.py, launcherctl/_util.py
Tightened type annotations (explicit return types, self.name: str), converted LauncherCtlException to a class, changed launcherctl to accept *args: str and always return str, replaced check_output error handling with subprocess.run branching and raised exception on failure, adjusted API return types and method signatures (e.g., API.running/paused: dict[str, App], API.__getitem__Launcher, API.switch corrected to instance method), and made Launcher.logs raise NotImplementedError.

Sequence Diagram(s)

sequenceDiagram
  participant CI as CI Runner
  participant Lint as Lint Job
  participant Build as Build Job(s)
  participant Artifact as GitHub Artifacts
  participant Publish as PyPI
  participant Release as GitHub Release

  rect rgba(200,200,255,0.5)
    CI->>Lint: run lint matrix (py3.11-3.14)
    CI->>Build: run build matrix (sdist/wheel/native wheels)
  end

  rect rgba(200,255,200,0.5)
    Build->>Artifact: upload per-job `pip-*` artifacts
  end

  rect rgba(255,200,200,0.5)
    CI->>Artifact: on tag release, download all `pip-*` artifacts
    Artifact->>Publish: publish distributions to PyPI (skip-existing)
    Artifact->>Release: upload distribution files to GitHub Release
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 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 (4 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' directly and accurately summarizes the main change: migrating the build and workflow infrastructure from direct tool invocations to emake-based delegation across multiple files (workflows, Makefile, and pyproject.toml).
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.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch emake

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.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@Eeems

This comment was marked as resolved.

@coderabbitai

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@Eeems Eeems merged commit ef78a7f into main Apr 25, 2026
19 checks passed
@Eeems Eeems deleted the emake branch April 25, 2026 03: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