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

kobotoolbox / kpi / 29435767219
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: restore-deployment-data-query-ability
DEFAULT BRANCH: master
Ran 15 Jul 2026 05:20PM UTC
Jobs 10
Files 894
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

15 Jul 2026 05:15PM UTC coverage: 81.393% (+0.004%) from 81.389%
29435767219

push

github

web-flow
fix(assets): do not create version on all changes DEV-2432 (#7242)

### đŸ“Ŗ Summary
Only add entries to form history when the form content or name changes.


### 💭 Notes
Previously, the decision to not create a new version of an asset on save
was left to the caller. We now know we only want to create new versions
when either the asset content or the asset name has changed from the
previous version, so the responsibility of determining whether a version
has changed is moved to the `.save()` logic.

This does mean that every save requires one more query to get the latest
version. We could in theory keep the `create_version` flag to allow
callers to short-circuit this but we run the risk of missing content or
name changes if something in `.save()` changes the content in ways the
caller does not expect. This is not unlikely given how much additional
processing the `save()` method does. Ultimately if we want to make sure
we capture every content or name change, the responsibility needs to be
on the asset.

As noted in the comment, we don't use `asset.latest_version` because
that loads the whole version object, including the `version_content`
dictionary, which can be very large. Since we only need the name and the
hash, that's all we load.

In places where we previously called save with create_version = False,
adds a unit test to make sure we're still not creating new versions.


### 👀 Preview steps

1. â„šī¸ have an account and a project with at least 2 submissions
2. Navigate to the data table and sort by _id
3. Navigate to the `Form` tab and `Show full history`
4. 🔴 [on main] notice there is a new Form change entry
5. đŸŸĸ [on PR] no new entry

9274 of 12618 branches covered (73.5%)

18 of 19 new or added lines in 6 files covered. (94.74%)

11 existing lines in 2 files now uncovered.

30258 of 37175 relevant lines covered (81.39%)

5.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
84.18
64.29% kobo/apps/subsequences/utils/versioning.py

Coverage Regressions

Lines Coverage ∆ File
9
86.13
-1.44% kobo/apps/openrosa/libs/utils/logger_tools.py
2
63.64
-4.55% kobo/apps/stripe/utils/limit_enforcement.py
Jobs
ID Job ID Ran Files Coverage
1 29435767219.1 15 Jul 2026 05:20PM UTC 890
44.44
2 29435767219.2 15 Jul 2026 05:20PM UTC 890
52.96
3 29435767219.3 15 Jul 2026 05:21PM UTC 890
49.61
4 29435767219.4 15 Jul 2026 05:22PM UTC 892
50.94
5 29435767219.5 15 Jul 2026 05:22PM UTC 892
54.22
6 29435767219.6 15 Jul 2026 05:23PM UTC 892
66.65
7 29435767219.7 15 Jul 2026 05:23PM UTC 890
58.98
8 29435767219.8 15 Jul 2026 05:24PM UTC 892
45.8
9 29435767219.9 15 Jul 2026 05:24PM UTC 892
60.14
10 29435767219.10 15 Jul 2026 05:26PM UTC 894
68.96
Source Files on build 29435767219
  • Tree
  • List 894
  • Changed 9
  • Source Changed 0
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • e5cbc7c3 on github
  • Prev Build on release/2.026.27 (#29431514116)
  • Next Build on release/2.026.27 (#29437572618)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc