Skip to content
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

Create DataStoreQuery type to perform query #23867

Draft
wants to merge 3 commits into
base: trunk
Choose a base branch
from

Conversation

crazytonyli
Copy link
Contributor

As discussed on Slack, here is the PR for changing the associatedtype Query in protocol DataStore to a concrete type.

I still have the same concerns about this approach, though. There is no straightforward way to create a concrete Query type that would support all different kinds of "data store".

For example, the existing enum UserDataStoreQuery and the new DataStoreQuery in this PR won't support SQL queries. Vise-versa, If we create a SQL-like query (i.e., DataStoreQuery.where(key: String, equals: Value)), we won't be able to support this search with an in-memory dict/list of Swift structs.

I'm leaning towards keeping the existing DataStore implementation where it does not put any restrictions on the concrete type of DataStore.Query. It's up to the specific DataStore implementation to decide what type of Query it supports. Let me know what you think.

Regression Notes

  1. Potential unintended areas of impact

  2. What I did to test those areas of impact (or what existing automated tests I relied on)

  3. What automated tests I added (or what prevented me from doing so)

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding unit tests for my changes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Testing checklist:

  • WordPress.com sites and self-hosted Jetpack sites.
  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • VoiceOver.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • iPhone and iPad.
  • Multi-tasking: Split view and Slide over. (iPad)

@crazytonyli crazytonyli added this to the 25.6 milestone Nov 29, 2024
@crazytonyli crazytonyli requested a review from jkmassel November 29, 2024 10:35
@dangermattic
Copy link
Collaborator

1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@wpmobilebot
Copy link
Contributor

WordPress Alpha📲 You can test the changes from this Pull Request in WordPress Alpha by scanning the QR code below to install the corresponding build.
App NameWordPress Alpha WordPress Alpha
ConfigurationRelease-Alpha
Build Numberpr23867-75f15dc
Version25.4.2
Bundle IDorg.wordpress.alpha
Commit75f15dc
App Center BuildWPiOS - One-Offs #11141
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@wpmobilebot
Copy link
Contributor

Jetpack Alpha📲 You can test the changes from this Pull Request in Jetpack Alpha by scanning the QR code below to install the corresponding build.
App NameJetpack Alpha Jetpack Alpha
ConfigurationRelease-Alpha
Build Numberpr23867-75f15dc
Version25.4.2
Bundle IDcom.jetpack.alpha
Commit75f15dc
App Center Buildjetpack-installable-builds #10180
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

Base automatically changed from prototype/view-model-service-data-store to trunk December 1, 2024 01:59
@wpmobilebot wpmobilebot modified the milestones: 25.6, 25.7 Dec 16, 2024
@wpmobilebot
Copy link
Contributor

Version 25.6 has now entered code-freeze, so the milestone of this PR has been updated to 25.7.

@crazytonyli crazytonyli removed this from the 25.7 milestone Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants