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
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 QMN Downloader. Questions? Contact the team or community.