113 lines
5.3 KiB
Markdown
113 lines
5.3 KiB
Markdown
# Contributing to GNU social
|
|
|
|
First of all, if you're reading this intending to contribute to GNU social,
|
|
thanks! Free software development only happens when people like you take an
|
|
interest in giving back to the software they themselves use, and their
|
|
community.
|
|
|
|
When contributing to this repository, please first discuss the change you wish to
|
|
make via issue, email, or any other method with the owners of this repository before
|
|
making a change.
|
|
|
|
There's a few files you should read before going forward with a merge request
|
|
or a patch submission. They detail what this file touches on in brief. They
|
|
are:
|
|
|
|
* `DOCUMENTATION/DEVELOPERS/CONTRIBUTING/coding_standards.md`: How your code should be structured and formatted to be
|
|
accepted into the GNU social codebase.
|
|
* `/DOCUMENTATION/DEVELOPERS/CONTRIBUTING/merge_request_checklist.md`: A quick checklist to review before submission.
|
|
|
|
|
|
## Merge Request Process
|
|
|
|
1. Run php-cs-fixer. We also recommend you to use tools like phpstan, phpactor, phpcs and phpmd
|
|
2. Run our unit tests (`./vendor/bin/phpunit --testsuite Core`)
|
|
3. Respect our [VERSIONING](https://notabug.org/diogo/gnu-social/src/nightly/DOCUMENTATION/VERSIONING.md) system
|
|
4. You may merge the Merge Request in once you have the sign-off of two other developers, or if you
|
|
do not have permission to do that, you may request the second reviewer to merge it for you
|
|
|
|
|
|
## Coding Standards
|
|
|
|
Since we will be expected to maintain your code once it's submitted, we ask you
|
|
to adhere to certain coding standards that make it easier for us to do so. If
|
|
code doesn't follow them, it will be rejected, so please read up on these.
|
|
|
|
|
|
## Bug Reports
|
|
|
|
Please report bugs to the issue tracker at
|
|
<https://notabug.org/diogo/gnu-social/issues> Avoid assigning the labels
|
|
yourself, as these are for the development team to assign priority and area of
|
|
coverage to a subject. Please only submit something here if you are certain it
|
|
is a bug or represents a feature enhancement that we do not presently have. If
|
|
you are uncertain whether it's a bug, please feel free to ask
|
|
at #social IRC channel at irc.libera.chat https://libera.chat/.
|
|
|
|
When reporting a bug, please try to include as much information as possible,
|
|
including the environment being run on (if it's a common LAMP stack just give
|
|
us version numbers of the main stack components, that's fine), and the specific
|
|
error you get. If you do not get a client-facing error, please check the PHP
|
|
error_log and ensure there isn't something silently reported there, as well as
|
|
the GNU social log. Try to include steps to reproduce the error as well, as if
|
|
we cannot reproduce the error, we can't fix it!
|
|
|
|
It is perfectly acceptable to reference the archive page of a discussion on the
|
|
mailing list for the bug report, by the way, as long as it includes all the
|
|
information we need for a bug report.
|
|
|
|
|
|
## Submitting Feature Requests / Enhancement Requests
|
|
|
|
Social media is constantly evolving, and we welcome ideas about how we can
|
|
change and evolve GNU social to keep it the excellent piece of software that it
|
|
is. However, there are a few things we ask you do when submitting feature
|
|
requests:
|
|
|
|
1. Understand that since we have a limited amount of developers and these people
|
|
contribute in their free time, we may prioritize things differently than you
|
|
value them. Oftentimes this is because certain requests involve less changes
|
|
to the existing codebase than others, and therefore this makes them easier
|
|
to add.
|
|
2. Please search the existing feature requests and enhancements to see if a
|
|
similar request exists. If one does but you have different ideas about how
|
|
to do it or what it should entail, please add a comment to the existing idea
|
|
rather than create a new one for your "version" of it. Duplicate submissions
|
|
mean we spend more time maintaining the tracker and less time actually
|
|
working on the codebase!
|
|
3. When outlining the way that you see something working, don't be afraid to be
|
|
as detailed as possible! We may not implement it exactly as you describe for
|
|
any variety of reasons, but the more concrete and fleshed out an idea is, the
|
|
easier it is for us to know what you want and be able to implement it in a
|
|
sane and secure fashion.
|
|
4. When describing a possible new idea and its mechanisms of operation, the key
|
|
words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
|
|
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the issue submission
|
|
are to be interpreted as described in RFC 2119.
|
|
<https://tools.ietf.org/html/rfc2119>
|
|
|
|
Finally, and just as a call back to the first point, realize just because we
|
|
might not rush to implement something, doesn't mean that we don't want to
|
|
implement it! We would rather take the time to do something right the first
|
|
time, then hurriedly apply a new idea, or a fix, only to have to patch it later.
|
|
|
|
|
|
## Branch of Code Submissions
|
|
|
|
Unless you've been specifically directed otherwise, all submissions of code
|
|
should be against the `nightly` branch, so make sure any modifications are based
|
|
on Nightly.
|
|
|
|
|
|
## Copyright / Licensing
|
|
|
|
You acknowledge that by submitting code to GNU social, you are licensing it under
|
|
the GNU AGPLv3 unless there is an extenuating circumstance where it would be
|
|
licensed differently (such as modifications to an external library we include
|
|
such as Stomp).
|
|
|
|
You also acknowledge that unless you assign a copyright explicitly, it will be
|
|
assumed to be assigned to GNU social.
|
|
|
|
Thanks for considering submission, and happy hacking!
|