Repository navigation
Python: Clarify meta-package promotion policy - #9311
Eduard van Valkenburg (eavanvalkenburg) merged 5 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The changes are internally consistent, but the required agreed packaging-policy issue has not yet been linked.
0 open findings
What changed in this PR
Clarifies that Python package lifecycle, meta-package membership, and lazy-loading exposure are independent decisions.
Changes:
- Defines explicit meta-package inclusion criteria and promotion requirements.
- Adds membership tracking to
PACKAGE_STATUS.md. - Updates compatibility parsing, tests, and package description.
| File | Description |
|---|---|
python/pyproject.toml |
Describes the optional integrations as curated. |
python/PACKAGE_STATUS.md |
Tracks meta-package membership separately. |
python/.github/skills/python-package-management/SKILL.md |
Documents the revised promotion policy. |
.github/scripts/check_python_api_compatibility.py |
Accepts the additional status column. |
.github/tests/test_python_api_compatibility.py |
Tests old and new status-row formats. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
MAF Automated Review — Iteration 1
Result: No findings
Scope: full PR (1 commit(s)): 8707bb8c217a
Model: gpt-5.6-sol
Overview
The PR separates package lifecycle, meta-package membership, and lazy-loading decisions while preserving the existing install set. The updated status table matches core[all], and the compatibility parser retains support for both the legacy and new table shapes with targeted tests. No concrete Critical, High, or Medium regression remains after reconciling the proposed failure cases against the current table format and package metadata.
Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
No publishable findings remained after source verification for this scope.
Jose Alvarez (jpalvarezl)
left a comment
There was a problem hiding this comment.
A few policy consistency points.
There was a problem hiding this comment.
MAF Automated Review — Iteration 2
Result: Findings reported
Scope: 3 net-new commit(s): 91403f95e027, f56b6873d1f3, 2866aad2a531
Model: gpt-5.6-sol
Overview
The change cleanly separates package lifecycle, meta-package membership, and lazy-loading exposure, with explicit issue and core-team approval gates and conservative defaults. The status parser and release guidance remain compatible with the new source-of-truth structure. One compatibility gap remains: later promotions may move or remove a public namespace without requiring migration, breaking-change, or versioning treatment.
Reviewed the supplied incremental change set across correctness, security/reliability, architecture, and failure behavior.
1 verified finding remained after source verification (1 medium) across 1 file. Details are attached to the affected lines below.
Affected areas: python/.github/skills/python-package-management/SKILL.md
Jose Alvarez (jpalvarezl)
left a comment
There was a problem hiding this comment.
The follow-up commits address my three inline comments and the later namespace-compatibility feedback. I have no additional code or policy findings. I am leaving this as a comment rather than approval because the previously raised agreed-issue/link requirement is still outstanding.
Motivation & Context
The package-management guidance currently couples Beta promotion to inclusion in
agent-framework-core[all]. That makes lifecycle maturity a proxy for standard-install membership and would automatically expand the meta-package as specialized storage backends, hosting adapters, and other integrations mature.This change makes lifecycle, meta-package membership, and lazy-loading exposure explicit, independent decisions while preserving the sample relocation and import-surface work that accompanies promotion.
Description & Review Guide
PACKAGE_STATUS.mdtracks meta-package membership independently from lifecycle. Duplicated package-creation, promotion, versioning, and dependency-bound rules were removed fromCODING_STANDARD.md; it and the feature-lifecycle guidance now refer to the package-management skill as the normative source. The API compatibility parser and its tests accept the additional status-table column, and the root package description calls the install set curated rather than comprehensive.core[all]automatically. Sample moves and approved lazy imports still occur during promotion. Later promotions normally retain their established namespace while preserving prerelease flexibility for newly exposed objects without silently deleting a stable Core namespace. Removing an existing meta-package member requires explicit compatibility, migration, breaking-change, and versioning consideration. Existing meta-package membership is unchanged.PACKAGE_STATUS.mdis the right source of truth for membership.Related Issue
N/A - draft pending an agreed issue. Link the packaging-policy issue before marking this PR ready for review.
AI Assistance
AI assistance details: Packaging guidance, status-table/parser updates, tests, documentation consolidation, and this PR description.
Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.