• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 29579757313
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: beccagraber/DEV-2497-upgrade-openapi-version
DEFAULT BRANCH: master
Ran 17 Jul 2026 12:22PM UTC
Jobs 10
Files 895
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Jul 2026 12:18PM UTC coverage: 81.703%. Remained the same
29579757313

push

github

web-flow
fix(versions): allow date_deployed to be false in version responses DEV-1823 (#7249)

### đŸ“Ŗ Summary

Corrects the deployment date the API reports for form versions that were
never deployed.

### 📖 Description

In a form's version history, versions that were never deployed have no
deployment date. The API already returns this correctly, but its
published type description wrongly claimed the deployment date is always
a date. This corrects the description so the value is understood as
either a date or "not deployed" — matching what the API actually
returns. There is no visible change in the app.

### 💭 Notes

- Root cause: `AssetVersionListSerializer.get_date_deployed` returns
`obj.deployed and obj.date_modified`, i.e. a datetime when deployed and
the literal `false` otherwise. The OpenAPI schema declared it as a plain
`date-time`, which propagated to the orval client as `date_deployed:
string`.
- Fix is schema-only: `DateDeployedField` now maps to `oneOf:
[date-time, false]` in
`kpi/schema_extensions/v2/versions/extensions.py`. The committed
`static/openapi/schema_v2.*` and `jsapp/js/api/*` were regenerated (not
hand-edited); orval collapses the boolean `enum:[false]` to `boolean`,
so the emitted type is `string | boolean`.
- Frontend: removed the now-unneeded `as string | false` casts (and the
`TODO â€Ļ DEV-1823`) in `FormHistory.tsx`.

### 👀 Preview steps

1. â„šī¸ open the version **History** of a project that has a deployed
version and a later undeployed form change
2. the table shows "Deployment" for deployed rows and "Form change" for
undeployed rows — unchanged by this PR
3. 🔴 [on main] at `/api/v2/docs/`, `VersionListResponse.date_deployed`
is typed as a `date-time` string only, even though the API returns
`false` for undeployed versions
4. đŸŸĸ [on PR] `date_deployed` is typed as a `date-time` **or** `false`,
matching the real response

9447 of 12759 branches covered (74.04%)

0 of 1 new or added line in 1 file covered. (0.0%)

30583 of 37432 relevant lines covered (81.7%)

5.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
79.31
0.0% kpi/schema_extensions/v2/versions/extensions.py
Jobs
ID Job ID Ran Files Coverage
1 29579757313.1 17 Jul 2026 12:22PM UTC 891
44.34
2 29579757313.2 17 Jul 2026 12:22PM UTC 891
49.47
3 29579757313.3 17 Jul 2026 12:22PM UTC 891
52.89
4 29579757313.4 17 Jul 2026 12:24PM UTC 893
45.69
5 29579757313.5 17 Jul 2026 12:24PM UTC 893
54.14
6 29579757313.6 17 Jul 2026 12:25PM UTC 891
59.12
7 29579757313.7 17 Jul 2026 12:26PM UTC 893
66.94
8 29579757313.8 17 Jul 2026 12:27PM UTC 893
50.8
9 29579757313.9 17 Jul 2026 12:27PM UTC 893
60.26
10 29579757313.10 17 Jul 2026 12:29PM UTC 895
69.23
Source Files on build 29579757313
  • Tree
  • List 895
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 82f7c59a on github
  • Prev Build on main (#29575061593)
  • Next Build on main (#29587715362)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc