Skip to content

chore(wren)!: rename PyPI package from wren-engine to wrenai#2315

Merged
douenergy merged 5 commits into
mainfrom
chore/rename-wren-engine-to-wrenai
May 22, 2026
Merged

chore(wren)!: rename PyPI package from wren-engine to wrenai#2315
douenergy merged 5 commits into
mainfrom
chore/rename-wren-engine-to-wrenai

Conversation

@goldmedal
Copy link
Copy Markdown
Collaborator

@goldmedal goldmedal commented May 21, 2026

Summary

Rename the core/wren/ Python SDK/CLI distribution from wren-engine to wrenai on PyPI. The Python import path (import wren) and the wren CLI entrypoint are unchanged — only the PyPI project name and pip install argument change.

Scope

Included — everything needed for core/wren/ to build & publish under the new name:

  • core/wren/pyproject.toml: name = \"wrenai\", self-referencing main / all extras
  • core/wren/src/wren/__init__.py + tests/unit/test_version.py: importlib.metadata.version(\"wrenai\")
  • CLI user-facing strings & install hints in src/wren/{cli,profile,profile_cli,context,context_cli,memory/cli}.py
  • .github/workflows/publish-wren.yml: workflow name + PyPI environment URL
  • core/wren/scripts/publish.sh: build/publish output messages
  • core/wren/README.md, core/wren/docs/cli.md
  • Root README.md (PyPI badge + tree), SECURITY.md
  • docs/core/{get_started,guides,reference}/*.md (non-SDK docs)
  • skills/{README,wren-onboarding,wren-usage,wren-generate-mdl}

Intentionally NOT included — follow-up PR after wrenai first publishes to PyPI:

  • sdk/wren-langchain/pyproject.toml, sdk/wren-pydantic/pyproject.toml deps (wren-engine>=0.5.0)
  • docs/core/sdk/langchain.md, docs/core/sdk/pydantic.md
  • These still depend on wren-engine from PyPI; flipping them before wrenai exists would break their CIs.

Required before merge (PyPI ops)

  1. Configure PyPI Pending Trusted Publishers for wrenai:
    • PyPI: project wrenai, owner Canner, repo WrenAI, workflow publish-wren.yml, environment pypi
    • TestPyPI: same, environment testpypi
  2. Decide on legacy wren-engine PyPI project (out of scope of this PR):
    • Option A: stop releasing new versions, leave it as-is with a deprecation note
    • Option B: publish a final "meta-package" wren-engine whose only dep is wrenai==X.Y.Z

Verification path

After merge → release-please opens release PR → merging it triggers publish-wren.yml → publishes wrenai-X.Y.Z to PyPI. RC dispatch (rc-release.yml → component wren) can be used to push a release candidate to TestPyPI first.

The wren release-please component name and wren-vX.Y.Z tag scheme are unchanged — only the published distribution name differs.

Test plan

  • Lint passes (uvx ruff format --check src/, uvx ruff check src/) — verified locally
  • No unintended wren-engine references left in updated files (grep -r wren-engine)
  • PyPI Pending Trusted Publisher configured on PyPI before merge
  • After merge: release-please picks up the breaking-change footer and proposes a version bump
  • TestPyPI RC publish succeeds (workflow_dispatch → rc-release → wren component)
  • Production publish succeeds and pip install wrenai works end-to-end
  • wren --version prints wrenai X.Y.Z (CLI string check)
  • Follow-up PR updates SDK deps + SDK docs to wrenai

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Renamed the Python package from wren-engine to wrenai; updated packaging metadata, publish workflow name, and release messaging.
  • Documentation

    • Replaced install commands, badges, guides, READMEs, and skill docs to reference wrenai[...] and added a migration note with uninstall/install steps.
  • CLI/UX

    • Updated CLI version/help output, on-screen install hints, and generated template messages to mention wrenai.
  • Tests

    • Adjusted unit test expectations to reference the wrenai distribution.

Review Change Stack

Rename the core/wren CLI/SDK distribution from `wren-engine` to
`wrenai` on PyPI. The Python import path (`import wren`) and the
`wren` CLI entrypoint are unchanged.

Scope of this PR:
  - core/wren/pyproject.toml `name`, self-referencing `main` / `all` extras
  - importlib.metadata lookup in src/wren/__init__.py + test_version.py
  - user-facing CLI strings and install hints in src/wren/**
  - .github/workflows/publish-wren.yml workflow name + PyPI env URL
  - core/wren/scripts/publish.sh messages
  - core/wren/README.md, core/wren/docs/cli.md
  - root README.md PyPI badge + tree, SECURITY.md
  - docs/core/{get_started,guides,reference}/*.md (non-SDK docs)
  - skills/{README, wren-onboarding, wren-usage, wren-generate-mdl}

Intentionally NOT in this PR (follow-up after wrenai is on PyPI):
  - sdk/wren-langchain, sdk/wren-pydantic pyproject deps
  - docs/core/sdk/langchain.md, docs/core/sdk/pydantic.md
  These still resolve `wren-engine>=0.5.0` from PyPI; flipping them
  before `wrenai` exists would break their CIs.

Release / PyPI ops required before merge:
  - Configure PyPI Pending Trusted Publisher for `wrenai`
    (project + testpypi, Canner/WrenAI repo, publish-wren.yml,
    environments `pypi` / `testpypi`).
  - Decide transition strategy for the legacy `wren-engine` PyPI
    project (deprecated meta-package vs. hard cut).

BREAKING CHANGE: `pip install wren-engine` no longer receives new
releases of this package. Users should switch to `pip install wrenai`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file python Pull requests that update Python code core ci skills labels May 21, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 6b6f4d8f-c146-47b4-8446-e533cfc30b25

📥 Commits

Reviewing files that changed from the base of the PR and between 868a6af and 8c43e5b.

📒 Files selected for processing (1)
  • core/wren/README.md
💤 Files with no reviewable changes (1)
  • core/wren/README.md

Walkthrough

Renames the Python distribution from wren-engine to wrenai: updates pyproject metadata, runtime/test version lookup, CI publish targets and scripts, CLI outputs/help/error messages, templates, and documentation/install examples across repository and skill files.

Changes

Package Rename from wren-engine to wrenai

Layer / File(s) Summary
Package metadata and version detection
core/wren/pyproject.toml, core/wren/src/wren/__init__.py, core/wren/tests/unit/test_version.py
Package name changed to wrenai in project metadata; runtime and test version lookup updated to query the wrenai distribution.
Publishing workflow and scripts
.github/workflows/publish-wren.yml, core/wren/scripts/publish.sh
CI workflow and publish script updated to use wrenai PyPI/TestPyPI URLs and to display wrenai in build/publish messages.
CLI outputs and help
core/wren/src/wren/cli.py
--version, version command output and help text now reference wrenai.
CLI guidance & memory/profile messages
core/wren/src/wren/memory/cli.py, core/wren/src/wren/profile_cli.py, core/wren/src/wren/context.py, core/wren/src/wren/context_cli.py, core/wren/src/wren/profile.py
User-facing guidance, template snippets, and missing-dependency messages updated to reference wrenai[...] extras and new repository installer URL.
Core package documentation
core/wren/README.md, core/wren/docs/cli.md
Badges, install snippets, and extras in core docs updated to wrenai[...].
User guide installation instructions
docs/core/get_started/quickstart.md, docs/core/guides/connect.md, docs/core/reference/cli.md
Quickstart and guides updated to use wrenai package and extras (e.g., wrenai[memory,main]).
Root-level repository documentation
README.md, SECURITY.md
Top-level README badge/onboarding text and SECURITY supported-package wording updated to wrenai.
Skills documentation
skills/README.md, skills/*/SKILL.md
Skill frontmatter, install prerequisites, and recommended pip commands updated to wrenai.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Canner/WrenAI#2304: Overlapping updates to skill files and rebranded repository/package references for wrenai.

Suggested reviewers

  • PaulChen79
  • chilijung

Poem

🐰 I hopped through docs and scripts today,
Changed "engine" to "wrenai" along the way,
Badges gleam and pip commands align,
CLI and tests now speak the new sign,
A happy rabbit hops—release time!

🚥 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 'chore(wren)!: rename PyPI package from wren-engine to wrenai' clearly and concisely summarizes the main change—renaming the PyPI package distribution while keeping the Python import path unchanged.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 chore/rename-wren-engine-to-wrenai

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.

🧹 Nitpick comments (2)
skills/wren-generate-mdl/SKILL.md (1)

6-6: 💤 Low value

Consider updating author metadata for consistency.

The other skill files (wren-onboarding/SKILL.md and wren-usage/SKILL.md) update their author metadata to wrenai, but this file still shows wren-engine. For consistency with the package rename, consider updating this to wrenai as well.

🤖 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 `@skills/wren-generate-mdl/SKILL.md` at line 6, Update the SKILL.md author
metadata by replacing the existing "author: wren-engine" entry with "author:
wrenai" so it matches the other skill files; locate the literal author metadata
line (author: wren-engine) and change it to author: wrenai to maintain
consistency with the package rename.
skills/wren-usage/SKILL.md (1)

42-42: 💤 Low value

Clarify heading to distinguish package name from CLI command.

The heading "Check if wrenai is installed" could be confusing because the section actually checks for the wren CLI command (which remains unchanged per the PR objectives). Consider rewording to "Check if wren CLI is installed" to make it clear that we're checking for the CLI availability, even though the package is now named wrenai.

🤖 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 `@skills/wren-usage/SKILL.md` at line 42, The heading "Check if `wrenai` is
installed" is ambiguous; update the markdown heading text to say "Check if
`wren` CLI is installed" so readers understand we're verifying the `wren` CLI
command rather than the package name; locate the heading string "Check if
`wrenai` is installed" in SKILL.md and replace it with the clarified text
exactly as specified.
🤖 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.

Nitpick comments:
In `@skills/wren-generate-mdl/SKILL.md`:
- Line 6: Update the SKILL.md author metadata by replacing the existing "author:
wren-engine" entry with "author: wrenai" so it matches the other skill files;
locate the literal author metadata line (author: wren-engine) and change it to
author: wrenai to maintain consistency with the package rename.

In `@skills/wren-usage/SKILL.md`:
- Line 42: The heading "Check if `wrenai` is installed" is ambiguous; update the
markdown heading text to say "Check if `wren` CLI is installed" so readers
understand we're verifying the `wren` CLI command rather than the package name;
locate the heading string "Check if `wrenai` is installed" in SKILL.md and
replace it with the clarified text exactly as specified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 989100a2-14af-43f4-9376-c005e335df80

📥 Commits

Reviewing files that changed from the base of the PR and between dfa1e03 and 280d6ea.

📒 Files selected for processing (24)
  • .github/workflows/publish-wren.yml
  • README.md
  • SECURITY.md
  • core/wren/README.md
  • core/wren/docs/cli.md
  • core/wren/pyproject.toml
  • core/wren/scripts/publish.sh
  • core/wren/src/wren/__init__.py
  • core/wren/src/wren/cli.py
  • core/wren/src/wren/context.py
  • core/wren/src/wren/context_cli.py
  • core/wren/src/wren/memory/cli.py
  • core/wren/src/wren/profile.py
  • core/wren/src/wren/profile_cli.py
  • core/wren/tests/unit/test_version.py
  • docs/core/get_started/quickstart.md
  • docs/core/guides/connect.md
  • docs/core/guides/memory.md
  • docs/core/guides/profiles.md
  • docs/core/reference/cli.md
  • skills/README.md
  • skills/wren-generate-mdl/SKILL.md
  • skills/wren-onboarding/SKILL.md
  • skills/wren-usage/SKILL.md

goldmedal and others added 4 commits May 21, 2026 18:37
…ine-to-wrenai

# Conflicts:
#	docs/core/guides/memory.md
#	docs/core/guides/profiles.md
- wren-generate-mdl/SKILL.md: align author metadata to wrenai (was
  missed by the package-name sweep; other skill files already updated)
- wren-usage/SKILL.md: clarify Step 2 heading from "Check if `wrenai`
  is installed" to "Check if the `wren` CLI is installed" — the
  command we probe is the CLI, which is named `wren` and is unchanged
  by the PyPI rename

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a "Package rename" section near the end of core/wren/README.md
explaining: distribution name changed on PyPI starting 0.7.0,
`import wren` / `wren` CLI are unchanged, migration is a
re-install, and `wren-langchain` / `wren-pydantic` will follow in
their next release.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@goldmedal goldmedal requested review from PaulChen79 and douenergy May 22, 2026 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci core dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation python Pull requests that update Python code skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants