Thank you for considering contributing to UnrealMLAgents! Whether you're fixing bugs, writing documentation, or proposing new features, every contribution is valuable and helps improve the project.
We welcome contributors of all experience levels. Every little bit helps!
We use Clang with rules defined in .clang-format. A GitHub action with Restyled checks these rules on each pull request. Restyled will suggest changes, but you must apply them manually.
Note
To apply Restyled changes locally, refer to its logs and run the suggested commands.
We would love to hear your suggestions. Feel free to submit them as issues and:
- Explain your suggestions and how they would work.
- Describe any impacts on the project and why they are necessary.
- Keep it simple and clear!
Look through the GitHub issues for enhancements and use the UnrealMLAgents GitHub discussion to find guidance.
To claim a feature, comment on the specific enhancement issue and join the Discord server for further discussion.
If you encounter a bug, confirm it by discussing it in the UnrealMLAgents GitHub discussion or the Discord server under the development channel.
Submit bug reports through the issue tracker, including:
- A detailed description of the bug or problem you are having.
- The operating system and version.
- Steps to reproduce the issue (minimum example if possible).
- The version of UnrealMLAgents in use.
Explore GitHub issues for bugs for existing reports. Use GitHub discussions or Discord for further clarification.
Indicate your intent to fix a bug by commenting on the issue.
UnrealMLAgents always needs better documentation. Whether clarifying unclear sections or adding new examples, your help is invaluable. Here's how you can contribute:
- Add supplementary information to unclear sections.
- Improve function, class, and attribute docstrings following the Sphinx docstring format.
- Provide examples, tutorials, or how-to guides.
To build the documentation locally, install Sphinx:
$ python -m pip install -r Docs/requirements.txtFrom the Docs directory, build the HTML documentation:
$ make htmlThe documentation will be available in Docs/_build/html.
Contribution is done through pull request from your own UnrealMLAgents repository (fork). As a quick reminder, a pull request informs UnrealMLAgents's core development team about the changes that you have submitted. It will allow us to review the code and to make comment to discuss its potential modification or not.
Fork the UnrealMLAgents repository.
Clone your fork locally:
$ git clone git@github.com:YOUR_GITHUB_USERNAME/UnrealMLAgents.git $ cd UnrealMLAgents
Create a branch from master:
$ git checkout -b your-branch masterAdd the main UnrealMLAgents remote as
upstream:$ git remote add upstream https://github.com/AlanLaboratory/UnrealMLAgentsInstall pre-commit:
$ pip install pre-commit==4.1.0 $ pre-commit install $ pre-commit install --hook-type commit-msg
Afterwards
pre-commitwill run whenever you commit.https://pre-commit.com/ is a framework for managing and maintaining multi-language pre-commit hooks to ensure code-style and code formatting is consistent.
Build the plugin in case you made a change to the C++ code:
$ cd C:\Program Files\Epic Games\UE_5.2\Engine\Build\Batchfiles $ RunUAT.bat BuildPlugin -plugin="<path to this repo>\UnrealMLAgents.uplugin" -package="<somewhere>" -TargetPlatforms=Win64
You need to build successfully before you can push your changes. Full Building Plugins documentation.
Create a new changelog entry in changelog directory. The file should be named <issueid>.<type>.rst, where issueid is the number of the issue related to the change and type is one of feature, improvement, bugfix, doc, deprecation, breaking, or trivial. You may skip creating the changelog entry if the change doesn't affect the documented behaviour of UnrealMLAgents.
$ echo "Your changelog content" > changelog/<issueid>.<type>.rstAdd yourself to the AUTHORS file in alphabetical order.
Commit and push your changes:
$ git commit -m "[#ticket-id] <commit message>" $ git push -u
Submit your pull request through the GitHub website.
UnrealMLAgents will automatically test your pull request and notify you of any issues.