mfw have to take a break from mastodon.py development because I got rate limited
(I have some tests that run against prod directly, both mastodon dot social and icosahedron dot website, and I do really want to run these before I push, since they validate my return value documentation matches reality)
Quote posts tentatively done. Still TODO: Asynchronous refresh, create docs for examples, packaging for JOSS
not me finding a bug wherein i tolower a base62 string before decoding while adding tests
I don't think there are many people other than me who have actually hit this error
anyways, it's 2am, and everything is implemented but I have some test failures. I will take care of them and do the release tomorrow.
test failures resolved, time to write some more docs, then we can push a new release, I think, and then JOSS archival
docs done, JOSS time.
well, first step in JOSS process is to tag a release. So I will wait until the tests pass on CI for all the python versions, and push a new release~

Mastodon.py version 2.2.0 is now out! 🦣🐍

There's a quite a few bug fixes (thank you to everyone who reported and/or fixed something), and support for 4.5 functionality: Quotes as well as async refreshing! Also quite a bit of additional testing, coverage is now above 90%.

As usual, please report any bugs you see, I should have the time to do quick fixes and maintenance release in the near future hopefully.

* Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.2.0
* Docs: https://mastodonpy.readthedocs.io/en/v2.2.0/
* PyPi: https://pypi.org/project/Mastodon.py/

#mastodev #mastodon #python #mastodonpy

Release v2.2.0 · halcy/Mastodon.py

Bumped support level to 4.5.8 Switch from grapheme to graphemeu package, which is more maintained (thanks @CyberTailor for the report). Fix a crash due to unbound local in stream_public (Thanks @el...

GitHub
nb: there will be (hopefully) a maintenance release in the coming days that will be docs changes only, to point the docs to the upcoming JOSS publication so we can have a proper citation target and researcher guidance, finally.

Worth mentioning: As part of this, I also updated the examples repo with some documentation of what those examples actually contain: https://github.com/halcy/MastodonpyExamples

That might be useful for a few people!

Of course, for specific functions, you can also always check the unit tests, they are pretty comprehensive.

#mastodev #mastodonpy

GitHub - halcy/MastodonpyExamples: Some examples for Mastodon.py

Some examples for Mastodon.py. Contribute to halcy/MastodonpyExamples development by creating an account on GitHub.

GitHub

One thing I *didn't* do as part of this release was add support for the websocket based streaming API. it would be really nice to support this, since it allows multiplexing and such. If anyone wants to give that a shot: https://github.com/halcy/Mastodon.py/issues/432

Or if you'd prefer to bribe me into working on that or on adding the feature or fixing the thing that you really want / need, https://ko-fi.com/h4lcy

Websocket streaming (compat w/ GoToSocial) · Issue #432 · halcy/Mastodon.py

Mastodon effectively has two streaming APIs, the server-sent events endpoints at /api/v1/streaming/THING, and the websocket stream at wss://INSTANCE/api/v1/streaming. Mastodon.py only uses the SSE ...

GitHub
did I say "in a few days"? nevermind that, the JOSS system worked \\ at speed // so uh, today it is

Well then: Instant new Mastodon.py release, v2.2.1 🐍🦣

Not much has changed from version 2.2.0 (which added support for interacting with all 4.5.0 Mastodon API functionality), the only change is the docs now point to the new JOSS paper for citing, which is a thing a few people have asked for. So here it is:

https://joss.theoj.org/papers/10.21105/joss.08946

(not a *very* exciting read, mind you, but it does cite Mastodon gGmbH, Akkoma Gang, GoToSocial Contributors and grunfink, which is funny to me because I feel that it nicely covers the Spectrum of Fedi Software Development Models)

Updated docs: https://mastodonpy.readthedocs.io/en/v2.2.1/

#mastodev #mastodonpy #python

Mastodon.py: A Python library for the Mastodon API

Diener et al., (2026). Mastodon.py: A Python library for the Mastodon API. Journal of Open Source Software, 11(120), 8946, https://doi.org/10.21105/joss.08946

Journal of Open Source Software
@halcy out of curiosity, what's the purpose of JOSS? Is it purely a way for academics who do significant research-relevant software development to make those outputs legible to libraries and universities or is there another goal?

@tomharris that, pretty much, yes, and to have a venue for publication of software that is often used in research that isn't just "idk freeform cff file and/or bibtex", with a not super complex (checking mainly whether the software does indeed meet inclusion criteria and for everything being well-formed and properly written down rather than novelty or such) but still existing and formalized review process.

For Mastodon.py specifically, someone actually did ask for a more proper way to cite it, so here we are!

@halcy thanks. yeah makes sense. It was just a little strange reading a paper-shaped thing that has all the paratext but no text. i guess that's the point though, the software is the text
@tomharris yeah, the guidelines for what is in scope ( https://joss.readthedocs.io/en/latest/submitting.html) and what you should and should not put in the PDF ( https://joss.readthedocs.io/en/latest/review_criteria.html ) are also quite clear
Submitting a paper to JOSS — JOSS documentation