Skip to content
This repository has been archived by the owner on Aug 14, 2020. It is now read-only.

Commit

Permalink
Merge pull request #497 from jonboulle/master
Browse files Browse the repository at this point in the history
appc: v0.7.0 release
  • Loading branch information
jonboulle committed Sep 22, 2015
2 parents cdab322 + dd3ee2b commit 0d75d36
Show file tree
Hide file tree
Showing 15 changed files with 57 additions and 22 deletions.
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
### v0.7.0

Next major release of the spec, with a lot of tooling improvements, wording clarifications, and one breaking schema change from the previous release.

Spec changes since v0.6.1:
- The `mount` objects in pod manifests now refer directly to a path rather than referencing an app's mountPoint. This makes it easier for implementations to provide supplementary, arbitrary mounts in pods without needing to modify app sections in the pod manifest. This is a breaking schema change; however, implementations are suggested to preserve similar behaviour to the previous three-level mount mappings by continuing to use mountPoints name fields to generate mount<->volume mappings (#364, #495)
- The resource/cpu unit has changed to cpu cores, instead of millicores (#468)
- The wording around unpacking of ACI dependencies was reworked to clarify the expected order of unpacking (#425, #431, #494)
- The wording around mounting volumes was expanded to advise much more explicit behaviour and protect various attack vectors for hosts (#431, #494)
- App sections now support a `supplementaryGroups` field, which allows users to specify a list of additional GIDs that the processes of the app should run with (#339)
- A new "Dependency Matching" section better explains the label matching process during dependency resolution (#469)
- Clarified wording around the "empty" volume type (#449)

Tooling changes and features:
- Added an `IsValidOSArch` function implementations can use
- When patching ACIs that do not have an `app` section in their manifest, actool will now automatically inject an App iff the user specifies an exec statement (#473, #489)
- actool now warns if a manifest's ACVersion is too old (#322)
- The NewCompressedReader function in the aci package now returns an io.ReadCloser instead of an io.Reader to facilitate closing the reader in the case of xz compression. (#462)
- Added a new last-ditch parser of pod and image manifests to facilitate retrieving some debugging information for badly-formed manifests (#477)

Schema and tooling bugfixes:
- actool now validates layouts before opening output file so that it does not create empty files or truncate existing ones if a layout is invalid (#322)
- Fixed a panic when `actool patch-manifest` is supplied with an ACI with no app section in its ImageManifest (#473)
- ACE validator's name is ACName compatible (#448)
- ACE validator's mountpoint checking is now more robust on Linux and works on FreeBSD (#467)
- `build_aci` now works if NO_SIGNATURE is set
- `build_aci` properly generates an armored signature (#460)
- Fixed a typo in the ACE validator (uid should be uuid) (#485)

Other changes:
- Rewrote the kubernetes import path in Godeps (#471)
- pkg/device is now buildable on OS X (#486)
- schema code is now tested against Go 1.5
- Added explicit reference to RFC2119 regarding wording

### v0.6.1

Minor release of the spec; the most important change is adjusting the type for
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ $ find /tmp/my-app/
$ cat /tmp/my-app/manifest
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "my-app",
"labels": [
{"name": "os", "value": "linux"},
Expand Down Expand Up @@ -113,7 +113,7 @@ and verify that the manifest was embedded appropriately
$ tar xf /tmp/my-app.aci manifest -O | python -m json.tool
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"annotations": null,
"app": {
"environment": [],
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.1+git
0.7.0+git
4 changes: 2 additions & 2 deletions ace/image_manifest_main.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"acKind": "ImageManifest",
"name": "coreos.com/ace-validator-main",
"labels": [
{ "name": "version", "value": "0.6.1" },
{ "name": "version", "value": "0.7.0" },
{ "name": "os", "value": "linux" },
{ "name": "arch", "value": "amd64" }
],
Expand Down
4 changes: 2 additions & 2 deletions ace/image_manifest_sidekick.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"acKind": "ImageManifest",
"name": "coreos.com/ace-validator-sidekick",
"labels": [
{ "name": "version", "value": "0.6.1" },
{ "name": "version", "value": "0.7.0" },
{ "name": "os", "value": "linux" },
{ "name": "arch", "value": "amd64" }
],
Expand Down
2 changes: 1 addition & 1 deletion aci/file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func newTestACI(usedotslash bool) (*os.File, error) {
return nil, err
}

manifestBody := `{"acKind":"ImageManifest","acVersion":"0.6.1","name":"example.com/app"}`
manifestBody := `{"acKind":"ImageManifest","acVersion":"0.7.0","name":"example.com/app"}`

gw := gzip.NewWriter(tf)
tw := tar.NewWriter(gw)
Expand Down
2 changes: 1 addition & 1 deletion examples/image.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "example.com/reduce-worker",
"labels": [
{
Expand Down
2 changes: 1 addition & 1 deletion examples/pod_runtime.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"acKind": "PodManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"apps": [
{
"name": "reduce-worker",
Expand Down
4 changes: 2 additions & 2 deletions pkg/acirenderer/acirenderer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2149,7 +2149,7 @@ func TestEmptyRootFsDir(t *testing.T) {
`
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "example.com/test_empty_rootfs"
}
`,
Expand All @@ -2175,7 +2175,7 @@ func TestEmptyRootFsDir(t *testing.T) {
`
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "example.com/test_empty_rootfs_pwl",
"pathWhitelist": ["foo"]
}
Expand Down
2 changes: 1 addition & 1 deletion schema/image_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func TestEmptyApp(t *testing.T) {
imj := `
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "example.com/test"
}
`
Expand Down
6 changes: 3 additions & 3 deletions schema/lastditch/image_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func TestImageManifestWithInvalidName(t *testing.T) {
imj := `
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "` + invalidName + `"
}
`
Expand All @@ -35,7 +35,7 @@ func TestImageManifestWithInvalidName(t *testing.T) {
}
expected := ImageManifest{
ACKind: "ImageManifest",
ACVersion: "0.6.1",
ACVersion: "0.7.0",
Name: invalidName,
}
im := ImageManifest{}
Expand All @@ -51,7 +51,7 @@ func TestBogusImageManifest(t *testing.T) {
bogus := []string{`
{
"acKind": "Bogus",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
}
`, `
<html>
Expand Down
6 changes: 3 additions & 3 deletions schema/lastditch/pod_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func TestBogusPodManifest(t *testing.T) {
`
{
"acKind": "Bogus",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
}
`,
`
Expand All @@ -107,7 +107,7 @@ func podJ(apps, extra string) string {
{
%s
"acKind": "PodManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"apps": [%s]
}`, extra, apps)
}
Expand All @@ -118,7 +118,7 @@ func podI(apps ...RuntimeApp) PodManifest {
apps = AppList{}
}
return PodManifest{
ACVersion: "0.6.1",
ACVersion: "0.7.0",
ACKind: "PodManifest",
Apps: apps,
}
Expand Down
2 changes: 1 addition & 1 deletion schema/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const (
// version represents the canonical version of the appc spec and tooling.
// For now, the schema and tooling is coupled with the spec itself, so
// this must be kept in sync with the VERSION file in the root of the repo.
version string = "0.6.1+git"
version string = "0.7.0+git"
)

var (
Expand Down
2 changes: 1 addition & 1 deletion spec/aci.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ JSON Schema for the Image Manifest (app image manifest, ACI manifest), conformin
```json
{
"acKind": "ImageManifest",
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"name": "example.com/reduce-worker",
"labels": [
{
Expand Down
2 changes: 1 addition & 1 deletion spec/pods.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ JSON Schema for the Pod Manifest, conforming to [RFC4627](https://tools.ietf.org

```json
{
"acVersion": "0.6.1",
"acVersion": "0.7.0",
"acKind": "PodManifest",
"apps": [
{
Expand Down

0 comments on commit 0d75d36

Please sign in to comment.