Skip to content

feat: update ci#53

Merged
ink-developer merged 2 commits into
MaxApiTeam:dev/2.2.0from
m-xim:main
May 29, 2026
Merged

feat: update ci#53
ink-developer merged 2 commits into
MaxApiTeam:dev/2.2.0from
m-xim:main

Conversation

@m-xim
Copy link
Copy Markdown
Contributor

@m-xim m-xim commented May 29, 2026

Summary by CodeRabbit

  • New Features

    • Added support for Python 3.14
  • Documentation

    • Updated official documentation URL
  • Chores

    • Established automated testing workflow with linting and coverage reporting across Python versions
    • Simplified publishing pipeline with improved distribution validation
    • Modernized codebase for Pydantic v2 compatibility

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1ed776e6-65c2-4517-8bd0-2ed6a6762e8f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR modernizes the PyMax project by adopting uv as the package manager across CI/CD workflows, updating project configuration to support Python 3.14 and contemporary tooling, and migrating the CamelModel to Pydantic v2's ConfigDict API. The publish and test workflows are simplified and standardized around uv, while project metadata and linting configuration are refined.

Changes

Project Modernization

Layer / File(s) Summary
Publish workflow with uv
.github/workflows/publish.yml
Simplified two-job pipeline: package job builds and validates distributions via uv build and twine check, uploads artifacts; publish job downloads and publishes to PyPI using uv publish with PyPI environment/token authentication. Workflow name changed to Publish, concurrency added, permission set to id-token: write.
Tests workflow with uv and Python matrix
.github/workflows/tests.yml
New workflow runs lint and tests jobs on pull requests, pushes to main/dev/**, and manual dispatch. Lint job runs ruff format --check and ruff check; tests job runs pytest with coverage across Python 3.10–3.14 matrix, outputting coverage reports to job summary.
Project configuration and tooling
pyproject.toml
Added Python 3.14 trove classifier; updated Documentation URL to https://docs.pymax.org; refined [dependency-groups].dev to retain pre-commit, twine, pyright, ruff; added [tool.uv]; updated [tool.ruff] to remove target-version, clear global ignore list, and adjust per-file-ignores (removed src/pymax/**/__init__.py, kept tests/**F401).
Pydantic v2 ConfigDict migration
src/pymax/api/models.py
Updated CamelModel to use Pydantic v2's ConfigDict instead of plain dict for model_config, preserving alias_generator=to_camel, populate_by_name=True, and arbitrary_types_allowed=True settings.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 With uv we race, workflows so clean,
Pydantic v2's way now seen,
Python 3.14 on board,
Linting and testing—all restored!
A modernized codebase, keen and keen! 🌟

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided. The template requires sections for description, change type, related issues, and testing examples, but all are missing. Add a comprehensive description explaining the new CI/CD workflows, select applicable change types, reference any related issues, and provide testing guidance if applicable.
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.
Title check ❓ Inconclusive The title 'feat: update ci' is partially related to the changeset but is overly vague and does not clearly specify what CI updates were made. Make the title more specific, such as 'feat: add CI workflows for testing and publishing' or 'feat: implement automated testing and package publishing workflows'.
✅ Passed checks (2 passed)
Check name Status Explanation
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

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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 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/publish.yml:
- Around line 21-25: Replace tag-based GitHub Action references with immutable
commit SHAs: locate the uses lines referencing actions/checkout@v6,
astral-sh/setup-uv@v8.1.0, actions/upload-artifact@v4, and
actions/download-artifact@v4 in the publish workflow and pin each to the
corresponding repository commit SHA (e.g., actions/checkout@<full-sha>) instead
of the tag; update every occurrence of those symbols so the workflow uses full
SHAs for reproducible runs and commit the changed publish.yml.

In @.github/workflows/tests.yml:
- Around line 22-26: Replace the floating GitHub Action tags with immutable
commit SHAs for every occurrence of the actions referenced (specifically the
uses entries "actions/checkout@v6" and "astral-sh/setup-uv@v8.1.0" found in both
the lint and tests job blocks); locate those uses entries and update them to the
corresponding repository@<commit-SHA> values (fetch the latest recommended
commit SHAs from each action's repo/releases page), commit the updated workflow,
and run CI to verify the workflows still function after pinning.

In `@src/pymax/api/models.py`:
- Around line 6-10: Ruff flags formatting in the multi-line ConfigDict call for
model_config; reformat the ConfigDict(...) block so arguments are each on their
own line, the closing parenthesis is on its own line, no trailing whitespace or
extra blank lines remain, and overall alignment matches surrounding code style
(edit the model_config assignment and ConfigDict invocation that uses to_camel,
populate_by_name, and arbitrary_types_allowed).
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5486026b-0bbe-40b9-acb2-513cb7d60c72

📥 Commits

Reviewing files that changed from the base of the PR and between 2e4e63e and d474c5d.

📒 Files selected for processing (4)
  • .github/workflows/publish.yml
  • .github/workflows/tests.yml
  • pyproject.toml
  • src/pymax/api/models.py

Comment thread .github/workflows/publish.yml
Comment thread .github/workflows/tests.yml
Comment thread src/pymax/api/models.py
@m-xim m-xim changed the base branch from main to dev/2.2.0 May 29, 2026 15:02
@ink-developer ink-developer merged commit c0e0d7b into MaxApiTeam:dev/2.2.0 May 29, 2026
6 of 7 checks passed
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.

2 participants