The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/UPGRADING_DEPENDENCIES.md

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

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:

# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
GO111MODULE=on go mod tidy

You have to commit the changes to go.mod and go.sum 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.