There are a few things which we require in any contribution:
- This repository comes with a
.editorconfig
file, so the following requirements will be taken care of if you have EditorConfig installed:- Tabs consist of 2 spaces.
- Files end with a newline.
- No trailing whitespace at the end of a line.
- All user-facing strings (
names
anddesc
fields in AceConfig tables, mostly) must be localized:- We use a locale scraper to find translation phrases and automatically export them to CurseForge for translation. This scraper parses the addon files, looking for tokens that look like:
L["some translation phrase"]
. You must use double quoted strings, and name the localization table (found atWeakAuras.L
)L
in your code for this to work properly.
- We use a locale scraper to find translation phrases and automatically export them to CurseForge for translation. This scraper parses the addon files, looking for tokens that look like:
- When writing a new file, avoid using semicolons. When modifying code in an existing file, try to be consistent, but err on the side of no semicolons.
- New features should be indicated by concatenating
WeakAuras.newFeatureString
onto the associated translation phrase. We will remove the new feature indicator approximately 3 months after the first release.
If you want to help, here's what you need to do:
-
Make sure you have a GitHub account.
-
Fork our repository.
-
Create a new topic branch (based on the
main
branch) to contain your feature, change, or fix.git checkout -b my-topic-branch
-
Set
core.autocrlf
to true.git config core.autocrlf true
-
Set
pull.rebase
to true.git config pull.rebase true
-
Set up your Git identity so your commits are attributed to your name and email address properly.
-
Take a look at our Wiki page on how to setup a Lua dev environment.
-
Install an EditorConfig plugin for your text editor to automatically follow our indenting rules.
-
Commit and push your changes to your new branch.
git commit -a -m "commit-description" git push
-
Open a Pull Request with a clear title and description.
-
Specify a new remote upstream repository that will be used to sync your fork (you only need to do this once).
git remote add upstream https://github.com/WeakAuras/WeakAuras2.git
-
In order to sync your fork with the upstream WeakAuras repository you would do
git fetch upstream git checkout main git rebase upstream/main
-
You are now all synced up.
-
In order to sync your pull request with the upstream WeakAuras repository in case there are any conflicts you would do
git fetch upstream git checkout my-topic-branch git rebase upstream/main
-
In case there are any conflicts, you will now have to fix them manually.
-
After you're done with that, you are ready to force-push your changes.
git push --force
-
Note: Force-pushing is a destructive operation, so make sure you don't lose something in the progress.
-
If you want to know more about force-pushing and why we do it, there are a two good posts about it: one by Atlassian and one on Reddit.
-
Your pull request should now have no conflicts and be ready for review and merging.
- Please check our issue tracker for your problem since there's a good chance that someone has already reported it.
- If you find a match, please try to provide as much info as you can, so that we have a better picture about what the real problem is and how to fix it ASAP.
- If you didn't find any tickets with a problem similar to yours then please open a
new ticket.
- Be descriptive as much as you can.
- Provide everything the template text asks you for.