distribution/ROADMAP.md
Stephen J Day 574c9c821b Add ROADMAP.md to the project and cleanup existing items
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-18 16:15:34 -07:00

94 lines
No EOL
4.1 KiB
Markdown

# Roadmap
This document covers the high-level the goals and dates for features in the
docker registry. The distribution project currently has several components to
report in the road map, which are covered below.
## Goals
- Replace the existing [docker registry](github.com/docker/docker-registry)
implementation as the primary implementation.
- Replace the existing push and pull code in the docker engine with the
distribution package.
- Define a strong data model for distributing docker images
- Provide a flexible distribution tool kit for use in the docker platform
## Components
The distribution project has a few components with independent road maps and
road maps related to the docker project. They are covered below.
### Registry
The current status of the registry road map is managed via github
[milestones](https://github.com/docker/distribution/milestones). Upcoming
features and bugfixes will be added to relevant milestones. If a feature or
bugfix is not part of a milestone, it is currently unscheduled for
implementation.
The high-level goals for each registry release are part of this section.
#### 2.0
Milestones: [2.0.0-beta](https://github.com/docker/distribution/milestones/Registry/2.0.0-beta) [2.0.0-rc](https://github.com/docker/distribution/milestones/Registry/2.0.0-rc) [2.0.0](https://github.com/docker/distribution/milestones/Registry/2.0.0)
The 2.0 release is the first release of the new registry. This is mostly
focused on implementing the [new registry
API](https://github.com/docker/distribution/blob/master/doc/spec/api.md) with
a focus on security and performance.
Features:
- Faster push and pull
- New, more efficient implementation
- Simplified deployment
- Full API specification for V2 protocol
- Pluggable storage system (s3, azure, filesystem and inmemory supported)
- Immutable manifest references ([#46](https://github.com/docker/distribution/issues/46))
- Webhook notification system ([#42](https://github.com/docker/distribution/issues/42))
- Native TLS Support ([#132](https://github.com/docker/distribution/pull/132))
- Pluggable authentication system
- Health Checks ([#230](https://github.com/docker/distribution/pull/230))
#### 2.1
Milestone: [2.1](https://github.com/docker/distribution/milestones/Registry/2.1)
Planned Features:
> **NOTE:** This feature list is incomplete at this time.
- Support for Manifest V2, Schema 2 and explicit tagging objects ([#62](https://github.com/docker/distribution/issues/62), [#173](https://github.com/docker/distribution/issues/173))
- Mirroring ([#19](https://github.com/docker/distribution/issues/19))
- Flexible client package based on distribution interfaces ([#193](https://github.com/docker/distribution/issues/193)
#### 2.2
Milestone: [2.2](https://github.com/docker/distribution/milestones/Registry/2.2)
TBD
### Docker Platform
To track various requirements that must be synced with releases of the docker
platform, we've defined labels corresponding to upcoming releases. Each
release also has a project page explaining the relationship of the
distribution project with the docker project.
Please see the following table for more information:
| Platform Version | Milestone | Project |
|-----------|------|-----|
| Docker 1.6 | [Docker/1.6](https://github.com/docker/distribution/labels/docker%2F1.6) | [Project](https://github.com/docker/distribution/wiki/docker-1.6-Project-Page) |
| Docker 1.7| [Docker/1.7](https://github.com/docker/distribution/labels/docker%2F1.7) | [Project](https://github.com/docker/distribution/wiki/docker-1.7-Project-Page) |
| Docker 1.8| [Docker/1.8](https://github.com/docker/distribution/labels/docker%2F1.8) | [Project](https://github.com/docker/distribution/wiki/docker-1.8-Project-Page) |
### Package
The distribution project, at its core, is a set of Go packages that make up
distribution components. At this time, most of these packages make up the
registry implementation. The package itself is considered unstable. If you're
using it, please take care to vendor the dependent version. For feature
additions, please see the Registry section. In the future, we may break out a
separate road map for distribution specific features that apply to more than
just the registry.