Skip to content

test: Lock test dependencies and fix charging test - #118

Merged
Pijukatel merged 4 commits into
masterfrom
claude/fix-ppe-python-overshoot
Nov 9, 2026
Merged

Pijukatel merged 4 commits into
masterfrom
claude/fix-ppe-python-overshoot

Conversation

@Pijukatel

@Pijukatel Pijukatel commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Since apify 4.2.0 the Python SDK charges one event past an exhausted budget, like the JavaScript SDK, so the runtime aborts a capped Python run on its final event instead of letting it finish under the cap. The e2e test expects that, and the sample and the skill describe it.

The samples test the runtime, not the newest SDK or Crawlee, so each now installs fixed versions of both: apify 4.2.0 with crawlee 1.11.0 in Python, apify 3.7.2 with the Crawlee packages at 3.18.2 in JavaScript, the version its base image ships. The Playwright sample gets a lockfile like the other JavaScript samples, so the whole tree stays put, with one @crawlee/core for apify and the crawler alike. A release of either no longer changes what the tests run against.

Fixes the e2e pay-per-event jobs, red on every runtime since the SDK release.

@Pijukatel Pijukatel changed the title fix(ppe): follow the Python SDK's one-event overshoot at the cap test: follow the Python SDK's one-event overshoot at the cap Nov 3, 2026
Since apify 4.2.0 the Python SDK charges one event past an exhausted budget,
as the JavaScript SDK always did, so the platform notices and aborts the run.
The capped Python sample run therefore ends aborted on its final event rather
than under the cap; the e2e test, the sample and the skill say so, and the
sample requires that SDK.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ocuAL43YR6VPaBRrRfBbL
@Pijukatel
Pijukatel force-pushed the claude/fix-ppe-python-overshoot branch from 99b90b6 to 204da0a Compare November 3, 2026 16:02
The samples exercise the runtime, not the newest SDK or Crawlee, so each
installs a fixed version of both: apify 4.2.0 with crawlee 1.11.0 in Python,
apify 3.7.2 with the Crawlee packages at 3.18.1 in JavaScript, the versions
their lockfiles already resolved.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ocuAL43YR6VPaBRrRfBbL
@crawlee/playwright 3.18.1 pins @crawlee/core 3.18.1 while apify 3.7.2 resolves its ^3.14.1 range to
3.18.2, so the Playwright sample installed two copies and tsc refused apify's ProxyConfiguration for
the crawler's. Both TS samples now use @crawlee 3.18.2, the version their base image ships, and the
Playwright sample gets a lockfile so the resolution stays put.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ocuAL43YR6VPaBRrRfBbL

@apify-factory apify-factory left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Looks good, nothing blocking.

🏭 Factory review — ℹ️ not auto-approved

This change was reviewed but cannot be auto-approved: a gate failed, so the review cannot end in an approval.

check result
Static gates ❌ 11/16 — max-files, max-lines, file-extensions, deny-globs, patch-present
Review findings ✅ none
Reviewer escalation ✅ none
Juror 1 — claude-sonnet-5-5, adversarial ⏭️ skipped — a gate failed
Why it was not auto-approved

Failed gates:

  • max-files: 15 changed files, limit 10
  • max-lines: 3290 changed lines (+3218/-72), limit 200
  • file-extensions: disallowed extension: samples/actor_crawler/requirements.txt, samples/actor_playwright/package-lock.json, samples/actor_playwright/package.json, samples/actor_playwright_py/requirements.txt, samples/actor_py/requirements.txt, samples/actor_standby_py/requirements.txt, samples/actor_standby_ts/package-lock.json, samples/actor_standby_ts/package.json, samples/actor_standby_web/package-lock.json, samples/actor_standby_web/package.json, samples/actor_ts/package-lock.json, samples/actor_ts/package.json
  • deny-globs: samples/actor_playwright/package-lock.json matches **/package-lock.json; samples/actor_playwright/package.json matches **/package.json; samples/actor_standby_ts/package-lock.json matches **/package-lock.json; samples/actor_standby_ts/package.json matches **/package.json; samples/actor_standby_web/package-lock.json matches **/package-lock.json; samples/actor_standby_web/package.json matches **/package.json; samples/actor_ts/package-lock.json matches **/package-lock.json; samples/actor_ts/package.json matches /package.json; skills/actor-runtime/SKILL.md matches skills/
  • patch-present: no text diff for samples/actor_playwright/package-lock.json

The comments above are the review itself; this section only explains the approval decision. Push a change and request @apify-factory again to re-run it, or ask a human to review.

Reviewed a75e7d6d7 · workflow run

@Pijukatel Pijukatel changed the title test: follow the Python SDK's one-event overshoot at the cap test: Lock test dependencies and fix charging test Nov 9, 2026
@Pijukatel
Pijukatel merged commit 5eedb6f into master Nov 9, 2026
47 checks passed
@Pijukatel
Pijukatel deleted the claude/fix-ppe-python-overshoot branch November 9, 2026 09:18
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.

3 participants