5.4 KiB
Contributing
The 1DS C++ SDK community meets every Tuesday at 1:00PM PST. The meeting invitation is published to 1ds.sdk.cpp team calendar:
- Join Microsoft Teams Meeting
- +1(425)616-0754, 63411756# United States
- Conference ID: 634 117 56#
Meeting agenda and notes are maintained here. If you want to propose topics, please append them to the agenda. To request edit access, please contact 1ds.sdk.cpp@service.microsoft.com or ping us on Teams.
How to build the SDK
Platform specific build instructions:
- Windows
- Windows/clang
- Mac
- Linux. WSL or Docker can be used to build for various Linux distros. Please refer to build-docker.cmd script and the list of supported containers. Docker build script accepts the container name as first argument.
- iOS/iPadOS
- Android
Other resources to learn how to setup the build system:
- Review how our cross-platform build system is implemented using GitHub Actions infrastructure
- Check the build scripts located in workspace root
Issues and Feature Requests
Issues and feature requests are tracked on GitHub.
Pull Request
How to Send Pull Requests
Everyone is welcome to contribute code to 1DS C++ SDK
via GitHub pull requests (PRs).
Please do not fork. Our CI is setup to accept PRs only from the main microsoft/cpp_client_telemetry repo.
To create a new PR, clone the repo:
$ git clone --recurse-submodules https://github.com/microsoft/cpp_client_telemetry.git
Check out a new branch, make modifications and push the branch:
$ git checkout -b ${USERNAME}/feature_branch_name
# edit files
$ git commit -m "Description"
$ git push ${USERNAME}/feature_branch_name
Then open a PR against the main microsoft/cpp_client_telemetry
repo.
How to Receive Comments
- If the PR is not ready for review, please put
[WIP]
in the title, tag it aswork-in-progress
, or mark it asdraft
. - Make sure CLA is signed and CI is clear.
Making Changes to Modules
- Navigate to lib/modules
- Check out a branch of the modules repository.
- Create a PR from your branch to cpp_client_telemetry's master branch.
How to Get PR Merged
A PR is considered to be ready to merge when:
- It has received at least one approval from Maintainers.
- Major feedbacks are resolved.
- It has been open for review for at least one working day. This gives people reasonable time to review.
- Trivial change (typo, cosmetic, doc, etc.) doesn't have to wait for one day.
- Urgent fix can take exception as long as it has been actively communicated.
- Any dependent submodule changes have updated the submodule commit id (
git add lib/modules
) - Any Collaborator/Maintainer can merge the PR once it is ready to merge.
- In exceptional scenarios (build break, privacy issue, GitHub actions failure, CI failure), when other Approvers are unavailable - Administrators may exercise their right to Merge notifying the other Approvers in a comment to PR.
Do not push directly to the master.
Style Guidelines
Please note that we are rapidly evolving product with many different contributors. Some modules have been written following platform-specific coding style. Please try to keep your changes consistent with the coding style of a module you are modifying.
There is a .clang-format file included in the repo. Please use your favourite IDE with Clang Format tooling installed.
Become a Collaborator
Collaborators have write access to the repo.
To become a Collaborator:
- Become an active Contributor by working on PRs.
- Actively participate in the community meeting, design discussion, PR review and issue discussion.
- Contact the Maintainers, express the willingness and commitment.
- Acknowledged and approved by two Maintainers.
Become a Maintainer
Maintainers have admin access to the repo.
To become a Maintainer:
- Become a member of client-telemetry-sdk organization.
- Become a Collaborator.
- Demonstrate the ability and commitment.
- Contact the Maintainers, express the willingness and commitment.
- Acknowledged and approved by all the current Maintainers.