revert 'fix kyaml issue with multiline scalars'

This commit is contained in:
Natasha Sarkar
2021-07-15 14:24:39 -07:00
parent 0537b59f27
commit e17785af21
7 changed files with 19 additions and 75 deletions

View File

@@ -6,6 +6,6 @@ This code is used by the starlark runtime. We copied it in to reduce the depende
## go-yaml/yaml
This code is used extensively by kyaml. It is a copy of upstream at a particular revision that kubectl is using, with fixes we need cherry-picked on top ([#753](https://github.com/go-yaml/yaml/pull/753), [#766](https://github.com/go-yaml/yaml/pull/766)). For background information on this problem, see https://github.com/kubernetes-sigs/kustomize/issues/3946.
This code is used extensively by kyaml. It is a copy of upstream at a particular revision that kubectl is using, with fixes we need cherry-picked on top ([#753](https://github.com/go-yaml/yaml/pull/753)). For background information on this problem, see https://github.com/kubernetes-sigs/kustomize/issues/3946.
This copy was created using the [git subtree technique](https://medium.com/@porteneuve/mastering-git-subtrees-943d29a798ec) and can be recreated on top of a new version of go-yaml v3 using the [update-go-yaml.sh](update-go-yaml.sh) script. To add an additional go-yaml PR to be cherry-picked, simply update the script's `GO_YAML_PRS` variable. Please note that there is nothing special about the fork directory, so copy-paste with manual edits will work just fine if you prefer.

View File

@@ -46,9 +46,6 @@ var unmarshalTests = []struct {
map[string]string{"v": "hi"},
}, {
"v: hi", map[string]interface{}{"v": "hi"},
}, {
"v: 'hi\nthis is a\nmultiline string\n'",
map[string]interface {}{"v":"hi\nthis is a\nmultiline string\n"},
}, {
"v: true",
map[string]string{"v": "true"},

View File

@@ -1699,8 +1699,8 @@ func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []by
if !put_break(emitter) {
return false
}
i++
} else if !write_break(emitter, value, &i) {
}
if !write_break(emitter, value, &i) {
return false
}
//emitter.indention = true

View File

@@ -2653,7 +2653,7 @@ func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, si
// Do we need to fold line breaks?
if len(leading_break) > 0 && leading_break[0] == '\n' {
if len(trailing_breaks) == 0 {
s = append(s, '\n')
s = append(s, ' ')
} else {
s = append(s, trailing_breaks...)
}

View File

@@ -23,7 +23,7 @@ export GOYAML_SHA=$1
export GOYAML_REF="goyaml-$GOYAML_SHA"
# The PRs we need to cherry-pick onto the above commit
declare -r GO_YAML_PRS=(753 766)
declare -r GO_YAML_PRS=(753)
REPO_ROOT=$(git rev-parse --show-toplevel)
declare -r REPO_ROOT

View File

@@ -51,52 +51,6 @@ items:
`,
},
{
name: "round_trip_with_multiline_scalar",
input: `
apiVersion: custom
kind: Custom
metadata:
name: my-resource
spec:
validation:
openAPIV3Schema:
description: CanonicalService is the Schema for the canonicalservices API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
`,
expectedOutput: `
apiVersion: custom
kind: Custom
metadata:
name: my-resource
spec:
validation:
openAPIV3Schema:
description: CanonicalService is the Schema for the canonicalservices API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
`,
},
{
name: "function_config",
input: `

View File

@@ -20,16 +20,14 @@ spec:
description: Workspace is the Schema for the workspaces API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: |-
Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -113,9 +111,8 @@ spec:
description: The key to select.
type: string
name:
description: |-
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or its key
@@ -125,11 +122,10 @@ spec:
- key
type: object
fieldRef:
description: |-
Selects a field of the pod: supports metadata.name,
description: 'Selects a field of the pod: supports metadata.name,
metadata.namespace, metadata.labels, metadata.annotations,
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP,
status.podIPs.
status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath is written
@@ -143,16 +139,14 @@ spec:
- fieldPath
type: object
resourceFieldRef:
description: |-
Selects a resource of the container: only resources
description: 'Selects a resource of the container: only resources
limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage,
requests.cpu, requests.memory and requests.ephemeral-storage)
are currently supported.
are currently supported.'
properties:
containerName:
description: |-
Container name: required for volumes, optional
for env vars
description: 'Container name: required for volumes, optional
for env vars'
type: string
divisor:
anyOf:
@@ -176,9 +170,8 @@ spec:
be a valid secret key.
type: string
name:
description: |-
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must