Skip to content

ci: Drop cross-repo model regeneration dispatch to apify-client-python - #2835

Merged
vdusek merged 3 commits into
masterfrom
ci/drop-client-model-dispatch
Aug 3, 2026
Merged

ci: Drop cross-repo model regeneration dispatch to apify-client-python#2835
vdusek merged 3 commits into
masterfrom
ci/drop-client-model-dispatch

Conversation

@vdusek

@vdusek vdusek commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Removes the cross-repo dispatch that opened a companion model-regeneration PR in apify-client-python for every spec-changing docs PR, and rewrites the AGENTS.md section describing it.

apify-client-python now pulls the spec on its own nightly schedule instead, so nothing on this side needs to push to it or be merged in lockstep with a client PR.

Why the dispatch goes away:

  • The client can only generate models from the published spec, so it can never be genuinely ahead of a deployed docs change - the companion PR was opened against an unpublished bundle it would have to regenerate from anyway.
  • Two mechanisms writing the same generated files made them diverge. The dispatch reused one long-lived branch per docs PR and regenerated with the codegen tooling from that stale branch, which silently reverted fixes that had landed on the client's master in the meantime.
  • Every such PR opened with a placeholder TODO title that a human had to replace before it could be merged, so unmerged PRs and their stale branches piled up.

Also drops what only the removed jobs needed: the closed pull request trigger, the if: guard skipping lint on close events, and the pull-requests: read permission.

Merge this before apify/apify-client-python#983 - that PR deletes manual_regenerate_models.yaml, which the dispatch removed here still calls.

✍️ Drafted by Claude Code

@vdusek vdusek added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Jul 29, 2026
@vdusek vdusek self-assigned this Jul 29, 2026
@github-actions github-actions Bot added this to the 146th sprint - Tooling team milestone Jul 29, 2026
@apify-service-account

apify-service-account commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

🗑️ Preview for this PR was deleted.

@vdusek
vdusek marked this pull request as ready for review August 3, 2026 11:55
@vdusek
vdusek requested a review from TC-MO as a code owner August 3, 2026 11:55
@vdusek
vdusek requested a review from janbuchar August 3, 2026 11:55
@vdusek
vdusek force-pushed the ci/drop-client-model-dispatch branch from 32ae39c to e491c9d Compare August 3, 2026 11:58

@TC-MO TC-MO left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, so no longer companions PR's and no longer thinking about stacking merges so everything generates correctly :D?

@vdusek

vdusek commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

LGTM, so no longer companions PR's and no longer thinking about stacking merges so everything generates correctly :D?

Yes, because of these and other issues, we rethought this. There will be only nightly syncs from now, let's see how that will work.

@vdusek
vdusek merged commit 2f6f614 into master Aug 3, 2026
14 checks passed
@vdusek
vdusek deleted the ci/drop-client-model-dispatch branch August 3, 2026 12:18
vdusek added a commit to apify/apify-client-python that referenced this pull request Aug 3, 2026
)

Replaces the apify-docs-triggered model regeneration with a nightly job,
and records which published OpenAPI specification the generated models
came from.

## What changes

- **`on_schedule_regenerate_models.yaml`** - nightly at 02:00 UTC plus
manual dispatch. Regenerates on master and opens a pull request when the
models change. `manual_regenerate_models.yaml` is deleted.
- **`scripts/openapi_spec.py`** - downloads and validates the published
specification into git-ignored `tmp/` (both codegen passes read that one
copy), then records its `info.version` in `pyproject.toml` under
`[tool.apify.openapi-spec]`. The specification itself is not committed.
- **`_models.py`** loses the `Plan.available_proxy_groups` docstring -
accumulated codegen drift from the `datamodel-code-generator` bumps
(#968, #975), not a specification change.

## Why

The old workflow was dispatched by apify-docs and checked out a
permanent, never-rebased branch *before* regenerating, so it generated
with that branch's stale tooling. In #979 that produced `_literals.py`
in the pre-#941 closed `Literal[...]` form; merging it would have
silently reverted the enum relaxation. It also opened with a `TODO`
title that blocked `pr-title-check` - a design that needs human action
to become mergeable, which is what let #979 rot for 20 days while the
same spec changes were landed by hand (#923, #936, #947, #960, #974).

The nightly job always generates on master and rebuilds its
`ci/regenerate-models` branch from master instead of appending, so the
diff is always "current spec vs current master" and can't resurrect a
stale generated file. It opens with a mergeable `chore:` title;
reviewers retitle to `fix:`/`feat:` when the diff is user-facing.

## Notes

- **Merge apify/apify-docs#2835 first** - it removes the dispatch that
still calls the workflow deleted here.
- **Needs a `SLACK_WEBHOOK_URL` repository secret** for the failure
alert.
- The recorded version is a coarse marker, not a content identity:
apify-docs bumps `components/version.yaml` in a follow-up `[skip ci]`
commit, so a deploy can publish new content under the old stamp. A moved
value proves the specification changed; an unchanged one proves nothing.

*✍️ Drafted by Claude Code*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants