Skip to content

chore: regenerate poetry.lock for the jsonschema dev dependency - #457

Closed
ling-senpeng13 wants to merge 1 commit into
mainfrom
fix/regenerate-poetry-lock
Closed

chore: regenerate poetry.lock for the jsonschema dev dependency#457
ling-senpeng13 wants to merge 1 commit into
mainfrom
fix/regenerate-poetry-lock

Conversation

@ling-senpeng13

@ling-senpeng13 ling-senpeng13 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Fixes #456.

What

jsonschema = ">=4.23" was added to [tool.poetry.group.dev.dependencies] without regenerating the lock, so poetry's stored content-hash stopped matching pyproject.toml. Every poetry install since then fails its consistency check:

pyproject.toml changed significantly since poetry.lock was last generated.
Run `poetry lock` to fix the lock file.

That is what broke the PyPI publish for 2.0.0-rc3: the GitHub release and its e2e bundle were created, but no wheel was ever uploaded. So pip install conductor-python==2.0.0-rc3 fails, and the released conductor-ai-e2e-python-2.0.0-rc3 bundle — which pins that exact version — cannot install. Full write-up in #456.

This is a bookkeeping fix, not a dependency change

jsonschema 4.26.0 was already in the lock and already satisfies >=4.23. It was just recorded as an optional, extras-gated transitive dependency rather than a dev-group one. So the diff only re-tags entries and refreshes the hash:

-optional = true
+optional = false
-groups = ["main"]
+groups = ["main", "dev"]
-markers = "extra == \"openai-agents\" or …"
+markers = {main = "extra == \"openai-agents\" or …"}
...
-content-hash = "f3c1edfc…"
+content-hash = "c9fd605d…"

No package version changed. Verified by diffing every version = line in the lock — zero hits. One file, 19 insertions / 19 deletions.

Exactly five entries change — jsonschema and its transitive closure: attrs, jsonschema, jsonschema-specifications, referencing, rpds-py — plus [metadata] content-hash. Nothing else in the lock is touched.

Verification

Run with poetry 2.4.1, matching the lock's lock-version 2.1:

poetry check --lock
before exit 1pyproject.toml changed significantly since poetry.lock was last generated
after exit 0

Note for whoever cuts the next release

Re-running 2.0.0-rc3's Continuous Delivery will not fix that release — it rebuilds the 2.0.0-rc3 tag, which still has the stale lock committed in it. A new release (2.0.0-rc4) is required, and it's worth confirming conductor-python 2.0.0rc4 actually appears on PyPI afterwards rather than trusting the release page.

#456 also proposes hardening so this can't recur silently — most usefully, poetry check --lock in PR CI (it reproduces this exact failure in one step) and gating the e2e-bundle upload on the package existing on PyPI.

CI note

integration-test (test-all) failed on the first run with:

tests/integration/test_workflow_client_intg.py::TestOrkesWorkflowClientIntg::test_all
Exception: workflow expected to be COMPLETED, but received RUNNING, workflow_id: de37587d-…

That is a workflow not reaching a terminal state inside the poll window against the shared server — unrelated to this change. The five entries touched here (jsonschema + attrs/referencing/rpds-py/jsonschema-specifications) are JSON-schema validation libraries, at unchanged versions; none participates in workflow execution, polling or worker dispatch. unit-test and the other three integration shards passed.

Worth noting pyproject.toml already carries markers acknowledging this area is timing-sensitive — slow_test_all: long-running aggregate workflow-client test_all (~83s) and server_timeout_unreliable: … excluded from CI. Happy to re-run that shard to confirm.

🤖 Generated with Claude Code

@ling-senpeng13 ling-senpeng13 self-assigned this Jul 29, 2026
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

`jsonschema = ">=4.23"` was added to [tool.poetry.group.dev.dependencies]
without regenerating the lock, so poetry's stored content-hash no longer
matched pyproject.toml. Every `poetry install` then failed the consistency
check:

  pyproject.toml changed significantly since poetry.lock was last generated.
  Run `poetry lock` to fix the lock file.

That is what broke the PyPI publish for 2.0.0-rc3 — the release and its e2e
bundle were created, but no wheel was ever uploaded, so
`pip install conductor-python==2.0.0-rc3` fails and the released e2e bundle
(which pins that exact version) cannot install. See #456.

This is a bookkeeping fix only. jsonschema 4.26.0 was already locked and
already satisfies >=4.23; it was just recorded as an optional, extras-gated
transitive dependency rather than a dev-group one. The diff flips
`optional`/`groups`/`markers` and updates content-hash:

  optional = true            -> optional = false
  groups = ["main"]          -> groups = ["main", "dev"]
  markers = "<extras expr>"  -> markers = {main = "<extras expr>", dev = ...}

Exactly five entries change — jsonschema and its transitive closure:
attrs, jsonschema, jsonschema-specifications, referencing, rpds-py — plus
[metadata] content-hash. Nothing else in the lock is touched.

NO package version changes: diffing every `version = ` line in the lock
yields zero hits.

Verified with poetry 2.4.1 (matching the lock's lock-version 2.1):
`poetry check --lock` exits 1 before this change and 0 after.

Re-running 2.0.0-rc3's release workflow would NOT have helped — it rebuilds
that tag, which still carries the stale lock. A new release is needed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

Release 2.0.0-rc3 published no PyPI wheel: stale poetry.lock broke the publish job, but the release still looks successful

1 participant