1
0
mirror of https://github.com/ko-build/ko.git synced 2024-12-12 08:54:09 +02:00
ko-build/pkg/resolve
Matt Moore ff61ea330c
Refactor how/where ko:// is handled. (#153)
This change more or less completely changes how `ko://` is handled internally to `ko`, but the user-facing changes should only be net-positive.  `ko://` was previously stripped at the highest level, and the build logic was unaware, which had some undesirable diagnostic/functional implications that are collectively addressed in this change.

With this change, the `ko://` prefix is preserved and passed to the build logic, which internally parses a new `reference` type (this was useful to have Go's type checker find all of the places that needed fixing).  The main functional differences are:
1. If a reference is prefixed with `ko://` we will now fail fast in `IsSupportedReference` regardless of whether `--strict` is passed.
2. If a reference is prefixed with `ko://` it will bypass the prefix check, which allows the use of `ko://github.com/another/repo` that references a vendored binary package.

For `2.` the absence of the module prefix causes the filtering logic Jon introduced to avoid the reference.  This was critical for efficiency when `ko://` isn't around because we feed every string in the yaml through it, but when the user has explicitly decorated things it's the perfect thing to be sensitive to.

Fixes: https://github.com/google/ko/issues/146
Fixes: https://github.com/google/ko/issues/152
2020-04-29 19:32:30 -07:00
..
doc.go Initial commit 2019-03-14 14:23:47 -04:00
resolve_test.go Refactor how/where ko:// is handled. (#153) 2020-04-29 19:32:30 -07:00
resolve.go Refactor how/where ko:// is handled. (#153) 2020-04-29 19:32:30 -07:00
selector_test.go Ignore null YAML documents when using a label selector. (#107) 2019-11-07 16:12:23 -06:00
selector.go Ignore null YAML documents when using a label selector. (#107) 2019-11-07 16:12:23 -06:00