We are excited to receive your contributions. However, it is crucial to follow guidelines to ensure effective collaboration.
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
Sin file names andISfor interfaces; - Use
thisto reference fields and properties; - Avoid asynchronous code in inappropriate contexts.
- Do not use
var; - Mark immutable fields as
readonly; - Use
internalandpublicsparingly; - 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 Star ASCII. Questions? Contact the team or community.