Mastodon.py/CONTRIBUTING.md

2.1 KiB

If you'd like to contribute to Mastodon.py, here's some concrete areas that need work:

  • Features are currently up to date and mostly tested, but there are some areas where tests could be better, especially for all the wrong-argument and error state checks. Check the codecov page and try to add tests those areas.
  • Nodeinfo is currently just documented by reference to the spec. It could be documented better.
  • Nodeinfo currently just retrieves the 2.0 spec version. It should likely attempt to retrieve other versions as well, trying to get the most recent one available.
  • We currently don't use OAuth Proof Key for Code Exchange - that should be implemented at some point (for servers that support it).
  • Other implementations of the Mastodon API as well as Mastodon forks exist - it may be good to try to support these:
    • Figure out what they do different and file issues / document it
    • Where code can be written to support alternate implementations or different features, write code to do this
    • Write tests specific to these features
    • We now have a "feature set" parameter to support these better.
  • You can also check TODO.md for any open TODOs that have been added.

General guidelines

  • If you've discovered what you think is a bug, or are even just unclear on whether something is a bug, or about how to do some specific thing - just open an issue, we'll try to respond.
  • If you're contributing code, while it'd be great if you could provide tests, if setting up a mastodon server to test against is too much, feel free to go without - we can always add those later.
  • There is a .githooks directory that you can start using by running "$ git config --local core.hooksPath .githooks/". Right now, there is only a hook that checks whether you're trying to commit a credential.
  • We don't generally accept purely cosmetic changes, please avoid patches that only apply formatting.
  • If you have any questions about contributing or the library, you can either open up a discussion in the github discussions section, open an issue, or directly talk to @halcy@icosahedron.website on the Fediverse or .halcy on discord.