This document contains guidelines to work on this project and should be followed as closely as possible. If you have any questions or remarks regarding them, please open an issue.
Important
Please be wary that changes may be made to those guidelines if deemed necessary.
Table of Content
Ensure the bug was not already reported. If you are unable to find an open issue addressing the problem, open a new one using the appropriate template.
The title should be explicit yet concise enough to know at first glance what the issue is about.
Example: Crash on login with invalid email
We also encourage the use of tags to better categorize the issue.
If you are using a template, please follow its structure and any recommendations that may be specific to it.
The content of the issue should be as descriptive as possible, with code snippets and/or screenshots to give a better understanding. It is also heavily recommended to read those guidelines beforehand (even if they do not completely relate to your issue).
Please use a title starting with a verb in the imperative present tense.
If your commit is linked to a pull request or an issue, please mention it as specified in GitHub's documentation.
For code changes, please update the documentation to reflect those.
When a merge is done from dev
to main
, a workflow will run all the tests. If at least one test fails, unless all the team agrees to do so, the merge should not be finalized until the issue is fixed.
Use lowercase names, possibly spaced by underscores (snake_case).
Example: path/to/my_file.md
.github/
ISSUE_TEMPLATE/bug_report.md
workflows/
test.yml
deploy.yml
docs/
images/
management/
qa/
specs/
functional.md
technical.md
README.md
(table of contents)
src/
lib/
models/
providers/
widgets/
main.dart
test/
unit/
integration/
- (other usual Dart files)
.gitignore
Use lowercase names, spaced by hyphens (kebab-case).
Example: feature-ui-matchmaking-skill-list
When merging a branch, it is heavily recommended to do the merge the other way first and resolve any conflicts locally. This avoids having to resolve conflicts afterward.
-
main
- Stable branch
- Should be merged to at least once a day
- Only accepts merges from other branches
-
dev
- Unstable code branch
- Should be committed to each time a feature is partially complete, even if unfinished
- Committed to it directly is discouraged
- Merging to
main
-
docs
- Documents branch
- Can be committed to for typos, merged to for bigger changes
- Merging to
main
Read and follow the conventions for Dart.
Here is a summary:
- Classes and type definitions should be written in
PascalCase
. - Variables, parameters, and members should be in
camelCase
. - Do not use prefixes (also known as Hungarian notation).
- Use
import 'dart:...'
for global packages andimport 'package:...'
for local ones. - It is recommended to format the code often (activate the auto-formatting on save).