-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accept forms with entities version 2023.1 #735
Accept forms with entities version 2023.1 #735
Conversation
If Collect (or any other client) is going to support v2022.1 and v2023.1, that would mean to me that we won't be able to release a version that just support "create" for entities right? My thinking we'd need to have both "create" and "update" as soon as we're doing any offline storage or we'd not properly be supporting v2023.1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we only have to make the decision for ODK Collect v2023.3.1 for now. Because it doesn't have any offline entities support, it is accurate that it supports When we work on v2024.2 with offline entities support, we could choose to only support That said, I think we could also say that a version of Collect with offline More dramatic ideas we could consider are separating out client and server versions or implementing a "capabilities"-style API where clients can say what they're able to do and the server can decide whether or not to proceed. The latter would allow a project manager to do something like toggle between requiring offline-capable clients or accepting ones without offline entities. |
Great point!
Yeah I like this. Would that mean just releasing versions of the spec with the same literal XML spec, but "expectations" around behaviour?
Sounds like you've got some plans around avoiding this, so hopefully it's not a road we need to go down. |
Related to XLSForm/pyxform#664 (comment)
This accepts forms that specify entity updates but doesn't actually do anything with the update directive. This is ok because for now there's no local concept of permanent entity storage and updates will always be processed server-side.
What has been done to verify that this works as intended?
Added tests
Why is this the best possible solution? Were any other approaches considered?
Previously there was a single supported version stored in a public constant. I changed that to a list of supported versions in a private constant. I think the constant was previously public only for use in tests and it's unlikely it was accessed by any other code so it feels ok to make it private without considering this a breaking change.
I think explicitly enumerating supported versions is the least error-prone way to go.
How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
This one feels very low risk. There's testing to ensure the previous version is still supported.
Do we need any specific form for testing your changes? If so, please attach one.
See tests.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No