# Releases

The current mikroscope release and its date, read at build from VERSION and CHANGELOG.md, what every release publishes, and where the full history is.

Source: https://jmrplens.github.io/mikroscope/about/changelog/

The current release of mikroscope is [1.6.1](https://github.com/jmrplens/mikroscope/releases/tag/v1.6.1), released on 2026-10-06. Both are
read at build from the repository's [`VERSION`](https://github.com/jmrplens/mikroscope/blob/main/VERSION) file and from the dated heading that
version has in [`CHANGELOG.md`](https://github.com/jmrplens/mikroscope/blob/main/CHANGELOG.md), and the site does not build when that heading is missing.
The version is compiled into both binaries and reported by `mikroscope version`, and the install
commands on every page carry it.

## Release history

- [`CHANGELOG.md`](https://github.com/jmrplens/mikroscope/blob/main/CHANGELOG.md) has one section
  per release, newest first, in the [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) form.
  Its headings carry a date from 1.1.0 on.
- [GitHub Releases](https://github.com/jmrplens/mikroscope/releases) has each tag's notes, archives,
  image tars, checksums, signatures and SBOMs.
- [The releases feed](https://github.com/jmrplens/mikroscope/releases.atom) is the same list as
  Atom, for a feed reader.

Version numbers follow [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html), as the
changelog states. The guides describe the current release; what changed between releases, and
when, is in the changelog.

Not every number has a release of its own:

| Version | Tag and release                | Its changes ship in | Changelog section |
| ------- | ------------------------------ | ------------------- | ----------------- |
| 1.0.5   | never tagged                   | v1.0.7              | yes               |
| 1.0.6   | tagged; its release run failed | v1.0.7              | yes               |
| 1.0.8   | never tagged                   | v1.0.9              | yes               |
| 1.0.10  | never tagged                   | v1.1.0              | none              |

## Release assets

A `v*` tag runs the GoReleaser configuration, [`.goreleaser.yaml`](https://github.com/jmrplens/mikroscope/blob/main/.goreleaser.yaml), which publishes:

- **CLI archives** for linux and freebsd on amd64, arm64 and arm (ARMv7), and for darwin and
  windows on amd64 and arm64: `.tar.gz`, and `.zip` on Windows, each carrying the
  MIT [`LICENSE`](https://github.com/jmrplens/mikroscope/blob/main/LICENSE) and [`README.md`](https://github.com/jmrplens/mikroscope/blob/main/README.md).
- **Agent archives** for linux on amd64, arm64, armv5 and armv7, for a host that wants the bare
  binary rather than an image.
- **Side-loadable agent image tars**, four of them: `mikroscope-agent-arm64.tar`,
  `mikroscope-agent-armv5.tar`, `mikroscope-agent-armv7.tar` and `mikroscope-agent-amd64.tar`.
  32-bit ARM is two because EN7562CT boards take only v5. `install --agent-tar` uploads one to the
  router.
- **The agent image in two registries**, `jmrplens/mikroscope-agent:1.6.1` on
  Docker Hub and `ghcr.io/jmrplens/mikroscope-agent:1.6.1` on GHCR (each also
  tagged `latest`), each one manifest over `linux/amd64`, `linux/arm64`, `linux/arm/v7` and
  `linux/arm/v5`, which `install --remote-image` makes the router pull. mikroscope sends the whole
  reference, registry host included (`registry-1.docker.io/…` for Docker Hub), so the global
  `/container/config registry-url` is neither needed nor written, and Docker Hub serves the image
  with no registry login. Up to 1.2.2 the host was left to `registry-url`, whose RouterOS default
  has not always been Docker Hub.
- **The collector image**, from 1.1.0 on, `jmrplens/mikroscope:1.6.1` on Docker
  Hub and `ghcr.io/jmrplens/mikroscope:1.6.1` on GHCR (each also tagged
  `latest`), over `linux/amd64` and `linux/arm64`, for the compose stacks
  under [`deploy/`](https://github.com/jmrplens/mikroscope/tree/main/deploy).
- **`checksums.txt`**, covering every archive and every agent image tar, a keyless cosign
  signature over it, and an SPDX SBOM per archive, signed in its own right. [Verifying the
  download](https://jmrplens.github.io/mikroscope/install/offline/#download-and-verify) has the commands.

Installing from a release needs no Go toolchain and no checkout. A checkout and Go 1.27 install an
agent built from your own tree instead: `make build` for the CLI, `make build-agent` for the agent,
which `install` and `image` also compile themselves. [Install
methods](https://jmrplens.github.io/mikroscope/install/routes/) compares the ways to get the agent onto a router and what
each one needs.

The `linux/arm/v5`, `linux/arm/v7` and `linux/amd64` builds are cross-built and checked in CI.
Which builds have run on hardware, and on which router, is on [Tested
on](https://jmrplens.github.io/mikroscope/about/status/).

## See also

- [Install methods](https://jmrplens.github.io/mikroscope/install/routes/): which of those files each install method takes,
  and how to verify it.
- [Install the CLI](https://jmrplens.github.io/mikroscope/install/cli/): the archive, `go install` or the install script, at
  the current release.
- [Tested on](https://jmrplens.github.io/mikroscope/about/status/): what the current release has run on, and what it has not.
