cpp_client_telemetry/CONTRIBUTING.md

5.4 KiB

Contributing

The 1DS C++ SDK community meets every Tuesday, and the time of the meeting alternates between 9:00AM PST and 1:00PM PST. The meeting invitation is published to 1ds.sdk.cpp team calendar:

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:

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 as work-in-progress, or mark it as draft.
  • 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

Coding 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.