[CI]: Validate the built testing-library wheel in OTel compatibility lanes

未关闭
#863 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
77/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
github-actions, python
领域
ci-cd, testing

调研方向

Read .github/scripts/install_otel_test_wheels.py and the wheel lane configuration in pyproject.toml; then trace how the existing built_wheel and verify helpers select and validate artifacts. Update both lanes to install and verify the required local testing wheel while preserving released OTel 1.0.0 in the legacy lane. Done means both installed-wheel commands pass with artifact checks, focused installer coverage, and CONTRIBUTING.md naming all three distributions.

由索引模型根据 Issue 内容生成。

描述

Split from PR #795 — match replay state to the service, reference commit f8ac9b4; baseline main is d7ae95571c44b18c2a2efdef9a308b1c916c5049. This issue owns one independently implementable slice of that PR. Start a focused branch from current main and port only this slice, rather than stacking on the full PR.

Problem and reproduction

The installed-wheel lanes build/test local core and OTel artifacts while the testing library can remain the published dependency. A PR changing runner behavior can therefore pass installed-package validation without exercising the testing implementation that will ship. This is a validation gap, separate from the five runtime behavior fixes in this split.

Build core, OTel, and testing wheels from the checkout, run the wheel lane, and inspect installed distributions and module paths. The testing distribution must be the built local wheel rather than an editable checkout or unrelated published version.

Scope and implementation
  • Extend the existing installer package list to include the testing wheel in both lanes.
  • Normal lane: install built core, OTel, and testing wheels. Legacy lane: install built core/testing while retaining the actual released OTel 1.0.0 distribution used by the rejection tests.
  • Reuse built_wheel and verify: assert a single matching wheel, noneditable installation, archive SHA-256, and installed source bytes under site-packages; keep pip check.
  • Update CONTRIBUTING.md to require building all three distributions. Do not add a separate environment or duplicate artifact-verification framework.

Primary code: install_otel_test_wheels.py; supporting references: pyproject.toml, CONTRIBUTING.md, otel_lifecycle_compatibility_test.py, and otel_legacy_registration_rejection_test.py.

Acceptance criteria
  • Both lanes install and verify the built testing-library wheel before executing their tests.
  • The normal lane uses built core/OTel/testing; the legacy lane still imports released OTel 1.0.0 and verifies its rejection by current core.
  • Missing/ambiguous wheels or mismatched installed hashes/source bytes fail validation instead of silently falling back to a published/editable package.
  • Add focused installer selection/verification coverage and exercise both real installed-wheel lanes.
  • Build instructions accurately name all required distributions.
Validation

From each core, OTel, and testing package directory, run hatch build. From the repository root, run:

hatch run test-wheel-otel:test
hatch run test-wheel-otel-legacy:test

Use CI-pinned Hatch 1.16.5 at the reference. Run focused installer tests and relevant lint checks. The full #795 wheel validation passed on Python 3.13.17 with 805 OTel tests, 12 lifecycle cases, and four legacy rejection cases; verify the smaller infrastructure-only PR on its own artifacts rather than reusing that claim.

Independence

This change can land on main before any behavior fix: it validates whatever testing implementation the checkout builds. No new OTel callback scenarios, runtime changes, feature-branch filters, or release-version changes are needed. The temporary #795/#796 workflow target filters are stack housekeeping, not a seventh issue, and should not be copied into this independent PR. The existing test_subject_uppercase linter-unit failure noted in #795 is unrelated and is not part of this issue.

Related issues in this split
主要语言
Python
星标
58
派生
32
平均合并
1 天 6 小时
30 天内合并 PR
80

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aws/aws-durable-execution-sdk-python 的其他 Issue

查看 aws/aws-durable-execution-sdk-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。