Skip to content

ci: migrate CI configuration from CircleCI to GitHub Actions - #22

Open
kilo-code-bot[bot] wants to merge 7 commits into
masterfrom
session/agent_31af9bdb-a5d6-4109-b1fc-86942309c722
Open

ci: migrate CI configuration from CircleCI to GitHub Actions#22
kilo-code-bot[bot] wants to merge 7 commits into
masterfrom
session/agent_31af9bdb-a5d6-4109-b1fc-86942309c722

Conversation

@kilo-code-bot

@kilo-code-bot kilo-code-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

Migrate CI from CircleCI to GitHub Actions.

Fixes the CircleCI checkout failure (Permission denied (publickey)): actions/checkout@v4 authenticates over HTTPS with the built-in GITHUB_TOKEN, so no SSH key is required.

  • Add .github/workflows/ci.yml (checkout, Python setup, install requirements, run tests)
  • Remove .circleci/config.yml

Summary by CodeRabbit

  • Chores

    • Migrated automated build and test checks from CircleCI to GitHub Actions.
    • CI now runs for pushes to the master branch and pull requests.
    • Modernized package configuration and build workflows.
    • Improved cleanup of generated build and distribution artifacts.
    • Removed obsolete packaging and documentation conversion steps.
  • Tests

    • Added coverage for complex colormap generation, including representative outputs, output bounds, and zero-input behavior.
    • Added automated smoke testing to validate core functionality in CI.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR replaces CircleCI and setup.py with GitHub Actions and Hatch-based packaging. It updates build, cleanup, and test commands, removes direct requirements, adds colormap tests, and removes unused package metadata declarations.

Changes

Packaging and CI migration

Layer / File(s) Summary
Package configuration and metadata
pyproject.toml, complex_colormap/__about__.py
Hatch now defines project metadata, dependencies, version loading, and wheel contents. Unused metadata declarations were removed.
Build commands and colormap validation
Makefile, tests/test_cplot.py
Makefile targets now support Hatch-based builds, cleanup, and testing. Tests cover documented outputs, array bounds, and dimensions.
GitHub Actions CI workflow
.github/workflows/ci.yml, .circleci/config.yml, requirements.txt, setup.py
GitHub Actions runs package installation, pytest, and complex_colormap/cplot.py on pushes and pull requests. The CircleCI configuration, legacy setup configuration, and direct requirements were removed.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 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 clearly and concisely describes the primary change: migrating CI from CircleCI to GitHub Actions.
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.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch session/agent_31af9bdb-a5d6-4109-b1fc-86942309c722

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 22-23: Add a real automated test suite with a declared test
runner, then update the CI workflow’s “Run tests” step to execute that runner
and discover the test files. Keep the existing python complex_colormap/cplot.py
invocation as a separate smoke-test step rather than using it as test coverage.
- Around line 8-12: Update the test job in the workflow to set job-level
permissions to contents: read and configure the actions/checkout@v4 step with
persist-credentials disabled. Keep the existing checkout and test job structure
unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3e205f90-37bf-48b2-8b4a-5770eea888a7

📥 Commits

Reviewing files that changed from the base of the PR and between 410aad7 and 644b401.

📒 Files selected for processing (2)
  • .circleci/config.yml
  • .github/workflows/ci.yml
💤 Files with no reviewable changes (1)
  • .circleci/config.yml

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
Migrate the project packaging from setup.py and requirements.txt to
pyproject.toml. Update Makefile to use the `build` module instead of
`setup.py` and update CI workflows to install the package in
editable mode.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Makefile`:
- Around line 20-23: Update the existing .PHONY declaration in the Makefile to
include both publish and clean, ensuring these targets always execute their
recipes even when files with those names exist.
- Around line 13-16: Update the release tooling configuration associated with
the Makefile upload target to declare the separate Python build package
alongside hatchling, and ensure that package is installed before invoking make
upload. Keep the existing upload sequence and build command unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cc38b2ab-eb80-459a-980e-4dfe826aec95

📥 Commits

Reviewing files that changed from the base of the PR and between 644b401 and b7eb8b1.

📒 Files selected for processing (6)
  • .github/workflows/ci.yml
  • Makefile
  • complex_colormap/__about__.py
  • pyproject.toml
  • requirements.txt
  • setup.py
💤 Files with no reviewable changes (3)
  • requirements.txt
  • setup.py
  • complex_colormap/about.py

Comment thread Makefile
Comment thread Makefile
- Add generated C_lut.npy lookup table (required at import time)
- Include C_lut.npy in the built wheel
- Add pytest test suite covering both colormaps
- Run pytest in CI with a separate cplot.py smoke test
- Harden workflow: contents: read permission, persist-credentials: false
- Declare build frontend and PHONY targets in Makefile

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)

22-27: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Validate a built distribution in CI.

Line 24 installs the source tree in editable mode. This does not prove that the wheel contains C_lut.npy. Add a regular wheel install or an explicit wheel-content check, and run that check outside the repository source path. Pip documents editable installs as development installs whose behavior can differ from regular distribution installs. (pip.pypa.io)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 22 - 27, Update the CI steps around
“Install dependencies” and “Run tests” to build and install the regular wheel
instead of relying only on pip install -e, then execute the tests from outside
the repository source path so the packaged wheel’s C_lut.npy is validated.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/test_cplot.py`:
- Around line 34-41: Resolve the zero-input contract consistently between
test_colormap_black_for_zero, max_chroma_colormap, and the cplot documentation:
either preserve the lookup-table value by renaming the test and updating the
documentation, or make max_chroma_colormap return black at zero and change the
expected value to (0.0, 0.0, 0.0). Ensure the test name, implementation
behavior, and documentation agree.

---

Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 22-27: Update the CI steps around “Install dependencies” and “Run
tests” to build and install the regular wheel instead of relying only on pip
install -e, then execute the tests from outside the repository source path so
the packaged wheel’s C_lut.npy is validated.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ae9a41b5-2daa-4646-a686-c10661e70d3b

📥 Commits

Reviewing files that changed from the base of the PR and between b7eb8b1 and 34e6493.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • Makefile
  • complex_colormap/C_lut.npy
  • pyproject.toml
  • tests/test_cplot.py

Comment thread tests/test_cplot.py Outdated
kilo-code-bot Bot added 2 commits August 4, 2026 03:30
The max_chroma_colormap zero-input behavior is a library contract
question (docstring prose vs. example disagree), not a CI concern.
Leave it for a separate change.
kilo-code-bot Bot added 2 commits August 5, 2026 20:59
bump requires-python to >=3.10 and add classifiers for 3.10 through 3.13
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.

0 participants