Thank you for your interest in contributing! This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to your contribution!
The quickest and most open way to communicate with the Ayria team is on our Discord channel.
A bit more formal way of communication with fellow Ayria members, but a little less quick and convenient like the chat. Submit an issue when you run into problems or just would like to discuss a certain topic, be it features, code style, code inconsistencies, minor changes and fixes, etc.
It’s fine to just submit a small pull request without first making an issue or asking in the chat unless if it’s a significant change that will require planning and reviewing. Also see Creating a Pull Request and Git Style Guidelines.
If you’re a good designer, whether it’s 2D graphics, 3D graphics, interfaces, web design, you can help. We need screen designs, a consistent visual language, UI & UX design, icons, etc.
- Testing the app, filing issues for bugs and needed features
- Desktop integration, make sure the app plays well with the OS
- App, improve the JS code in ways you deem better
- Bootstrap, improve the C++ bootstrap module
- Plugins, create an Ayria game plugin
- Anything else, come chat with us!
1. Fork and clone the repository.
2. Install needed dependencies: npm install
.
3. Create a separate branch: git checkout -b my-branch
.
4. Start the application with npm start
, make changes.
6. Run npm run lint -- --fix
, making sure no conflicts remain.
7. Commit: git add <changed files>; git commit
and write a commit message.
8. Push to your fork: git push
.
9. Create a pull request on GitHub and submit!
- Make sure your code is readable and only has comments where needed.
- Don’t hesitate to ask for help, comments or suggestions!
- Before implementing something, discuss it! Open an issue, or ask in the chat.
Besides the defined code style rules defined in the linter configuration the JavaScript code is following the functional paradigm. Meaning: pure functions, avoiding shared state, mutable data, and side-effects.
- When you start to make changes, you will want to create a separate branch, and keep the
master
branch of your fork identical to the main repository, so that you can compare your changes with the main branch and test out a more stable build if you need to. - Usually, when syncing your local copy with the master branch, you’ll want to rebase instead of merge. This is because it will create duplicate commits that don’t actually do anything when merged into the master branch. You can do this in one command with
git pull upstream --rebase
. This will pull from the upstream, then roll back to the current state of the upstream, and “replay” your changes on top of it. Make sure you commit before doing this, though. Git won’t be able to rebase if you don’t. - Prefer to omit the
-m
when usinggit commit
. This opens your editor and should help get you in the habit of writing longer commit messages. - Commit messages should describe their changes in present tense, e.g.
Add live reloading to game list
instead ofAdded live reloading to game list
. - Try to remove useless duplicate/merge commits from PRs as these don’t do anything except clutter up history and make it harder to read.