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

spec: Define image format string #586

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Commits on Mar 29, 2016

  1. spec: Define image format string

    Add an "extra" spec section for image format string
    
    This format is actually used by the appc spec golang reference
    implementation and other tools (like rkt) but it has not been defined.
    
    There're also various unclear cases in the actual implementationt that
    this definition tries to clarify, but this is going to change some
    behaviors.
    
    The main problem is related to the label values. Since labels are
    strings, they can contain any character (also special character like
    carriage return, tabs etc...).
    
    With the current implementation there are two main issues relatd to
    label value being strings:
    * label value containing `,` `:` and `=` cannot be used inside the image format
    string. There's the need to find a way to escape them.
    
    * Many special character (like non printable characters) are difficult
    to represent in the actual format.
    
    Instead name and label name are of type ACIIdentifier, so they can
    contain only a specific set of character and in this set `,`, `:` and
    `=` aren't included.
    
    Instead of adding another ad hoc escape rule this spec requires that the
    labels value must be URL escaped (percent encoding) with UTF-8 encoding.
    
    This will break some current implementations:
    
    For example rkt stage1 has a version like `1.2.1+gite568957-dirty` and
    with the current image format parsing it works. Now, with the need to URL
    escape the labels values it should be expressed as
    `1.2.1%2Bgite568957-dirty` (since passing `1.2.1+gite568957-dirty` will
    be interpreted as `1.2.1 gite568957-dirty`).
    sgotti committed Mar 29, 2016
    Configuration menu
    Copy the full SHA
    6ee1d67 View commit details
    Browse the repository at this point in the history