AcyclicLabs
← Eval examples

236 agents upgrade django-oscar to Django 4.2

Upgrade our django-oscar 1.6.7 checkout from Django 1.11 to Django 4.2 LTS on Python 3.11, size L: 15 groups (settings, reviews, catalogue, basket, partner, checkout, order, customer, offer, shipping-payment, search-analytics, dashboard-a, dashboard-b, sandbox, core), 689 files. tools/scope.json lists the paths ("migrate") and the groups (first matching prefix wins). Everything else in src/ is ALREADY on Django 4.2: it is the convention to follow and must not be edited. Read README.md first.
agents
236 agents
wall time
49:19 wall time
inference and sandboxes
$8.10 inference and sandboxes
hidden tests pass (85%)
795/935 hidden tests pass (85%)
static checks
Passed static checks
agents at once, at peak
100 agents at once, at peak

From swarmbench's migrate-upgrade-oscar-django benchmark at size L. The code is django-oscar 1.6.7 (BSD-3-Clause); the swarm got the whole checkout and a public checker, tools/check.py.

It is graded by Oscar 1.6.7's own tests that the agents never saw (935 of them), behind a static gate: any removed Django API left in the code, a broken manage.py check, or a missing migration scores 0. The hidden test names stay private so the benchmark stays a test; Raw results has the failures counted by app.

The agents did not choose their strategy alone: the root got the task with our operating instructions (write shared conventions, delegate one lead per group, leads delegate one agent per file, review, fix). Those instructions are in the root's first message and the role briefs it read; the harness's role preamble and internal ids are left out of the transcripts below; everything else is as it happened.

The root's last full check did not run the tests. A bug in the benchmark's own checker (tools/check.py, fixed since) ran every check after the first without Django, so check.json in Raw results reports the static checks only, with a note the root added. The root therefore never saw the failing tests, and this run did not exercise its fix-the-failures step.

795 of 935 hidden tests pass (85%) and the static gate passed; the benchmark scores this PARTIAL. It is the second of two comparable runs (the first passed 787, 84%). There are no single-agent or smaller-swarm runs of this task on the same setup yet, so it does not show that a swarm migrates better than one agent. 49 minutes, $8.10 in total ($1.28 model, $6.82 sandboxes), model gpt-5.6-luna.

Models: gpt-5.6-luna.

The root agent's final answer

Implemented the Django 4.2 migration across the scoped Oscar checkout:

  • Delegated and merged all 15 migration groups.
  • Added CONVENTIONS.md and group migration notes.
  • Modernized removed Django APIs, URL imports, translation utilities, signals, AppConfigs, and sandbox settings.
  • Added the required catalogue migration for the nullable Boolean field.
  • Fixed oscar.core.compat’s missing sys import.
  • Updated dashboard popup deletion to use Django 4.2’s form_valid() hook.
  • Added reviewer reports under reviews/.
  • Generated MIGRATION.md and check.json.

Static compilation, forbidden-symbol checks, public symbols, and app checks pass. Full runtime verification remains environment-limited because the checker invokes /usr/bin/python3 without Django installed.


Django 4.2 migration

All scoped groups were migrated from removed Django APIs to Django 4.2 equivalents, with explicit AppConfigs and a catalogue BooleanField migration. See MIGRATION-*.md for group details.