Updated on 2022-06-22 15:23 UTC by Expertcoderz
Adonis is an ever expanding, frequently updated, slightly complicated, system. In order to keep Adonis functional and somewhat readable rather than a tangled mess, here are some guidelines in the form of an FAQ to consider before submitting a pull request:
A: @Sceleratis, as well as our community maintainers (viz. @Coasterteam, @joritochip and @Expertcoderz) are responsible for the final approval and merging of PRs. When a PR is opened, relevant label(s) may first be assigned to it for the purpose of organization. Anyone in the community may submit code reviews for PRs and make discussions on the PR's page.
A: Anything within reason! Contributions can be to Adonis itself or the wiki (or both!) As long as your addition or change is useful and doesn't break something, and makes sense (while not violating Roblox's rules) it will probably be merged. However, something may occasionally be deemed unneccessary or incomplete, at which point a comment will be made on the PR for you to respond or amend your code (or just so you know the maintainers' reasoning.)
A: Anything that violates Roblox's rules (as in, anything that could get Adonis or games using Adonis in trouble) is not allowed for obvious reasons. Additionally, please do not submit any form of obfuscated code as they have no place in the open-source project that Adonis is.
There is a very clear/obvious difference between unavoidably complex code and intentionally complicated code. Maintainers are certain to check all file changes before merging and can usually spot something abnormal quickly.
A: Not really, but we would normally try to follow the format of the other existing code in the module we are editing. Generally, however, here are a few things to note:
- Leave a space (or newline) after every comma or semicolon. ✅
x, y, z
❌x,y,z
- Leave a space before and after every operator. ✅
x == y, x + y
❌x==y, x+y
- No unnecessary parentheses/brackets anywhere. ✅
if x == 2 then
❌if (x == 2) then
- Don't overwrite builtin globals when declaring local variables! ✅
local dataType = data.Type
❌local type = data.Type
- Use
LOUD_SNAKE_CASE
for (and only for) hardcoded local constants. - Use US English spellings for both code variable names and user-facing text. ✅
"color"
❌"colour"
A: Bugs! 🐛 If you are submitting code changes, please be sure to TEST THEM BEFORE SUBMITTING THEM! No one would be quite happy to spend an hour debugging your contribution when merging changes into the model.
Also, try to double check any text for spelling issues. Some of us frequently make typos/mistakes, so it's not a huge deal if you miss something, but a wholly incoherent string of letters and words is not acceptable.
A: Wiki contributions should focus on technical information, such as what various functions and variables do/are for and how to use them correctly when developing plugins for Adonis. Information about Adonis and useful tutorials for new or inexperienced users is also acceptable (and much welcomed.)
A: After handling the merge, a maintainer will also add you to the credits list as "@GitHub YourGitHubUsernameHere" if it's your first contribution. If we forget to do this, and you notice, just us me know (via Discord or a comment on the PR itself) and we'll fix it.
Once in a while after changes are merged, some quick testing will be done by a maintainer to make sure everything works correctly. Once that's done, the updated models will be published to Roblox by an automated process, after which all new servers will be running the latest version of Adonis.
A: After your contribution is accepted, post your Discord & Roblox usernames into the discussion thread (Epix-Incorporated/Adonis#433). You will be given the "GitHub Contributor" role in the Discord server and the "Contributors" rank in the Roblox group (Epix Incorporated) by a maintainer, assuming you are a member of the server and group respectively.
Roblox group: https://www.roblox.com/groups/886423
Discord server: https://discord.com/invite/H5RvTP3
Feel free to make enquiries in our Discord server.