mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
Maintaining this file as part of git tree isn't great, it's not really possible to review changes to it, let's just build it locally, especially that we've added webpack that also builds all assets and it's the files generated by webpack that we now compile into bindata_assetfs.go
88 lines
3.1 KiB
Markdown
88 lines
3.1 KiB
Markdown
# Contributing to unsee
|
|
|
|
## Getting Started
|
|
|
|
To get started follow `Building from source` section of the [README](README.md)
|
|
file.
|
|
|
|
## Git tags and branches
|
|
|
|
Every release tag name will follow `vX.Y.Z` naming scheme, example: `v0.1.0`.
|
|
Every release tree has a dedicated branch named `release-X.Y`, example:
|
|
`release-0.1`.
|
|
|
|
## Testing changes
|
|
|
|
To run included tests and check code style with `golint` run:
|
|
|
|
make test
|
|
|
|
## Vendoring dependencies
|
|
|
|
If you use any new dependency or remove any existing one, please run:
|
|
|
|
make vendor
|
|
|
|
This will install and run [dep](https://github.com/golang/dep), which will
|
|
detect all used package and fetch them into the vendor directory.
|
|
|
|
To update all vendor package run:
|
|
|
|
make vendor-update
|
|
|
|
To update specific vendor package run `dep` manually:
|
|
|
|
dep ensure <import-path-filter>
|
|
|
|
See [dep](https://github.com/golang/dep) documentation for details.
|
|
|
|
## Javascript & CSS assets and HTML templates
|
|
|
|
JS and CSS assets are managed via [npm](https://www.npmjs.com/) and compiled
|
|
into bundle files using [webpack](https://webpack.js.org/).
|
|
|
|
To add a new JS asset install it using npm with the `--save` flag, this will
|
|
add it to the `package.json`. Now you can `require()` it in javascript code.
|
|
JS modules are written using [CommonJS](http://www.commonjs.org/specs/modules/1.0/)
|
|
syntax. Webpack will use [babel](https://babeljs.io/) to transform JS code to
|
|
[ES2015](https://babeljs.io/docs/plugins/preset-es2015/).
|
|
|
|
During development you can set `NODE_ENV=test` before running any make targets,
|
|
this will prevent webpack from using expensive optimizations only needed when
|
|
generating production assets.
|
|
|
|
## Running
|
|
|
|
To build and start `unsee` from local branch see `Running` section of the
|
|
[README](README.md) file.
|
|
|
|
When working with assets (templates, stylesheets and javascript files) `DEBUG`
|
|
make variable can be set, which will recompile binary assets in debug mode,
|
|
meaning that files from disk will be read instead of compiled in assets.
|
|
See [go-bindata docs](https://github.com/jteeuwen/go-bindata#debug-vs-release-builds)
|
|
for details. Example:
|
|
|
|
make DEBUG=true run
|
|
make DEBUG=true run-docker
|
|
|
|
Note that this is not the same as enabling [debug mode](/README.md#debug) for
|
|
the [gin web framework](https://github.com/gin-gonic/gin) which is used
|
|
internally, but enabling `DEBUG` via this make variable will also enable gin
|
|
debug mode.
|
|
When running docker image via `make run-docker` with `DEBUG` make variable set
|
|
to `true` volume mapping will be added (in read-only mode), so that unsee
|
|
instance running inside the docker can read asset files from the sources
|
|
directory.
|
|
|
|
## Adding support for new Alertmanager release
|
|
|
|
To support a new release that breaks API following changes needs to be done:
|
|
|
|
* Verify that `GetVersion()` function can still correctly read remote
|
|
Alertmanager version via `/api/v1/status` endpoint, adapt it if needed.
|
|
* Create a new mapper package implementing unmarshaling of alerts and/or
|
|
silences (depending if both need a new code) under mapper/vXY (X major
|
|
Alertmanager version, Y minor version).
|
|
* Register new mapper in the `init()` function in the
|
|
`internal/alertmanager/mapper.go` file.
|