We appreciate that you're interested in helping with moving the project forward. Before you submit your first PR, please read the following guide. We'd hate to see you work on something that someone else is already working on, something that we agreed not to do or something that doesn't match the project.
Sharing is caring!
Awesome! Good ideas are invaluable for every product. Before you start hacking away, please check if there is no similar idea already listed in the issue list. If not, please create a new issue describing your idea. Once we agree on the feature scope and architecture, the feature will be ready for building. Don't hesitate to mention in the issue if you'd like to build the feature yourself. If it's the first time you're building a command see the guidance article explaining in detail what you will need at minimum.
Nothing is perfect. If you have an idea how to improve an existing command or the CLI, let us know by submitting an issue in the issue list. Some things are done for a reason, but some are not. Let's discuss what you think and see how the project could be improved for everyone.
Bugs happen. When you find a bug, please have a look at the issue list if a similar bug has already been logged. If not, let us know what doesn't work and how we can reproduce it. If we can't reproduce your bug, we will ask you for clarification, which will only make it longer to fix it.
Typos are embarrassing! Most PR's that fix typos will be accepted immediately. In order to make it easier to review the PR, please narrow the focus instead of sending a huge PR of fixes.
Before contributing:
-
ensure that the main branch on your fork is in sync with the original cli-microsoft365 repository
# assuming you are in the folder of your locally cloned fork.... git checkout main # assuming you have a remote named `upstream` pointing to the official **cli-microsoft365** repo git fetch upstream # update your local main to be a mirror of what's in the main repo git pull --rebase upstream main
-
create a feature branch for your change. If you'll get stuck on an issue or merging your PR will take a while, this will allow you to have a clean main branch that you can use for contributing other changes
git checkout -b my-contribution
- DO follow the same project and test structure as the existing project.
- DO include tests when adding new functionality and features. When fixing bugs, start with adding a test that highlights how the current behavior is broken.
- DO keep discussions focused. When a new or related topic comes up it's often better to create new issue than to side track the conversation.
- DO NOT submit PR's for coding style changes.
- DO NOT surprise us with big PR's. Instead file an issue & start a discussion so we can agree on a direction before you invest a large amount of time.
- DO NOT commit code you didn't write.
- DO NOT submit PR's that refactor existing code without a discussion first.