Contributing to this repository
First of all, thank you for considering contributing to a Sideways Experiments project!
At Sideways Experiments, we hate do the same thing more than once, and we love to share knowledge. Whether because you "just want to help" or share that generous laziness philosophy, you're welcome!
This document is shared across most of our open source projects, which may refer to it. Any project that needs changes on the Code of Conduct has its own
CODE_OF_CONDUCT.mdfile at its root or in a.github/directory.
Get involved!
There's many ways to be involved in our open source projects, and there's absolutely no pressure to give more or less of your time. So whether you want to develop the core of a whole package or just post a comment in an issue, any help is appreciated!
So what can you do to help?
- Discuss with the community: join our Discord server, and start chatting with the community or the core team
- Report bugs: found a bug when using one of our packages? You can report it in the Issues tab on GitHub
- Suggest improvements: whether from the Discord server or by creating an Issue, feel free to talk about your needs or current usage of our solutions, highlight what's missing or what could be better
- Request new features: again, you can use the Discord server or create a new Issue to ask for something new, see if others may need it to, so we can consider modifying an existinng package or even start a nw project just for it
- Address issues: you can contribute directly to the codebase by resolving an issue, creating the required assets, of just implement changes and create a Pull request on GitHub
Code of Conduct
Sideways Experiments has adopted the Contributor Covenant as its Code of Conduct for its open source projects, and we expect contributors to adhere to it.
If you observe any unacceptable behavior or need to report a violation, please contact the Sideways Experiment core team directly to contact@sideways-experiments.
How to get help
For any question, suggestion, bug report or general discussion, you can either join our Discord server or create a new Issue on GitHub.
By the way, we love to know how you use our tools, so we can make them better!
Reporting bugs
Did you find a bug or an unexpected behavior while using our solutions? PLease report it by following these steps:
- Make sure you are using a recent version of Unity (we don't support versions prior to 2021)
- Ensure the bug hasn't already been imported by searching it in the Issues tab on GitHub or discuss about it on our Discord server
- Create a new issue from the Issues tab on GitHub, and please provide as much details as possible, at least by filling the fields of our issue templates
The better you can describe your problem, the first it will be addressed!
Suggesting enhancements or features
Feel free to join our Discord server or create an Issue to suggest an improvement or even request a new feature. Feel free to talk about your needs or current usage of our solutions!
We strongly encourage to open a discussion before implementing anything. Unsolicited pull requests for important changes or new features may be discarded "by default", as it may not be aligned with the library's scope or direction, or may bypass a convesation that would lead to a better alternative.
Development environment setup
This repository contains only the scripts for a Unity package, but is not a Unity project. This is because we work on several packages for Unity, and maintaining multiple packages in a single Unity project is way simpler than maintaining several Unity projects.
How we usually work with packages:
- Use the latest LTS version of Unity to ensure compatibility
- Create your own local Unity project (look at requirements from the README.md files of packages you're planning to work on to know what template/packages to use)
- Initialize a Git repository in your project: no need to push it online, it's just meant to "host" packages as Git Submodules
- Add packages to that Unity project by adding them as Git Submodules into the
Packages/directory
By using Git submodules, you'll be able to work on all these packages from a single project.
We didn't write a guide for this yet. If needed, feel free to create an Issue to ask for it.
Code syntax
Please refer to our general Coding Style specification to learn more about the conventions used in this project.
Submitting a Pull Request
To contribute code:
- Fork this repository
- Create a new branch off
develop - Make your changes and commit them
- Signed commits are required
- Take care to follow our commit message guidelines
- Test your changes locally
- Submit a pull request targeting
developordev, notmasterormain - Describe your changes and reference any related issues
- A member of the Sideways Experiments core team will review it
As mentioned in the Suggesting enhancements or features section, please don't create Pull Requests for unsolicited work.
Pull Request Requirements
- One PR per logical change (fix, feature, etc.)
- Must pass basic tests (if applicable)
- Must use signed commits
- All PRs must be reviewed by a Sideways Experiments core team member
- Assign the PR to the core team if not automatically assigned
Releases
Releases are generated based on vX.Y.Z tags pushed to the repository.
Each release will include a compiled package and changelog.
We currently do not require contributors to handle release generation — this is done internally.
License and Contributor Agreement
Most of our projects are licensed under the MIT License.
A LICENSE.md file is always included in our projects repository's root, and all contributions to a specific project will be licensed under the same terms as that file.
We will evaluate whether a Contributor License Agreement (CLA) is required in the future, as the projects go. For now, you can contribute freely under MIT.
Maintainers
This project is maintained by the team at Sideways Experiments.
If you're unsure about any part of the contribution process, feel free to open a discussion on our Discord server, or by sending an email directly to contact@sideways-experiments.
Thank you again for being part of the project!