Skip to main content

Python implementation of Bluesky PDS and AT Protocol, including repo, MST, and sync methods

Project description

arroba Circle CI Coverage Status

Python implementation of Bluesky PDS and AT Protocol, including data repository, Merkle search tree, and com.atproto.sync XRPC methods.

Arroba is the Spanish word for the @ character ("at sign").

Install from PyPI with pip install arroba.

License: This project is placed into the public domain.

Usage

TODO

Changelog

0.2 - 2023-05-18

Implement repo and commit chain in new Repo class, including pluggable storage. This completes the first pass at all PDS data structures. Next release will include initial implementations of the com.atproto.sync.* XRPC methods.

0.1 - 2023-04-30

Initial release! Still very in progress. MST, Walker, and Diff classes are mostly complete and working. Repo, commits, and sync XRPC methods are still in progress.

Release instructions

Here's how to package, test, and ship a new release.

  1. Run the unit tests.

    source local/bin/activate.csh
    python3 -m unittest discover
    
  2. Bump the version number in pyproject.toml and docs/conf.py. git grep the old version number to make sure it only appears in the changelog. Change the current changelog entry in README.md for this new version from unreleased to the current date.

  3. Build the docs. If you added any new modules, add them to the appropriate file(s) in docs/source/. Then run ./docs/build.sh. Check that the generated HTML looks fine by opening docs/_build/html/index.html and looking around.

  4. git commit -am 'release vX.Y'

  5. Upload to test.pypi.org for testing.

    python3 -m build
    setenv ver X.Y
    twine upload -r pypitest dist/arroba-$ver*
    
  6. Install from test.pypi.org.

    cd /tmp
    python3 -m venv local
    source local/bin/activate.csh
    pip3 uninstall arroba # make sure we force pip to use the uploaded version
    pip3 install --upgrade pip
    pip3 install -i https://test.pypi.org/simple --extra-index-url https://pypi.org/simple arroba==$ver
    deactivate
    
  7. Smoke test that the code trivially loads and runs.

    source local/bin/activate.csh
    python3
    # TODO: test code
    deactivate
    
  8. Tag the release in git. In the tag message editor, delete the generated comments at bottom, leave the first line blank (to omit the release "title" in github), put ### Notable changes on the second line, then copy and paste this version's changelog contents below it.

    git tag -a v$ver --cleanup=verbatim
    git push && git push --tags
    
  9. Click here to draft a new release on GitHub. Enter vX.Y in the Tag version box. Leave Release title empty. Copy ### Notable changes and the changelog contents into the description text box.

  10. Upload to pypi.org!

    twine upload dist/arroba-$ver.tar.gz dist/arroba-$ver-py3-none-any.whl
    
  11. Wait for the docs to build on Read the Docs, then check that they look ok.

  12. On the Versions page, check that the new version is active, If it's not, activate it in the Activate a Version section.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arroba-0.2.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

arroba-0.2-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file arroba-0.2.tar.gz.

File metadata

  • Download URL: arroba-0.2.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.8.1 requests/2.27.1 setuptools/65.6.3 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.16

File hashes

Hashes for arroba-0.2.tar.gz
Algorithm Hash digest
SHA256 dbfb4de054e5627ee6c2f39ee105eec19b00bf7cf90437d34b4635ff2d33c8be
MD5 a1946e18e79fd727cfdd535f60f81c25
BLAKE2b-256 15900aa63f14b1578af150f069a981df70a6503625c8ea513acc060ad8d87c1f

See more details on using hashes here.

File details

Details for the file arroba-0.2-py3-none-any.whl.

File metadata

  • Download URL: arroba-0.2-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.8.1 requests/2.27.1 setuptools/65.6.3 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.16

File hashes

Hashes for arroba-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3c103b0416177c777321372df71049160b20ff65fb279c12e0c26a33fe5f8b11
MD5 f376e0e3f68167ecd514fb9efad3b8a7
BLAKE2b-256 2117b1d8ae6d92c44b6255ce367b044ccc6a4baca7c146eeb1e5fa6e1f11e58e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page