Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.

Pin external repositories in WORKSPACE #130

Closed
calder opened this issue Mar 27, 2018 · 5 comments · Fixed by #276
Closed

Pin external repositories in WORKSPACE #130

calder opened this issue Mar 27, 2018 · 5 comments · Fixed by #276

Comments

@calder
Copy link

calder commented Mar 27, 2018

http_archive rules in WORKSPACE all reference master and don't include a sha256. This leads to non-reproducible builds.

Request specific versions instead and include sha256's as described in the Bazel docs.

@isturdy
Copy link
Contributor

isturdy commented Mar 27, 2018

Abseil prefers to be built from head if possible: https://abseil.io/about/compatibility.

However, I think we should pin repositories in at least two situations:

  • gRPC and other versioned repositories: gRPC follows releases, and may silently break compatibility at head. (e.g. Travis build broken by ":_*" gRPC rules. #126)
  • Our own releases. Right now, if Abseil breaks compatibility we will fix it at head, but a release will be permanently broken if it is not pinned itself.

@g-easy
Copy link
Contributor

g-easy commented Mar 28, 2018

Users of OpenCensus can have reproducible builds by pinning in their (outermost) WORKSPACE.

Abseil hasn't broken compatibility yet. gRPC has a couple of times, although moving the gRPC plugin to their repo will mitigate that somewhat in the future.

Pinning, or at least having some sense of "opencensus-cpp release X works with grpc release Y", would be good, but I'd also like to avoid tons of commits to OpenCensus bumping the versions of dependencies and bazel.

@bogdandrutu
Copy link

Any update on this?

@g-easy
Copy link
Contributor

g-easy commented Sep 19, 2018

I'd like to keep the master branch building everything from HEAD.

Once we start doing release branches, we could record our dependencies' versions at release time.

Doing this doesn't really affect users of opencensus-cpp because it's their project's WORKSPACE file that specifies which version of every transitive dependency to use - this is bazel's approach to dependencies.

g-easy added a commit to g-easy/opencensus-cpp that referenced this issue Jan 31, 2019
g-easy added a commit that referenced this issue Jan 31, 2019
g-easy added a commit to g-easy/opencensus-cpp that referenced this issue Jan 31, 2019
- Add brief summary.
- Add example PRs.
- Add instructions on pinning build deps (fixes census-instrumentation#130).
- Add CMake instructions.
- Use the releases page to create the tag based on a verified commit.
g-easy added a commit that referenced this issue Feb 7, 2019
- Add brief summary.
- Add example PRs.
- Add instructions on pinning build deps (fixes #130).
- Add CMake instructions.
- Use the releases page to create the tag based on a verified commit.
@g-easy
Copy link
Contributor

g-easy commented Feb 7, 2019

External repositories are now pinned for OpenCensus releases. Closing this issue.

meastp pushed a commit to meastp/opencensus-cpp that referenced this issue Feb 19, 2019
- Add brief summary.
- Add example PRs.
- Add instructions on pinning build deps (fixes census-instrumentation#130).
- Add CMake instructions.
- Use the releases page to create the tag based on a verified commit.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants