# commit to be tagged for new release
commit = "HEAD"

project_name = "containerd"
github_repo = "containerd/containerd"

# previous release
previous = "v1.0.0-beta.3"

pre_release = true

preface = """\
The final 1.0 release stretch has been reached after 7 alphas and 4 betas full
of stability fixes, hardening, and API improvements. This release candidate
continues that pattern in including stability fixes, usability improvements and
performance optimizations.

As part of the preparation for supporting the release of Containerd 1.0, the
governance model has been updated. The same as in previous versions, the day to
day management of the project is taken care of by the maintainers. The roles
of chief maintainer and BDFL have been removed and a technical steering
committee has been added as an escalation point when consensus cannot be reached
among maintainers. See https://github.com/moby/tsc."""

# notable prs to include in the release notes, 1234 is the pr number
[notes]

  [notes.ctr]
  title= "Shim Memory Improvements"
  description = """\
The shim memory usage has been identified as a key component to optimize. The
shim gets run for every container making memory usage multiplied by the
number of containers on a machine, requiring lower memory usage in order to
increase density.

In profiling the memory usage of the shim, it was discovered that the HTTP2
and GRPC stacks were accounting for a majority of the usage. Since the RPC
requests to the shim are fairly simple and there is no need for handling many
clients, a simpler protocol is now used with much less overhead. In order to
avoid changing the client or server code, ttrpc is used to generate code
similar to GRPC using the same protocol definitions, but using the lighter
weight protocol. This had the effect of drastically reducing the memory
usage of the shim.

Memory improvements over beta 2...
```
  RSS CMD
 3644 containerd-shim -namespace default -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/default/test10 -address /run/containerd/containerd.sock -containerd-binary /usr/local/bin/containerd -debug
15320 docker-containerd-shim --namespace moby --workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/ffa219303c1419b179393a1123f176bb4268337432b0ca7945bc7ac66db73cad --address /var/run/docker/containerd/docker-containerd.sock --runtime-root /var/run/docker/
```

See [ttrpc repository](https://github.com/stevvooe/ttrpc) for implementation."""

  [notes.gc]
  title= "Garbage Collector Improvements"
  description = """\
Garbage collection is now scheduled by a background process which watches
changes and tracks the amount of time garbage collection is taking. It is able
to use that information to schedule garbage collection based on configuration
options. The default configuration option aims to limit the amount of time the
metadata store is locked for garbage collection to 20ms of every second.

Additionally image removal now has an option to synchronously cleanup all
referenced resources (such as snapshots). This option immediately schedules a
garbage collection and waits for it to complete before returning to the client.
Since the time to remove a snapshot depends on the size of the snapshot, the
time to synchronously remove an image cannot be consistent. For faster and
more consistent removals, images should be deleted asynchronously whenever
possible. Asynchronous remains the default."""


[breaking]
	[breaking.api]
	pr = 1797
	description = "The snapshots GRPC service was renamed from snapshot."

	[breaking.shim]
	pr = 1767
	description = """\
The shim protocol has changed to use ttrpc. The new protocol does not use
http2 and is not compatible with previous shim versions using grpc."""
