Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit b81c279

Browse files
Revert document detection on single file format as we lose most of the validation errors while detecting which part is what.
This is clearly not the right solution, so I prefer to revert and go back to the old behavior: fixed order. Signed-off-by: Silvin Lubecki <[email protected]>
1 parent 4de4c3f commit b81c279

File tree

3 files changed

+12
-33
lines changed

3 files changed

+12
-33
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
version: 0.1.0
2+
name: myapp
3+
maintainers:
4+
- name: dev
5+
6+
---
17
version: "3.4"
28
services:
39
test:
@@ -8,9 +14,3 @@ myapp:
814
command1: cat
915
command2: foo
1016
command3: bar
11-
---
12-
version: 0.1.0
13-
name: myapp
14-
maintainers:
15-
- name: dev
16-

loader/loader.go

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ import (
88
"path/filepath"
99

1010
"github.com/docker/app/internal"
11-
"github.com/docker/app/specification"
1211
"github.com/docker/app/types"
13-
"github.com/docker/cli/cli/compose/loader"
14-
"github.com/docker/cli/cli/compose/schema"
1512
"github.com/docker/docker/pkg/archive"
1613
"github.com/pkg/errors"
1714
)
@@ -69,26 +66,12 @@ func LoadFromSingleFile(path string, r io.Reader, ops ...func(*types.App) error)
6966
return nil, errors.Errorf("malformed single-file application: expected 3 documents, got %d", len(parts))
7067
}
7168

72-
var (
73-
metadata io.Reader
74-
compose io.Reader
75-
params io.Reader
76-
)
77-
for i := 0; i < 3; i++ {
78-
parsed, err := loader.ParseYAML(parts[i])
79-
if err != nil {
80-
return nil, err
81-
}
82-
if err := specification.Validate(parsed, internal.MetadataVersion); metadata == nil && err == nil {
83-
metadata = bytes.NewBuffer(parts[i])
84-
} else if err2 := schema.Validate(parsed, schema.Version(parsed)); compose == nil && err2 == nil {
85-
compose = bytes.NewBuffer(parts[i])
86-
} else if params == nil {
87-
params = bytes.NewBuffer(parts[i])
88-
} else {
89-
return nil, errors.New("malformed single-file application")
90-
}
91-
}
69+
// 0. is metadata
70+
metadata := bytes.NewBuffer(parts[0])
71+
// 1. is compose
72+
compose := bytes.NewBuffer(parts[1])
73+
// 2. is parameters
74+
params := bytes.NewBuffer(parts[2])
9275

9376
appOps := append([]func(*types.App) error{
9477
types.WithComposes(compose),

loader/loader_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ func TestLoadFromSingleFile(t *testing.T) {
4646
name: "mixed-carriage-return-line-feed",
4747
file: fmt.Sprintf("%s\r\n---\r\n%s\r\n---\n%s", metadata, compose, params),
4848
},
49-
{
50-
name: "unordered-documents",
51-
file: fmt.Sprintf("%s\n---\n%s\n---\n%s", params, metadata, compose),
52-
},
5349
}
5450
for _, test := range testCases {
5551
t.Run(test.name, func(t *testing.T) {

0 commit comments

Comments
 (0)