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

feat: remove project.ready() #392

Merged
merged 79 commits into from
Nov 28, 2023
Merged

feat: remove project.ready() #392

merged 79 commits into from
Nov 28, 2023

Conversation

gmaclennan
Copy link
Member

Re-opening #386 which merged into the wrong branch.

This PR lays some groundwork for #228, removing the project.ready() method and the need to await it. Writing the coreownership owner record is moved inside the core ownership function, and reading core ownership data will wait for the core ownership record to be written before reading data.

For now this simplifies the API (because we are only supporting local
sync, not remote sync over the internet) to:

- `project.$sync.getState()`
- `project.$sync.start()`
- `project.$sync.stop()`
- Events
    - `sync-state`

It's currently not possible to stop local discovery, nor is it possible
to stop sync of the metadata namespaces (auth, config, blobIndex). The
start and stop methods stop the sync of the data and blob namespaces.

Fixes #134. Stacked on #360, #358 and #356.
Fixes Add project method to download auth + config cores #233

Rather than call this inside the `client.addProject()` method, instead I
think it is better for the API consumer to call
`project.$waitForInitialSync()` after adding a project, since this
allows the implementer to give user feedback about what is happening.
This was a big lift, but necessary to be able to debug sync issues since
temporarily adding console.log statements was too much work, and
debugging requires knowing the deviceId associated with each message.
This caused a day of work: a bug from months back
@gmaclennan gmaclennan deleted the feat/remove-project-ready branch November 28, 2023 12:56
gmaclennan added a commit that referenced this pull request Nov 28, 2023
* main:
  fix: wait for index idle before returning data (#389)
  fix: fix file storage race condition (#388)
  feat: remove project.ready() (#392)
  feat: integrate sync and project invites (#362)
gmaclennan added a commit that referenced this pull request Nov 29, 2023
* main:
  fix: wait for index idle before returning data (#389)
  fix: fix file storage race condition (#388)
  feat: remove project.ready() (#392)
  feat: integrate sync and project invites (#362)
gmaclennan added a commit that referenced this pull request Nov 29, 2023
* main:
  fix: wait for index idle before returning data (#389)
  fix: fix file storage race condition (#388)
  feat: remove project.ready() (#392)
  feat: integrate sync and project invites (#362)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants