1
0
mirror of https://github.com/opencontainers/image-spec.git synced 2026-02-05 09:45:41 +01:00

74 Commits

Author SHA1 Message Date
Brandon Mitchell
558802debc Docs: Update pandoc for rendering documentation
The main reason for this is to fix the links in the output docs, which currently all 404.
This upgrades pandoc to 3.1, which isn't the latest, due to a regression in the relative links between markdown files.
I pulled out the "header.html" logic, injected the title directly, and configured the build to embed images into the output doc for better portability (and the ability to generate dev docs).

Signed-off-by: Brandon Mitchell <git@bmitch.net>
2025-07-17 13:25:21 -04:00
Miloslav Trmač
d0e1005127 Split github.com/opencontainers/image-spec/schema into a separate Go module
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2025-07-15 15:16:55 +02:00
Brandon Mitchell
1d3daab196 Update linter and Go releases
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2024-09-05 16:24:32 -04:00
Austin Vazquez
a32e6c3bdc Pin golangci-lint for Go v1.20
This changes pins golangci-lint to v1.55.2 for Go v1.20 to resolve CI
issues where golangci-lint v1.56.1 requires Go v1.21 or higher.

Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-02-11 17:57:53 +00:00
Sebastiaan van Stijn
93f6e65855 Makefile: remove stray trailing space (#1126)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-09-22 08:21:45 -07:00
Brandon Mitchell
061cba3688 Fix golangci-lint install on older versions of Go
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2023-09-03 16:19:19 -04:00
Brandon Mitchell
9ac8f92d3f Quote lint-md wildcard expression
This avoids a potential foot gun, where a future md file in a
sub directory would match the wildcard in the shell, and not pass
the expression to the linter.

Signed-off-by: Brandon Mitchell <git@bmitch.net>
2023-08-04 16:26:56 -04:00
Brandon Mitchell
a6af2b480d Add a markdown linter and fix linting issues
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2023-08-01 11:05:33 -04:00
Brandon Mitchell
b29a06cf3c Hacking markdown and Makefile cleanup
- Remove/replace stale references from hacking doc.
- Add spacing for markdown.
- Add code block language for syntax highlighting.
- Remove leading "$ " from commands without output.
- Move links to end.
- Switch to automatically generated help in Makefile.

Signed-off-by: Brandon Mitchell <git@bmitch.net>
2023-06-29 15:34:54 -04:00
Jon Johnson
63b8bd02f5 Remove artifact manifest
The artifact manifest does not confer any additional benefits beyond the
existing image manifest. Drop it for the sake of backward compatibility.

Remove references to artifact.md, regenerate graph.

Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
2023-04-13 10:39:23 -07:00
Austin Vazquez
1f601840b6 Add Go 1.20 support
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2023-02-02 21:12:51 +00:00
Sajay Antony
0a97fe79a8 docs: Added artifact.md to docs and spec.md
Added artifact.md and updated the media-types diagram dot and png.

Co-authored-by: Brandon Mitchell <git@bmitch.net>
Signed-off-by: Sajay Antony <sajaya@microsoft.com>
2022-09-26 13:48:49 +00:00
Brandon Mitchell
4c156747ac Use go install and full path to commands
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2022-09-09 17:04:15 -04:00
Brandon Mitchell
08825b8639 Pinning version of golangci-lint to support 1.16
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2022-05-10 13:58:03 -04:00
Stephen Day
4533d3e3b2 schema: use Go's embed package instead of esc
Signed-off-by: Stephen Day <stephen.day@getcruise.com>
2021-12-02 22:47:42 +00:00
Stephen Day
d147780bef .tool: remove lint tool, call linter directly
Signed-off-by: Stephen Day <stephen.day@getcruise.com>
2021-12-02 20:46:28 +00:00
Vincent Batts
d3cd202b02 *: switch to golangci-lint
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2021-12-02 15:02:03 -05:00
Vincent Batts
de28903cc0 Makefile: stale installation of glide was failing
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2021-11-24 00:06:23 -05:00
Vincent Batts
8d2a44c9c3 Merge pull request #846 from vbatts/oci-container
Makefile: switch to the new OCI container image
2021-05-20 12:14:45 -05:00
Vincent Batts
b61989033d Makefile: switch to the new OCI container image
like
199cf0e5f6 (diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52)

Fixes: #773
Closes: #774

Signed-off-by: Yang Bo <bo@hyper.sh>
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2021-05-14 11:03:16 -04:00
vsoch
9ed9683ac1 adding github workflow to render docs and lint
This should be equivalent to the .travis-ci workflow, but run
in GitHub actions. I am using the exact commit of the v1 release,
as that is considered safer practice than the tag/release itself.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-05-13 10:41:46 -06:00
Vincent Batts
436620164e pandoc: point to a joint OCI org image
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2020-12-07 08:58:00 -05:00
Vincent Batts
cbe01ab656 Makefile: variable cleanup and creation
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-12-18 15:49:00 -05:00
Vincent Batts
af4184e45f Makefile: use make builtin rather than shell
Since READLINK(1) varies across platforms, namely darwin version does
not have the `-f` flag, then don't rely on the shell. Especially since
gnu make already has this as a builtin function.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-06-22 12:43:06 -04:00
Aleksa Sarai
544e5ff9e3 conversion: add document about image -> runtime configuration
Add documentation about how to convert from an OCI image configuration
to an OCI runtime configuration. In particular, describe precisely what
fields need to be filled given a particular configuration.

The fields have been grouped into several categories, because some of
the image fields are not as well-thought-out as others (such as the
resource limitation fields, which should really be decided by the user
not by the image creator). In addition, some fields (such as Volumes)
cannot be understood by a generic configuration converter.

In addition, the annotation org.opencontainers.imageSpec.exposedPorts
has been defined in order to allow for hinting to runtimes what ports
are exposed by a container. The same for
org.containers.imageSpec.stopSignal.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2017-05-31 09:01:19 +10:00
Vincent Batts
328225f139 Makefile: fix src path for local pandoc builds
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-03-23 15:35:42 -04:00
Jonathan Boulle
37f2a1b20c Merge pull request #602 from vbatts/implementations
implementations: add a list of known implementations
2017-03-09 21:51:17 +01:00
Vincent Batts
1121305700 implementations: add a list of known implementations
Fixes #126

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-03-09 15:29:21 -05:00
W. Trevor King
92f6ce6315 Makefile: Add .install.* to .PHONY
Also consolidate the install.tools entry in the .PHONY block at the
end of the Makefile.  The $(var:pattern=replacement) syntax is
documented in [1].

[1]: https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#index-patsubst-1

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-03-09 09:53:51 -08:00
W. Trevor King
8d7de8631c Makefile: Add .install.esc and make it part of install.tools
So we can 'make schema-fs' in Travis.

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-03-09 09:53:01 -08:00
Vincent Batts
fec31f445e docs: image base reference
Fixes #247

this makes an ephemeral header that gets included into the html doc that
bases the images path to pull from the same tag on github.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-03-08 17:09:24 -05:00
Vincent Batts
5ebd75e5a7 Makefile: newer pandoc and fancy xelatex
With #586 there are math spec characters introduced. This required a few
new latex packages and specifying xelatex.

Fixes #596

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-03-08 15:01:22 -05:00
Vincent Batts
ab461b048b *: manifest-list -> image-index
It has come up a number of times that the manifest-list, while
intentionally suited for pointing to a list of manifests, is intended to
be a general index and entry-point. During the image-layout addition of
`/index.json`, replacing the ./refs/ directory, it was recommended that
we finally make this distinction in the manifest-list as well.

This rename does not affect the compatibility with the docker v2.s2
manifest-list, as it is primarily a semantic change.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-02-16 12:05:37 -05:00
Vincent Batts
7f596917ed Makefile: suitable "default" target
I like that there is a "help" target, but the default ought to do
sensible things. :-)

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-02-15 11:05:49 -05:00
Vincent Batts
0556a6bee5 image-layout: ./refs/ -> index.json
From the 2017-01-25 call we agreed to keep the manifest list as the
entry point for accessing objects. The index concept is only a more
generic use of the manifest-list.
https://github.com/opencontainers/image-spec/pull/438#issuecomment-275252735

This change uses the manifest-list as an index that allows
implementations to work around needing to walk/traverse the `./refs/`
directory.

As the `./refs/` directory was REQUIRED to exist, with its removal this
`index.json` is REQUIRED to be present.

This includes validating the image-layout example.

This also makes `validate-examples` automatically update `schema-fs` if
there have been changes to the JSON schema.

Obsoletes #438

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-02-06 15:11:39 -05:00
Stephen Day
e29647f97a Merge pull request #528 from runcom/remove-vendoring
*: remove vendoring
2017-01-27 12:44:11 -08:00
Antonio Murdaca
393e2a471a *: remove vendoring
specs-go acts as a package. No need to have vendoring in here as it
would just cause major pain to people using the specs Go library.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2017-01-25 15:18:26 +01:00
W. Trevor King
f760279363 considerations: DRY extensibility
As I suggested in the PR landing these blocks [1,2,3].  I've shifted
the extensibility section to a separate considerations.md, since it's
a generic policy that applies to both our manifest and manifest-list.

The extensibility requirements might arguably apply to our other JSON
types as well (like annotations, which were recently DRYed up in
f15a268, annotations: make a designated doc and DRY a bit, 2016-12-15,
#501).  The new extensibility section sets the stage for that, but
I've left the other types off this commit to focus on making the
current requirements more DRY without changing the specified behavior.

My personal preference would be to have separate canonicalization.md
and extensibility.md files, but Jonathan wanted the single file:

On Mon, Oct 10, 2016 at 09:22:46AM -0700, Jonathan Boulle wrote [4]:
> Ehh, I preferred it where it was - now worried about death by a
> thousand files (extensibility, canonicalization, etc etc). Can we
> combine them (into a generic "considerations" document or similar),
> or just put this back?

[1]: https://github.com/opencontainers/image-spec/pull/164#issuecomment-243952187
[2]: https://github.com/opencontainers/image-spec/pull/164#issuecomment-244279771
[3]: https://github.com/opencontainers/image-spec/pull/164#r77871859
[4]: https://github.com/opencontainers/image-spec/pull/340#issuecomment-252670278

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-01-24 11:21:08 -08:00
Stephen Day
84a74b0cec Merge pull request #501 from vbatts/descriptor_annotations
Descriptor annotations
2017-01-24 10:39:57 -08:00
Vincent Batts
f185dd553b *: add new file to the TOC and docs
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-01-24 10:41:39 -05:00
W. Trevor King
fcf134af0c Makefile: Use 'ifdef TRAVIS_COMMIT_RANGE' for git-validation
Only use the auto-ranging when Travis tells us what the range is.  Use
our EPOCH_TEST_COMMIT-based range in all other cases.

ifdef is described in [1].

[1]: https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2017-01-23 15:44:49 -08:00
Stephen J Day
c29a55acf6 Makefile: address problems with updating deps
This fixes the `glide-vc` command to use the glide.lock file to resolve
the dependencies, ensuring that we don't delete test dependencies. We
also fix a sed line to working correctly on other platforms as well
ensure that the tools get updated.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-01-13 12:59:48 -08:00
Doug Davis
27508e2f55 Clean-up spec to remove non-spec-ish items
Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-12-01 05:24:13 -08:00
Lei Jitang
5b271b710a Adjust the doc order of the content table
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-10-23 23:39:53 -04:00
W. Trevor King
dae341ebc8 Drop image tools (cmd/ and image/)
These have been spun off into [1].

# glide.yaml

* Drop runtime-spec (the last reference was removed with
  image/config.go).
* Drop cobra (the last references were removed with cmd/).

# HACKING

The http/FileSystem stuff still applies, since the JSON Schema
validation is staying in this repo.  I've made it's earlier
oci-image-tool references more generic, and adopted the README's
recommended one sentence per line where I touched a line.

[1]: https://github.com/opencontainers/image-tools

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-10-19 21:29:02 -07:00
W. Trevor King
1685baea84 canonicalization: Add recommendations for canonicalization
Spun off from [1], now that we seem to have reached a consensus for
"SHOULD canonical JSON" there.  I've set this up so we have space to
add canonicalization recommendations for other formats, although the
only other basic type discussed in this repository is a gzipped
tarball and that's more than I want to bite off at the moment ;).

[1]: https://github.com/opencontainers/image-spec/issues/259
     Subject: manifest json fields order

Signed-off-by: W. Trevor King <wking@tremily.us>
2016-10-05 10:08:02 -07:00
Jonathan Boulle
44ce8a729b Merge pull request #365 from jonboulle/cleanup
*: split manifest and manifest list documents
2016-10-04 12:48:00 +02:00
Jonathan Boulle
07171f316a *: split manifest and manifest list documents
The combined manifest/manifest-list document is long and unwieldy.
Furthermore, the Image Manifest is arguably more important (since the
Manifest List is optional), and so it should stand alone as a
first-class document.

Signed-off-by: Jonathan Boulle <jonathanboulle@gmail.com>
2016-10-04 12:12:25 +02:00
Vincent Batts
fbf2758df0 Makefile: update the version of pandoc
Before it was just using the latest image build, which was
1.13.2-4.fc23. With this change it will more explicitly use a tagged
version.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-10-02 04:18:59 -04:00
Vincent Batts
17c1f00097 *: rename serialization.md -> config.md
Closes: https://github.com/opencontainers/image-spec/issues/283

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2016-09-13 17:21:13 -04:00