We are excited to receive your contributions. However, it is crucial to follow guidelines to ensure effective collaboration.
When creating a pull request (PR) in this project, choosing the correct branch is essential for smooth and conflict-free integration. Here's a detailed guide:
We recommend contributors choose a recent stable-*
branch to work with secure and stable code. These branches contain released versions with assets available for download, ensuring a complete experience when building the project.
While it contains the latest code, avoid basing on main
. It may contain unstable code and assets not publicly released. If opting for main
, be aware of these challenges and consider stable-*
branches as a more stable alternative.
Differences between stable-*
and main
may exist, so refer to issues and keep track of recent changes to understand the differences.
We follow Semantic Versioning (SemVer). Prioritize PRs with patch
or minor
changes. Significant changes require prior discussion for integration in the next major release. Mark removals of public properties or methods as Obsolete
in the latest release branch.
Use concise and descriptive titles in issues or PRs. Details should be in the description.
Follow Conventional Commits. Each commit should describe the change. Reference open issues with #
.
Examples of good commit messages:
fix: Fix potential memory leak (#142).
;feat: Add new entity (#169).
;refactor: Refactor code for the 5th entity.
;feat: Add new GUI component.
.
Examples of incorrect messages:
I'm bad.
;Tit and tat.
;Fixed.
;Oops.
.
We follow the Microsoft C# coding conventions, with some exceptions.
- Prefix
P
in file names andIP
for interfaces; - Use
this
to reference fields and properties; - Avoid asynchronous code in inappropriate contexts.
- Do not use
var
; - Mark immutable fields as
readonly
; - Use
internal
andpublic
sparingly; - Utilize object initializers whenever possible.
Prefer inline form for out
declarations: SomeOutMethod(42, out PType value);
.
Always order members and properties: Properties, const
Fields, Variable Fields, Events and Delegates, Constructors, Methods.
When contributing and creating a PR, provide clear and informative documentation. This increases the chances of integration.
Each PR is carefully reviewed. If rejected, there will be justification. Thank you for dedicating time and effort to Stardust Sandbox. Questions? Contact the team or community.