Breaking changes coming to Collect v2021.2

Thanks to everyone who has provided feedback about ODK Collect, reported bugs and participated in its development process! We have a number of exciting changes coming in the next release including support for multiple projects.

We will also be making a number of breaking changes described below to modernize the code base and improve the experience for most users. As always, we welcome feedback on the threads linked from each item.

:date: Use year-based versioning
The next Collect release will have version v2021.2 because it will be the second release of 2021. This new style of versioning better reflects our parallel goals of maintaining stability for the majority of existing users while introducing exciting new functionality for those who want to access it. We hope it will also make it easier for users to notice when their version is very old. Discussion.

:world_map: Remove last ; from geotraces and geoshapes
We believe this change will have no negative effect. In prior versions of Collect, geotraces and geoshapes had format lat lon alt acc; lat lon alt acc; with a trailing semicolon at the end. For most analysis, the last ; must be removed. Additionally, Enketo does not include the trailing semicolon and can’t edit submissions that do. Discussion.

:wastebasket: Reduce functionality of update and delete from ContentProviders
We don’t believe this will affect anyone but if you use an external application that integrates deeply with ODK Collect, please read this post.

:clock3: Remove support for Aggregate v0.9.x formList API
If you have a custom server that implements the Aggregate v0.9.x API for form listing, you will not be able to connect to it with Collect v2021.2 and future releases. This is the HTTP response from Aggregate to the /formList endpoint (e.g. We are not aware of documentation for this API which was replaced by the OpenRosa API many years ago. If you can’t use an officially-supported server, we recommend changing your server /formList implementation to follow the OpenRosa specification. If you can’t do that, you can continue using ODK Collect v1.30.1 or older.

:heavy_check_mark: Require full conformance to OpenRosa APIs
If you have a custom server that implements the OpenRosa APIs, it will now be enforced more completely. If you do not implement portions of the API that are marked as MUST, your users may experience unexpected behavior. We are making this change to take advantage of the full responses guaranteed by the specification to improve performance and usability.

:file_folder: Remove support for settings import from .settings files
This undocumented feature was only used a handful of times in the last year. We now recommend using configuration by QR code, including by sharing image files.

P.S. If you'd like to stay up-to-date on future breaking changes, watch the breaking-changes tag.