Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Notes on 3rd party dependencies #1272

Merged
merged 2 commits into from
Aug 17, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,14 @@ workflow for doing this is as follows:
5. When you are ready for us to review, push your branch to GitHub, and
then open a new pull request with us.

### Third Party Dependencies
Copy link

@jchauncey jchauncey Aug 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ive added an issue about updating labels (#1277) so when people submit prs/issues that need dependency updates/additions we can track them.


Third party dependencies reside locally inside the repository under the `vendor/` directory. We use [glide](https://github.com/Masterminds/glide) to enforce our dependency graph, declared in [glide.yaml](https://github.com/Azure/acs-engine/blob/master/CONTRIBUTING.md) in the project root.

If you wish to introduce a new third party dependency into `acs-engine`, please file an [issue](https://github.com/Azure/acs-engine/issues), and include the canonical VCS path (e.g., `github.com/Azure/azure-sdk-for-go`) along with either the desired release string expression to depend on (e.g., `~8.1.0`), or the commit hash to pin to a static commit (e.g., `4cdb38c072b86bf795d2c81de50784d9fdd6eb77`). A project maintainer will then own the effort to update the codebase with that dependency, including relevant updates to `glide.yaml` and `vendor/`.

As a rule we want to distinguish dependency update PRs from feature/bug PRs; we may ask that feature/bug PRs which include updates to `vendor/` and/or contain any other dependency-related overhead to be triaged into separate PRs that can be managed independently, pre-requisite dependency changes in one, and features/bugs in another. The objective of enforcing these distinctions is to help focus the PR review process, and to make manageable the difficult task of rationalizing a multitude of parallel PRs in flight, many of which which may carry hard-to-reconcile dependency side-effects when aggressively updated with a fresh dependency graph as part of the PR payload.

### Go Conventions

We follow the Go coding style standards very closely. Typically, running
Expand Down