Skip to content

v2.0:

Latest

Choose a tag to compare

@snarfed snarfed released this 08 Feb 01:52
· 72 commits to main since this release
f160cc4

Breaking changes:

  • When creating a new repo, the first commit is now always empty. Repo.create_from_commit has been removed; all repos should now be created with Repo.create.
  • Removed Repo.apply_writes, format_commit, apply_commit, and writes_to_commit_ops. Use the new Storage.commit method instead.
  • If no sequence number has ever been allocated for a given NSID, Storage.last_seq now returns None, and does not initialize the sequence.

Non-breaking changes:

Add new feature to allocate sequence numbers from memcache, atomically, backed by the datastore in batches. Reduces datastore contention when writing commits at 5-10qps and higher. Enable by passing a MemcacheSequences to the DatastoreStorage constructor; configure with the MEMCACHE_SEQUENCE_BUFFER and MEMCACHE_SEQUENCE_BATCH environment variables.

  • Add new SUBSCRIBE_REPOS_SKIPPED_SEQ_WINDOW and SUBSCRIBE_REPOS_SKIPPED_SEQ_DELAY environment variables for subscribeRepos (firehose) serving.
  • AtpRemoteBlob:
    • Add repos property to track which repos have which blobs.
    • Switch image handling to pymediainfo, drop Pillow dependency.
  • did:
  • firehose:
    • Omit prevData in initial commits instead of setting it to null. (It's not a nullable field in subscribeRepos#commit.)
  • repo:
    • Add lost_seq kwarg to repo callback for marking sequence numbers lost.
  • storage:
    • Add new abstract Sequences class and concrete subclasses MemorySequences, DatastoreSequences, and MemcacheSequences.
    • Add new optional sequences kwarg to Storage and subclasses' constructors.
  • xrpc_repo:
    • describe_repo: add app.bsky.graph.listblock.
  • xrpc_sync:
    • get_blob: periodically check remote blobs with HTTP GET requests to see if they're still serving.
    • get_record: include MST covering proof blocks for record.
    • Implement listBlobs.
    • subscribeRepos/firehose: handle uncaught exceptions and continue serving (snarfed/bridgy-fed#2150).