Updated contributing guidelines

the-real-herowl 2024-05-19 01:34:43 +02:00
parent 1c9594ae27
commit 4353f0dd99
2 changed files with 58 additions and 50 deletions

@ -18,9 +18,8 @@ Polishing existing features is always welcome.
* [Mesehub](https://git.minetest.land/VoxeLibre/VoxeLibre) * [Mesehub](https://git.minetest.land/VoxeLibre/VoxeLibre)
* [Discord](https://discord.gg/xE4z8EEpDC) * [Discord](https://discord.gg/xE4z8EEpDC)
* [YouTube](https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A) * [YouTube](https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A)
* [IRC](https://web.libera.chat/#mineclone2) * [Matrix](https://app.element.io/#/room/#voxelibre:matrix.org)
* [Matrix](https://app.element.io/#/room/#mc2:matrix.org) * [Reddit](https://www.reddit.com/r/VoxeLibre/)
* [Reddit](https://www.reddit.com/r/MineClone2/)
* [Minetest forums](https://forum.minetest.net/viewtopic.php?f=50&t=16407) * [Minetest forums](https://forum.minetest.net/viewtopic.php?f=50&t=16407)
* [ContentDB](https://content.minetest.net/packages/wuzzy/mineclone2/) * [ContentDB](https://content.minetest.net/packages/wuzzy/mineclone2/)
* [OpenCollective](https://opencollective.com/mineclone2) * [OpenCollective](https://opencollective.com/mineclone2)
@ -60,8 +59,7 @@ actually an issue with Minetest itself, and if it is, head to the
[Minetest issue tracker](https://github.com/minetest/minetest/issues) [Minetest issue tracker](https://github.com/minetest/minetest/issues)
instead. instead.
* If you need any help regarding creating a Mesehub account or opening * If you need any help regarding creating a Mesehub account or opening
an issue, feel free to ask on the Discord / Matrix server or the IRC an issue, feel free to ask on the Discord or Matrix space.
channel.
The link to the mesehub registration page is: https://git.minetest.land/user/sign_up The link to the mesehub registration page is: https://git.minetest.land/user/sign_up
(It appears to sometimes get lost on the page itsself) (It appears to sometimes get lost on the page itsself)
@ -117,8 +115,7 @@ therefore we are always looking for asset contributions.
To contribute assets, it can be useful to learn git basics and read To contribute assets, it can be useful to learn git basics and read
the section for Programmers of this document, however this is not required. the section for Programmers of this document, however this is not required.
It's also a good idea to join the Discord server It's also a good idea to join the Discord server and/or Matrix space.
(or alternatively IRC or Matrix).
#### Textures #### Textures
For textures we prefer original art, but in the absence of that will accept For textures we prefer original art, but in the absence of that will accept
@ -162,7 +159,7 @@ translation files of the mods that you want to update. You can add
support for all mods, just some of them or only one mod; you can update support for all mods, just some of them or only one mod; you can update
the translation file entirely or only partly; basically any effort is the translation file entirely or only partly; basically any effort is
valued. If your changes are small, you can also send them to developers valued. If your changes are small, you can also send them to developers
via E-Mail, Discord, IRC or Matrix - they will credit you appropriately. via E-Mail, Discord or Matrix - they will credit you appropriately.
#### Things to note #### Things to note
You can use the script at `tools/check_translate_files.py` to compare You can use the script at `tools/check_translate_files.py` to compare
@ -205,12 +202,17 @@ decisions. Also, note that a lot of discussion takes place on the
Discord server, so it's definitely worth checking it out. Discord server, so it's definitely worth checking it out.
### Funding ### Funding
You can help pay for our infrastructure (Mesehub) by donating to our You can help pay for our infrastructure (Mesehub) and other unforeseen
OpenCollective link (See Links section). expenses (in the last few years, only payments for Mesehub have been done)
by donating to our OpenCollective link (See Links section).
### Crediting ### Crediting
If you opened or have contributed to an issue, you receive the If you opened or have contributed to an issue, you receive the
`Community` role on our Discord (after asking for it). `Community` role on our Discord (after asking for it).
If you have been an author of a PR that got merged or contributed
significantly to art that got merged into the game, you receive the
`Contributor` role on our Discord (after asking for it).
Please note that what counts as "significant" is decided by Maintainers.
OpenCollective Funders are credited in their own section in OpenCollective Funders are credited in their own section in
`CREDITS.md` and receive a special role "Funder" on our discord (unless `CREDITS.md` and receive a special role "Funder" on our discord (unless
they have made their donation Incognito). they have made their donation Incognito).
@ -240,7 +242,7 @@ you'd like to take care of it, to avoid duplicate work.
### Don't hesitate to ask for help ### Don't hesitate to ask for help
We appreciate any contributing effort to VoxeLibre. If you are a We appreciate any contributing effort to VoxeLibre. If you are a
relatively new programmer, you can reach us on Discord, Matrix or IRC relatively new programmer, you can reach us on Discord or Matrix
for questions about git, Lua, Minetest API, VoxeLibre codebase or for questions about git, Lua, Minetest API, VoxeLibre codebase or
anything related to VoxeLibre. We can help you avoid writing code that anything related to VoxeLibre. We can help you avoid writing code that
would be deemed inadequate, or help you become familiar with VoxeLibre would be deemed inadequate, or help you become familiar with VoxeLibre
@ -252,40 +254,49 @@ scenarios by testing every time before merging it, but if your merged
work causes problems, we ask you fix the issues as soon as possible. work causes problems, we ask you fix the issues as soon as possible.
### Changing Gameplay ### Changing Gameplay
Pull Requests that change gameplay have to be properly researched and Pull Requests that change gameplay are always subject to discussion.
need to state their sources. These PRs also need the maintainer's approval Opinions from the community on such PRs are valued, and Maintainer
before they are merged. should approve the concept (which is usually granted) as well as
You can use these sources: the implementation (for which changes are often requested for either
code quality or game design reasons).
* Testing things inside of Minecraft (Attach screenshots / video footage
of the results)
* Looking at [Minestom](https://github.com/Minestom/Minestom) code. An open source Minecraft Server implementation
* [Official Minecraft Wiki](https://minecraft.fandom.com/wiki/Minecraft_Wiki)
(Include a link to the specific page you used)
### Guidelines ### Guidelines
#### Git Guidelines #### Git Guidelines
* Pushing to master is disabled - don't even try it. * Pushing to master is disabled - don't even try it!
* Every change is tracked as a PR. * Every change is tracked as a PR
* All but the tiniest changes require at least one approval from a Developer * All changes require at least one approval from a Developer
* Maintainers may merge PRs without formal approval, but should also
take others' opinions and testing into account
* To update branches we use rebase not merge (so we don't end up with * To update branches we use rebase not merge (so we don't end up with
excessive git bureaucracy commits in master) excessive git bureaucracy commits in master)
* We use merge to add the commits from a PR/branch to master * We use merge to add the commits from a PR/branch to master
* Smaller PRs may be squashed before merging (especially if the commit history
on them isn't valuable), but when in doubt prefer merging
* Manual merging may be done by a Maintainer if there are technical problems
with the branch, with Gitea, or the PR had been merged to from master and
the author can't fix it for whatever reason
* Submodules should only be used if a) upstream is highly reliable and * Submodules should only be used if a) upstream is highly reliable and
b) it is 100% certain that no VL specific changes to the code will be b) it is 100% certain that no VL specific changes to the code will be
needed (this has never been the case before, hence VL is submodule free so far) needed (this has never been the case before, hence VL is submodule free so far)
* Subtrees may be used for including outside mods that don't need changes
in the foreseeable future
* Commit messages should be descriptive * Commit messages should be descriptive
* Try to group your submissions best as you can: * Try to group your submissions best as you can:
* Try to keep your PRs small: In some cases things reasonably be can't * Try to keep your PRs small: In some cases things reasonably be can't
split up but in general multiple small PRs are better than a big one. split up but in general multiple small PRs are better than a big one
* Similarly multiple small commits are better than a giant one. (use git commit -p) * Similarly multiple small commits are better than a giant one. (use git commit -p)
#### Code Guidelines #### Code Guidelines
* Each mod must provide `mod.conf`. * Each mod must provide `mod.conf`.
* Mod names are snake case, and newly added mods start with `mcl_`, e.g. * Mod names are snake case, and newly added mods (or substantially changed mods
`mcl_core`, `mcl_farming`, `mcl_monster_eggs`. Keep in mind Minetest that are included from the outside) start with `vl_`, e.g.
`vl_hollow_logs`, . Keep in mind Minetest
does not support capital letters in mod names. does not support capital letters in mod names.
* In the past mods were prefixed with `mcl_`, e.g.
`mcl_core`, `mcl_farming`, `mcl_monster_eggs`. New mods should **never** use this prefix.
* Mods included from outside with no significant changes to the API
(especially those using git-subtree or such) aren't prefixed.
* To export functions, store them inside a global table named like the * To export functions, store them inside a global table named like the
mod, e.g. mod, e.g.
@ -359,17 +370,21 @@ end
### Developer status ### Developer status
Active and trusted contributors are often granted write access to the Active and trusted contributors are often granted write access to the
VoxeLibre repository as a contributor. Those that have demonstrated the right VoxeLibre repository as a contributor. This means that they can push
technical skills and behaviours may be granted developer access. These are the directly to the branches of our repo (except for `master`).
most trusted contributors who will contribute to ensure coding standards and Pushing to others' branches without asking is discouraged, open a PR
processes are followed. targeting that branch instead (PRs can target any branch).
Those that have demonstrated the right technical skills and behaviour
may be granted developer access. These are the most trusted contributors
who will contribute to ensure coding standards and processes are followed.
#### Developer responsibilities #### Developer responsibilities
- If you have developer/contributor privileges you can just open a new branch - If you have developer/contributor privileges you can just open a new branch
in the VL repository (which is preferred). From that you create a pull request. in the VL repository (which is preferred). From that you create a pull request.
This way other people can review your changes and make sure they work This way other people can review your changes and make sure they work
before they get merged. before they get merged.
- If you do not (yet) have developer privs you do your work on a branch - If you do not (yet) have contributor or developer privs you do your work on a branch
on your private repository e.g. using the "fork" function on mesehub. on your private repository e.g. using the "fork" function on mesehub.
- Any developer is welcome to review, test and approve PRs. A maintainer may prefer - Any developer is welcome to review, test and approve PRs. A maintainer may prefer
to merge the PR especially if it is in a similar area to what has been worked on to merge the PR especially if it is in a similar area to what has been worked on
@ -392,9 +407,9 @@ merged.
- Resolving conflicts and problems within the community - Resolving conflicts and problems within the community
#### Current maintainers #### Current maintainers
* AncientMariner - responsible for gameplay review, publishing releases, * AncientMariner - responsible for gameplay review, publishing releases
* Herowl - responsible for gameplay review, publishing releases,
technical guidelines technical guidelines
* Nicu - responsible for community related issues
#### Release process #### Release process
* Run `tools/generate_ingame_credits.lua` to update the ingame credits * Run `tools/generate_ingame_credits.lua` to update the ingame credits
@ -417,6 +432,5 @@ become part of a free/libre software.
### Crediting ### Crediting
Contributors, Developers and Maintainers will be credited in Contributors, Developers and Maintainers will be credited in
`CREDITS.md`. If you make your first time contribution, please add `CREDITS.md`. There are also Discord roles for Contributors,
yourself to this file. There are also Discord roles for Contributors,
Developers and Maintainers. Developers and Maintainers.

@ -81,7 +81,7 @@ The VoxeLibre repository is hosted at Mesehub. To contribute or report issues, h
* YouTube: <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A> * YouTube: <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A>
* ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/> * ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/>
* OpenCollective: <https://opencollective.com/mineclone2> * OpenCollective: <https://opencollective.com/mineclone2>
* Mastodon: <https://fosstodon.org/@MineClone2> * Mastodon: <https://fosstodon.org/@VoxeLibre>
* Lemmy: <https://lemm.ee/c/voxelibre> * Lemmy: <https://lemm.ee/c/voxelibre>
* Matrix space: <https://app.element.io/#/room/#voxelibre:matrix.org> * Matrix space: <https://app.element.io/#/room/#voxelibre:matrix.org>
* Minetest forums: <https://forum.minetest.net/viewtopic.php?f=50&t=16407> * Minetest forums: <https://forum.minetest.net/viewtopic.php?f=50&t=16407>
@ -89,16 +89,10 @@ The VoxeLibre repository is hosted at Mesehub. To contribute or report issues, h
* IRC (barely used): <https://web.libera.chat/#mineclone2> * IRC (barely used): <https://web.libera.chat/#mineclone2>
## Target ## Target
- Create a stable, moddable, free/libre game based on Minecraft - Create a stable, peformant, moddable, free/libre game inspired by Minecraft
on the Minetest engine with polished features, usable in both using the Minetest engine, usable in both singleplayer and multiplayer.
singleplayer and multiplayer. Currently, a lot of **Minecraft Java - Currently, a lot of features are already implemented.
Edition** features are already implemented and polishing existing Polishing existing features is always welcome.
features are prioritized over new feature requests.
- Implement features targetting
**Current Minecraft versions + OptiFine** (OptiFine only as far as supported
by the Minetest Engine).
- Create a performant experience that will run relatively
well on really low spec computers.
## Completion status ## Completion status
This game is currently in **beta** stage. This game is currently in **beta** stage.