One push back I would give about Eugen’s quote is about the number of api endpoints…
I haven’t checked the exact number mastodon has added since 2019, but I’m fairly certain it’s more than those needed by C2S (inbox, outbox, proxy, uploadMedia)!
@cwebber@laurenshof I think one thing we'll have to do in the near term is dual-stack on the API client side. Targeted apps with narrow functionality, like a share button, could support both APIs. It's relatively easy to discover which API(s) a server supports.
As these clients increase in functionality and popularity, we're going to see pressure by users on more "mainstream" servers like Mastodon to implement the ActivityPub API.
@cwebber@laurenshof There's also no reason whatsoever that any server needs to drop its support for the Mastodon API to implement the ActivityPub API. They're not mutually exclusive. Mastodon already implements almost all of the read-only part of the ActivityPub API; they really don't need to do a lot get the read-write portion working.
@cwebber@laurenshof we also don't have to wait for the Mastodon team to implement the ActivityPub API to use it with Mastodon. It could be implemented by an external group and merged into Mastodon. It could live in a fork like Hometown.
It could provide the ActivityPub API as an interface to clients, and use the Mastodon API as an interface to the server. The façade would just provide a thin translation layer between the two.
@virtuous_sloth yeah, I switched to a new system called Poetry, which fixes some of these. Want to add a bug report, and I will try to get to it this week? I have some other work to do on the code anyway.
@evan I'm not a developer but I am used to seeing a requirements.txt, creating a venv, and installing dependencies. Also seen that for standalone Python apps using pipx or uv, but don't know enough Python to figure out what the intent is in the setup or why it is expecting a Pipfile that isn't there or why it doesn't get generated if that's what's supposed to happen.
@evan Hey Evan... seeing such a nice CLI for your 'ap' project in its README..md, I decided to try playing with it but the setup tries to open a file called Pipfile which does not exist:
```shell $ rg Pipfile setup.py 4:# Function to read dependencies from Pipfile 8: pipfile_data = toml.load('Pipfile') $ find . -name Pipfile $ ```
This was after hitting several errors where I had to figure out which OS python package to install, including python3-setuptools, python3-toml, and pipenv.
@evan Obviously I hadn't done this yet. But I see you switched the instructions to use pipx and I also see that the name there is the full activitypub-cli so I guess you had to register something somewhere. Thanks!
So the install works and then I try my cosocial.ca account and, of course (in retrospect), it doesn't work because Mastodon doesn't implement the AP C2S API. I knew this but didn't have it in my brain in a form that would have made it obvious when looking at your code. LoL.