diff --git a/_tools/redirects/redirects.csv b/_tools/redirects/redirects.csv index a003118c3..9ce1c2c48 100644 --- a/_tools/redirects/redirects.csv +++ b/_tools/redirects/redirects.csv @@ -14,6 +14,7 @@ source,destination /community/contributing/docs_writing_guidelines.html,/contributing/documentation/docs_writing_guidelines.html /community/contributing/editor_and_docs_localization.html,/contributing/documentation/editor_and_docs_localization.html /community/contributing/index.html,/contributing/ways_to_contribute.html +/community/contributing/ways_to_contribute.html,/contributing/how_to_contribute.html /community/contributing/pr_workflow.html,/contributing/workflow/pr_workflow.html /community/contributing/testing_pull_requests.html,/contributing/workflow/testing_pull_requests.html /community/contributing/updating_the_class_reference.html,/contributing/documentation/updating_the_class_reference.html diff --git a/contributing/how_to_contribute.rst b/contributing/how_to_contribute.rst new file mode 100644 index 000000000..55637a50d --- /dev/null +++ b/contributing/how_to_contribute.rst @@ -0,0 +1,108 @@ +.. _doc_ways_to_contribute: + +How to contribute +================== + +The Godot Engine is free and open-source. Like any community-driven project, we rely on volunteer contributions. +On this page we want to showcase the various ways you as users can participate - to help you find the right starting place with the skillset you have. +Because contrary to popular opinion, we need more than just programmers on the project! + + +Fundraising +------------ + +- **Donate** + + We created the non-profit `Godot Foundation ` to be able to support the Godot Engine in both matters of finance and administration. + In action, this means we can hire people to work part-time or full-time on the project. + These jobs include engine development as well as related tasks like code reviews, production management, community & marketing efforts, and more. + + With as little as 5 Euro per month, you can help us keep going strong. + Currently, we are intending to hire more core developers, as to cover more ground with full-time specialists that suplement and guide volunteer work. + + `Join the Development Fund ` + +- **Donation Drives** + Think about your followers on social media, or other communities you are active in. + Use that reach to remind your social environment that even small contributions can make a difference, especially when done by a great number of people at the same time. + + Are you a content creator? Consider adding a link to the `Godot Development Fund ` to your descriptions. + If you do live streams, perhaps think about organizing a stream with donation incentives. + +.. - **Buy Official Merch** + +- **Publish Godot Games.** + You heard right, simply publishing a game #MadeWithGodot can positively impact the well-being of this project. + Your personal success elevates the engine to a viable alternative for other developers, growing the community further. + Additionally, it opens the doors for us to approach industry contacts aboout possible cooperations. + + +Technical contributions +------------------------ +- **Report bugs & other issues** + As active users of the engine, you are better equipped to identify bugs and other issues than anyone else. + To let us know about your findings, fill out `this bug report form ` on our GitHub. + Make sure to include as much information as possible to ensure these issues can easily be reproduced by others. + +- **Test Development Versions** + While it is recommended to use the stable releases for your projects, you can help us test dev releases, betas, and release candidates + by opening a copy of your project in them and checking what problems this introduces or maybe even solves. + Make sure to have a backup ready, since this can produce irreversible changes. + + Find recent development versions `here ` + +- **Contribute Engine Code (mainly C++)** + The engine development is mainly coordinated on our `Contributor RocketChat `, + so if you are serious about making PRs you should join us there! + + Read more about the **technical submission process**: :ref:`doc_first_steps` + + *Attention: this page is currently under re-contruction, and some teams might be more active than others* + For each subject area of the engine, there is a corresponding team to coordinate the work. + Join the linked chat to get more eyes on your related PR, learn about open todos, or partake in meetings. + For some areas, specialists might even be encouraged to step up as maintainer! + `List of teams ` + +- **Review Code Contributions** + All proposals need to be throroughly reviewed before they can be merged into main. + Help us get a headstart by participating in the code review process. + .. add a howto/chat to join + + Read more about our **style guide and other requirements**: :ref:`doc_pr_review_guidelines` + +- **Write Plugins (GDScript, C#, & more)** + Community addons are not directly included in the core engine download or repository, yet they provide essential quality of life upgrades for your fellow game developers. + Upload your plugins to the `Godot Asset Library ` to make them available to others. + +- **Demo projects (GDScript, C#, and making Assets)** + We provide new users with `demo projects ` so they can quickly test new features or get familiar with the engine in the first place. + At industry events, we might even exhibit these demo projects to showcase what Godot can do! + Help improve existing projects or supply your own to be added to the pool, and join the `Contributor RocketChat ` to talk about it. + +- **Documentation** + The documentation is one of the most essential parts of any tech project, yet the need to document new features and substential often gets overlooked. + Join the `Contributor RocketChat ` to improve the Godot Engine with your technical writing skills. + +- **Translations (spoken languages other than English)** + Are you interested in making the Godot Engine more accessible to non-English speakers? + Community-translations are hosted `here ` + + +Community support +------------------ + +- **Call for Moderators** + With a community of our size, we need people to step up as volunteer moderators in all kinds of places. + These teams are organized by the Godot Foundation, but would not function without the dedication of active community members like you. + + Have a look around your favorite community platform and you might come across open application calls. Currently we are looking for: + *List under construction* + +- **Answer tech-support questions** + With many new people discovering the Godot Engine recently, the need for peer-to-peer tech-support has never been greater. + Be it on the `Forum `, our `subreddit `, or on `Discord `, you can always brighten someone's day by helping them get their personal projects back on track. + +- **Create tutorials & more** + How did you get started with the Godot Engine? + Chances are you looked for learning materials outside of what the documentation provides. + Without content creators covering the game development process, there would not be this big of a community today. \ No newline at end of file diff --git a/contributing/ways_to_contribute.rst b/contributing/ways_to_contribute.rst deleted file mode 100644 index 13943009b..000000000 --- a/contributing/ways_to_contribute.rst +++ /dev/null @@ -1,178 +0,0 @@ -.. _doc_ways_to_contribute: - -Ways to contribute -================== - -Godot Engine is a non-profit, community-driven free and open source project. -Almost all (but our lead dev Juan, more on that below) developers are working -*pro bono* on their free time, out of personal interest and for the love of -creating a libre engine of exceptional quality. - -This means that to thrive, Godot needs as many users as possible to get -involved by contributing to the engine. There are many ways to contribute to -such a big project, making it possible for everybody to bring something -positive to the engine, regardless of their skill set: - -- **Be part of the community.** The best way to contribute to Godot and help - it become ever better is simply to use the engine and promote it by - word-of-mouth, in the credits or splash screen of your games, blog posts, tutorials, - videos, demos, gamedev or free software events, support on the Q&A, forums, - Contributors Chat, Discord, etc. Participate! - Being a user and advocate helps spread the word about our great engine, - which has no marketing budget and can therefore only rely on its community - to become more mainstream. - -- **Make games.** It's no secret that, to convince new users and especially the - industry at large that Godot is a relevant market player, we need great games - made with Godot. We know that the engine has a lot of potential, both for 2D - and 3D games, but given its young age we still lack big releases that will - draw attention to Godot. So keep working on your awesome projects, each new - game increases our credibility on the gamedev market! - -- **Get involved in the engine's development.** This can be by contributing - code via pull requests, testing the development snapshots or directly the - git *master* branch, report bugs or suggest enhancements on the issue - tracker, improve the official documentation (both the class reference and - tutorials) and its translations. - The following sections will cover each of those "direct" ways - of contributing to the engine. - -- **Donate.** Godot is a non-profit project, but it can still benefit from - user donations for many things. Apart from usual expenses such as hosting - costs or promotional material on events, we also use donation money to - acquire hardware when necessary (e.g. we used donation money to buy a - MacBook Pro to implement Retina/HiDPI support and various other - macOS-related features). - Most importantly, we also used donation money to hire core developers so they - can work full-time on the engine. Even with a low - monthly wage, we need a steady donation income to continue doing this, which - has been very beneficial to the project so far. So if you want to donate - some money to the project, check `our website `_ - for details. - -Contributing code ------------------ - -The possibility to study, use, modify and redistribute modifications of the -engine's source code are the fundamental rights that -Godot's `MIT `_ license grants you, -making it `free and open source software `_. - -As such, everyone is entitled to modify -`Godot's source code `_, and send those -modifications back to the upstream project in the form of a patch (a text file -describing the changes in a ready-to-apply manner) or - in the modern workflow -that we use - via a so-called "pull request" (PR), i.e. a proposal to directly -merge one or more Git commits (patches) into the main development branch. - -Contributing code changes upstream has two big advantages: - -- Your own code will be reviewed and improved by other developers, and will be - further maintained directly in the upstream project, so you won't have to - reapply your own changes every time you move to a newer version. On the - other hand it comes with a responsibility, as your changes have to be - generic enough to be beneficial to all users, and not just your project; so - in some cases it might still be relevant to keep your changes only for your - own project, if they are too specific. - -- The whole community will benefit from your work, and other contributors will - behave the same way, contributing code that will be beneficial to you. At - the time of this writing, over 2,000 developers have contributed code - changes to the engine! - -To ensure good collaboration and overall quality, the Godot developers -enforce some rules for code contributions, for example regarding the style to -use in the C++ code (indentation, brackets, etc.) or the Git and PR workflow. - -A good place to start is by searching for issues tagged as -`good first issue `_ -on GitHub. - -.. seealso:: Technical details about the PR workflow are outlined in a - specific section, :ref:`doc_pr_workflow`. - - Details about the code style guidelines and the ``clang-format`` - tool used to enforce them are outlined in - :ref:`doc_code_style_guidelines`. - -All pull requests must go through a review process before being accepted. -Depending on the scope of the changes, it may take some time for a maintainer -responsible for the modified part of the engine to provide their review. -We value all of our contributors and ask them to be patient in the meantime, -as it is expected that in an open source project like Godot, there is going to be -way more contributions than people validating them. - -To make sure that your time and efforts aren't wasted, it is recommended to vet the idea -first before implementing it and putting it for a review as a PR. To that end, Godot -has a `proposal system `_. Its -usage is encouraged to plan changes and discuss them with the community. Implementation -details can also be discussed with other contributors on the `Godot Contributors Chat `_. - -.. note:: Proposals are only required when working on an enhancement or a new feature. - Bug reports are sufficient for fixing issues. - -Testing and reporting issues ----------------------------- - -Another great way of contributing to the engine is to test development releases -or the development branch and to report issues. It is also helpful to report -issues discovered in stable releases, so that they can be fixed in -the development branch and in future maintenance releases. - -Testing development versions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To help with the testing, you have several possibilities: - -- Compile the engine from source yourself, following the instructions of the - :ref:`Compiling ` page for your platform. - -- Test official pre-release binaries when they are announced (usually on the - blog and other community platforms), such as alpha, beta and release candidate (RC) builds. - -- Test "trusted" unofficial builds of the development branch; just ask - community members for reliable providers. Whenever possible, it's best to - use official binaries or to compile yourself though, to be sure about the - provenance of your binaries. - -As mentioned previously, it is also helpful to keep your eyes peeled for -potential bugs that might still be present in the stable releases, especially -when using some niche features of the engine which might get less testing by -the developers. - -Filing an issue on GitHub -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Godot uses `GitHub's issue tracker `_ -for bug reports. When you start filing a bug report, you’ll be given a form to -fill out. Please try to follow it so that all issues are consistent and provide -the required information. - -Contributing to the documentation ---------------------------------- - -There are two separate resources referred to as "documentation" in Godot: - -- **The class reference.** This is the documentation for the complete Godot API - as exposed to GDScript and the other scripting languages. It can be consulted - offline, directly in Godot's code editor, or online at Godot :ref:`Class Reference - `. To contribute to the class reference, you have to edit the - XML file corresponding to the class and make a pull request. - See :ref:`doc_updating_the_class_reference` and :ref:`doc_class_reference_primer` - for more details. - -- **The tutorials and engine documentation and its translations.** - This is the part you are reading now, which is distributed in the HTML format. - Its contents are generated from plain text files in the reStructured Text - (rst) format, to which you can contribute via pull requests on the - `godot-docs `_ GitHub repository. - See :ref:`doc_contributing_to_the_documentation` for more details. - -Contributing translations -------------------------- - -To make Godot accessible to everyone, including users who may prefer resources -in their native language instead of English, our community helps translate both -the Godot editor and its documentation in many languages. - -See :ref:`doc_editor_and_docs_localization` for more details.