VAIMEE believes in the community of talented open source developers. Any contribution is welcomed, whether it be a bug fix, a new feature, a new tool, or a new way of thinking. This document provides a short how-to and a set of guidelines to follow when contributing to My3Sec.
We use github to host code, track issues, feature requests, and accept pull requests. When we reach the 1.0.0
all code changes must happen using Github Flow, so all code changes happen through pull requests.
We actively welcome your pull requests:
- Fork the repo and create your branch from
main
. - If you've added code, add tests to validate it.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
If your PR fixes a bug or an issue, make sure to mention the issue number in the PR title, PR body, or commit message. If the issue does not exist, please take some time to create it.
We use Conventional Commit Messages to ensure that all commits are well-formed. Additionally to the standard commit types, we use the following custom commit types:
docs
: for commits that update the documentation.test
: for commits that update the test suite.style
: for commits that update the style.refactor
: for commits meant to be refactoring.chore
: for commits that modify external scripts orpackages.json
dependencies.
Examples:
docs: define a new readme structure
fix: add the local identifier to anonymous td during retrieve and list operations
Fixes #3
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can. My stackoverflow question includes sample code that anyone with a base R setup can run to reproduce what I was seeing
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening or stuff you tried that didn't work)
Throughout My3Sec's development, we made some design decisions that we are documenting here. We encourage future developers to follow these rules to maintain a consistent code style. If you want to change this list or provide feedback, feel free to open an issue and talk about it!
File names follow the NestJS convention: ${name}.${scope}.${extension}
.
name
is the kebab-case name of the file. Examplemy-component
.scope
is the kebab-case name of the scope. Examplecontroller
.extension
The extension of the file. Examplets
.
Functions that validate input MUST be prefixed with assert
. For instance, assertUniqueThingDescriptionId
is a function that validates if the id
of a thing description is unique.