nyastodon/CONTRIBUTING.md
Jeremy Kescher c40b063bd4
Merge remote-tracking branch 'upstream/main' into develop
# Conflicts:
#	.github/workflows/build-image.yml
#	lib/mastodon/version.rb
2022-11-12 14:38:59 +01:00

4.5 KiB

Contributing to Catstodon

Thank you for your interest in contributing to a fork of the glitch-soc project! Before you do anything here, please check if you can contribute to either the vanilla Mastodon project or glitch-soc first. If you still decide to contribute here instead, here are some guidelines, and ways you can help.

(This document is a bit of a work-in-progress, so please bear with us. If you don't see what you're looking for here, please don't hesitate to reach out!)

Planning

Right now a lot of the planning for this project takes place... in my head. Actually, just contact me via Matrix - contact info can be found on my personal website. You can also contribute via GitHub or kescherGit, if you have an account at either.

Documentation

Unlike glitch-soc, which has glitch-soc/docs (online at glitch-soc.github.io/docs/), this repo only documents things in a README. Sorry. Right now, we've mostly focused on the features that make this fork different from upstream, which, may I remind you, is already a fork.

Frontend Development

Check out the documentation here for more information on this topic. We'll be following that a bit.

Backend Development

See the guidelines below.


You should also try to follow the guidelines set out in the original CONTRIBUTING.md from mastodon/mastodon, reproduced below.

CONTRIBUTING

Contributing

Thank you for considering contributing to Mastodon 🐘

You can contribute in the following ways:

  • Finding and reporting bugs
  • Translating the Mastodon interface into various languages
  • Contributing code to Mastodon by fixing bugs or implementing features
  • Improving the documentation

If your contributions are accepted into Mastodon, you can request to be paid through our OpenCollective.

Bug reports

Bug reports and feature suggestions must use descriptive and concise titles and be submitted to GitHub Issues. Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.

Translations

You can submit translations via Crowdin. They are periodically merged into the codebase.

Crowdin

Pull requests

Please use clean, concise titles for your pull requests. Unless the pull request is about refactoring code, updating dependencies or other internal tasks, assume that the person reading the pull request title is not a programmer or Mastodon developer, but instead a Mastodon user or server administrator, and try to describe your change or fix from their perspective. We use commit squashing, so the final commit in the main branch will carry the title of the pull request, and commits from the main branch are fed into the changelog. The changelog is separated into keepachangelog.com categories, and while that spec does not prescribe how the entries ought to be named, for easier sorting, start your pull request titles using one of the verbs "Add", "Change", "Deprecate", "Remove", or "Fix" (present tense).

Example:

Not ideal Better
Fixed NoMethodError in RemovalWorker Fix nil error when removing statuses caused by race condition

It is not always possible to phrase every change in such a manner, but it is desired.

The smaller the set of changes in the pull request is, the quicker it can be reviewed and merged. Splitting tasks into multiple smaller pull requests is often preferable.

Pull requests that do not pass automated checks may not be reviewed. In particular, you need to keep in mind:

  • Unit and integration tests (rspec, jest)
  • Code style rules (rubocop, eslint)
  • Normalization of locale files (i18n-tasks)

Note: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run.

Documentation

The Mastodon documentation is a statically generated site. You can submit merge requests to mastodon/documentation.