Minor grammar edits, mostly bringing headings in line with the style guide.
2.8 KiB
Guide to upgrading dependencies
Upgrading Go or Node.js requires making changes in many different files. See below for a list and explanation for each.
Go
- CircleCi
grafana/build-container
- Appveyor
- Dockerfile
Node.js
- CircleCI
grafana/build-container
- Appveyor
- Dockerfile
Go dependencies
The Grafana project uses Go modules to manage dependencies on external packages. This requires a working Go environment with version 1.11 or greater installed.
All dependencies are vendored in the vendor/
directory.
Note: Since most developers of Grafana still use the GOPATH
we need to specify GO111MODULE=on
to make go mod
and got get
work as intended. If you have setup Grafana outside of the GOPATH
on your machine you can skip GO111MODULE=on
when running the commands below.
To add or update a new dependency, use the go get
command:
# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
# Pick the latest tagged release.
GO111MODULE=on go get example.com/some/module/pkg
# Pick a specific version.
GO111MODULE=on go get example.com/some/module/pkg@vX.Y.Z
Tidy up the go.mod
and go.sum
files and copy the new/updated dependency to the vendor/
directory:
# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
GO111MODULE=on go mod tidy
GO111MODULE=on go mod vendor
You have to commit the changes to go.mod
, go.sum
and the vendor/
directory before submitting the pull request.
Node.js dependencies
Updated using yarn
.
package.json
Where to make changes
CircleCI
Our builds run on CircleCI through our build script.
Files
.circleci/config.yml
.
Dependencies
- nodejs
- golang
- grafana/build-container (our custom docker build container)
grafana/build-container
The main build step (in CircleCI) is built using a custom build container that comes pre-baked with some of the necessary dependencies.
Link: grafana/build-container
Dependencies
- fpm
- nodejs
- golang
- crosscompiling (several compilers)
Appveyor
Master and release builds trigger test runs on Appveyors build environment so that tests will run on Windows.
Files:
appveyor.yml
Dependencies
- nodejs
- golang
Dockerfile
There is a Docker build for Grafana in the root of the project that allows anyone to build Grafana just using Docker.
Files
Dockerfile
Dependencies
- nodejs
- golang
Local developer environments
Please send out a notice in the grafana-dev slack channel when updating Go or Node.js to make it easier for everyone to update their local developer environments.