# Contributing to Soapbox

Thank you for your interest in Soapbox!

When contributing to Soapbox, please first discuss the change you wish to make by [opening an issue](https://gitlab.com/soapbox-pub/soapbox/-/issues).

## Opening an MR (merge request)

1. Smash that "fork" button on GitLab to make a copy of the repo.
2. Clone the repo locally, then begin work on a new branch (eg not `develop`).
3. Push your branch to your fork.
4. Once pushed, GitLab should provide you with a URL to open a new merge request right in your terminal. If not, do it [manually](https://gitlab.com/soapbox-pub/soapbox/-/merge_requests/new).

### Ensuring the CI pipeline succeeds

When you push to a branch, the CI pipeline will run.

[Soapbox uses GitLab CI](https://gitlab.com/soapbox-pub/soapbox/-/blob/develop/.gitlab-ci.yml) to lint, run tests, and verify changes.
It's important this pipeline passes, otherwise we cannot merge the change.

New users of gitlab.com may see a "detatched pipeline" error.
If so, please check the following:

1. Your GitLab email address is confirmed.
2. You may have to have a credit card on file before the CI job will run.

## Text editor

We recommend developing Soapbox with [VSCodium](https://vscodium.com/) (or its proprietary ancestor, [VS Code](https://code.visualstudio.com/)).

This will help give you feedback about your changes _in the editor itself_ before GitLab CI performs linting, etc.

When this project is opened in Code it will automatically recommend extensions.
See [`.vscode/extensions.json`](https://gitlab.com/soapbox-pub/soapbox/-/blob/develop/.vscode/extensions.json) for the full list.
