Updating contributing guidelines (#3369)

This commit is contained in:
Mitch 2020-11-03 04:16:48 +00:00 committed by GitHub
parent 0f453ffa94
commit 38f0e7fa00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,6 +2,25 @@
As a free and open-source software project, we eagerly welcome contributions from the community. There are many ways to help contribute to AzuraCast's development, so you can make a difference without being a seasoned developer.
## Contributing Code Changes
AzuraCast is open-source software, and as part of this dedication to openness and transparency, we fully support contributions from members of the community who are skilled in the languages that we use to build our applications.
A majority of our repositories come with an `.editorconfig` file in the root, which will set many standards for indentation, punctuation and other style items for you automatically. You may need to enable EditorConfig support in your IDE of choice.
If your IDE does not support EditorConfig, the most important standard to remember that we follow is the PHP Framework Interoperability Group's [PSR-12 Extended Coding Style](https://www.php-fig.org/psr/psr-12/) standard.
Accessibility, security, and modern best practices are very important in AzuraCast's development. Any newly contributed code can, and should, take advantage of the full suite of new features made available in PHP 7.4 and newer.
Instructions for developing with AzuraCast locally are [available here](/developers). If you have questions about the guidelines above or about how to contribute to AzuraCast, please create a Github issue, join our [Slack](https://www.azuracast.com/slack) or [Discord server.](https://www.azuracast.com/discord) Please note that support is offered on an 'as available' basis.
Contributions are also welcome in the supporting technologies used to make AzuraCast possible, such as:
- Dockerfiles (see [our separate repositories](https://github.com/AzuraCast) for Docker containers)
- [Ansible configuration](https://github.com/AzuraCast/AzuraCast/tree/master/util/ansible) for Ansible installs
## Translating AzuraCast
Do you speak both English and another language? You can help us in a _big_ way by helping translate AzuraCast!
@ -20,35 +39,35 @@ Thankfully, we've adopted support for Docker, a tool that allows us to create pr
Although we use Docker in local development and on our testing and demonstration servers, sometimes a problem will occur that stops a particular host from working with our application. If you're a user affected by such an issue, we encourage you to advise us by creating a Github issue, especially if there is a known solution to the issue that we can apply.
## Contributing Code Changes
Despite AzuraCast's growing popularity, we almost never receive pull requests from contributors wanting to add functionality or resolve issues with our application's code. Don't let this discourage you, though; we _highly_ encourage skilled developers to contribute their expertise to our codebase whenever possible.
Due in part to the rarity of third-party contributions, we don't currently have a well-defined style guide, but when working in the application's main language (PHP), we rely heavily on the [PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md) and [PSR-2](http://www.php-fig.org/psr/psr-2/) code standards established by PHP-FIG.
Accessibility, security, and modern best practices are very important in AzuraCast's development. As of this document's latest update (January 2018), we are using PHP 7.2 on all platforms, so any newly contributed code can, and should, take advantage of the full suite of new features made available in PHP 7.0 and newer.
Contributions are also welcome in the supporting technologies used to make AzuraCast possible, such as:
- Dockerfiles (see [our separate repositories](https://github.com/AzuraCast) for Docker containers)
- [Ansible configuration](https://github.com/AzuraCast/AzuraCast/tree/master/util/ansible) for Ansible installs and Docker installation/updates
- Python for our auxiliary [station monitoring scripts](https://github.com/AzuraCast/station-watcher-python)
Instructions for developing with AzuraCast locally are [available here](https://www.azuracast.com/developers).
If you have questions about the guidelines above or about how to contribute to AzuraCast, please create a Github issue and we will be happy to assist you.
## The "Do Nots" of Contributing
While we appreciate everyone who is eager to contribute to this project and help it succeed, we must ask that some forms of interaction be avoided:
- Please **do not e-mail the project developer directly** with questions or issues specific to AzuraCast, unless you were specifically requested to do so as part of an ongoing issue. Contacting me directly prevents me from tracking all outstanding issues in one place, and harms the transparency that is essential to FOSS development. If, however, you are e-mailing me to offer me a paying job...go nuts.
- Please **do not create "this doesn't work" issues** that are just one sentence long and don't provide any insight into the scope of the issue, what changes might have triggered it, or what platform you're running on. At the very minimum, please always include what host OS you're using (i.e. Ubuntu 16.04), whether you're using the Docker or Ansible installation, and whether the problem first occurred after a recent update. For visual issues, screenshots are also greatly appreciated.
- Please **do not create "this doesn't work" issues** that are just one sentence long and don't provide any insight into the scope of the issue, what changes might have triggered it, or what platform you're running on. At the very minimum, please fill out the template provided, as it gives us a lot of information to debug and provide you with support.
- Please **refer to existing Github issues** if you are curious about the status of outstanding bug reports or new enhancement requests. Always remember that this is a volunteer project primarily built and maintained by a single developer, and manage your expectations accordingly.
## Financial contributions
## Support AzuraCast
We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/azuracast).
Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
### Support us on GitHub Sponsors
Donating through GitHub Sponsors is the best way to show your support for AzuraCast's development. You can change your pledge at any time through the Sponsors Page. GitHub will match every sponsor on our page so every donation counts.
[GitHub Sponsor Page][sponsor]
[sponsor]: https://github.com/sponsors/SlvrEagle23
### Donate to our Patreon
Donating to AzuraCast's Patreon is a great way to show your ongoing support for the project's continual development and updates. You can edit your pledge or cancel at any time.
<a href="https://www.patreon.com/bePatron?u=232463" target="_blank" title="Become a Patron"><img src="https://c5.patreon.com/external/logo/become_a_patron_button.png"></a>
### Donate via Ko-Fi
If you'd like to make a one-time donation through PayPal, you can do so by buying our lead developer a coffee (or two!) via the Ko-Fi payment service. Every donation is greatly appreciated.
<a href="https://ko-fi.com/A736ATQ" target="_blank" title="Buy me a coffee!"><img height='32' style='border:0px;height:32px;' src='https://az743702.vo.msecnd.net/cdn/kofi1.png?v=b' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>