f6fc9ef
# Document type identifier
9916b55
document: modulemd
f6fc9ef
# Module metadata format version
9916b55
version: 1
9916b55
data:
f6fc9ef
    # Module name, optional
f6fc9ef
    # Typically filled in by the buildsystem, using the VCS repository
f6fc9ef
    # name as the name of the module.
f6fc9ef
    # name: container-runtime
f6fc9ef
    # Module update stream, optional
f6fc9ef
    # Typically filled in by the buildsystem, using the VCS branch name
f6fc9ef
    # as the name of the stream.
f6fc9ef
    # stream: test
f6fc9ef
    # Module version, integer, optional, cannot be negative
f6fc9ef
    # Typically filled in by the buildsystem, using the VCS commit
f6fc9ef
    # timestamp.  Module version defines upgrade path for the particular
f6fc9ef
    # update stream.
f6fc9ef
    # version: 1
f6fc9ef
    # A short summary describing the module, required
f6fc9ef
    summary: Automates deployment of containerized applications
f6fc9ef
    # A verbose description of the module, required
f6fc9ef
    description: >
f6fc9ef
        Docker is an open-source engine that automates the deployment of any
f6fc9ef
        application as a lightweight, portable, self-sufficient container that will
f6fc9ef
        run virtually anywhere.
f6fc9ef
f6fc9ef
        Docker containers can encapsulate any payload, and will run consistently on
f6fc9ef
        and between virtually any server. The same container that a developer builds
f6fc9ef
        and tests on a laptop will run at scale, in production*, on VMs, bare-metal
f6fc9ef
        servers, OpenStack clusters, public instances, or combinations of the above.
f6fc9ef
    # Module and content licenses in the Fedora license identifier
f6fc9ef
    # format, required
9916b55
    license:
f6fc9ef
        # Module license, required
f6fc9ef
        # This list covers licenses used for the module metadata, SPEC
f6fc9ef
        # files or extra patches
f6fc9ef
        module:
f6fc9ef
            - MIT
f6fc9ef
        # Content license, optional
f6fc9ef
        # A list of licenses used by the packages in the module.
f6fc9ef
        # This should be populated by build tools.
f6fc9ef
        content:
f6fc9ef
            - ASL 2.0
f6fc9ef
    # Extensible metadata block
f6fc9ef
    # A dictionary of user-defined keys and values.
f6fc9ef
    # Optional.  Defaults to an empty dictionary.
f6fc9ef
    # xmd:
f6fc9ef
    #   some_key: some_data
f6fc9ef
    # Module dependencies, if any.  Optional.
f6fc9ef
    # TODO: Provides, conflicts, obsoletes, recommends, etc.
f6fc9ef
    # TODO: Stream name globbing or regular expression support
f6fc9ef
    buildrequires:
f6fc9ef
        base-runtime: master
f6fc9ef
    requires:
f6fc9ef
        base-runtime: master
f6fc9ef
    # References to external resources, typically upstream, optional
9916b55
    references:
f6fc9ef
        # Upstream community website, if it exists, optional
f6fc9ef
        community: https://projectatomic.io
f6fc9ef
        # Upstream documentation, if it exists, optional
f6fc9ef
        documentation: http://www.projectatomic.io/docs/
f6fc9ef
        # Upstream bug tracker, if it exists, optional
f6fc9ef
        tracker: https://github.com/projectatomic/docker
f6fc9ef
    # Profiles define the end user's use cases for the module and consist
f6fc9ef
    # of package lists of components to be installed by default if this
f6fc9ef
    # module is enabled.  The keys here are the profile names and contain
f6fc9ef
    # package lists by component type. See the example.
f6fc9ef
    # Optional, defaults to no profile definitions.
f6fc9ef
    # TODO: Profiles deserve detailed documentation.
9916b55
    profiles:
f6fc9ef
        # The default profile, used unless any other profile was selected.
f6fc9ef
        # Optional, defaults to empty lists.
9916b55
        default:
9916b55
            rpms:
f6fc9ef
                - docker
f6fc9ef
        # An example minimal profile only installing one component.
f6fc9ef
        # Optional, just like any other profile.
f6fc9ef
        # XXX: What happens if the system wants to use an undefined
f6fc9ef
        # profile name?  Should we fall back to "default" or just assume
f6fc9ef
        # an empty list?
f6fc9ef
        minimal:
f6fc9ef
            # A verbose description of the module, optional
f6fc9ef
            description: Minimal profile installing only the docker package.
f6fc9ef
            rpms:
f6fc9ef
                - docker
f6fc9ef
        vim:
f6fc9ef
            description: Profile for vim users which installs Dockerfile syntax support for vim.
f6fc9ef
            rpms:
f6fc9ef
                - docker
f6fc9ef
                - docker-vim
f6fc9ef
        zsh:
f6fc9ef
            description: Profile for zsh users which installs completion.
f6fc9ef
            rpms:
f6fc9ef
                - docker
f6fc9ef
                - docker-zsh-completion
f6fc9ef
        full:
f6fc9ef
            description: Install all packages.
f6fc9ef
            rpms:
f6fc9ef
                - docker
f6fc9ef
                - docker-common
f6fc9ef
                - docker-rhel-push-plugin
f6fc9ef
                - docker-vim
f6fc9ef
                - docker-zsh-completion
f6fc9ef
                - docker-rhsubscription
f6fc9ef
                - docker-v1.10-migrator
f6fc9ef
                - docker-common
f6fc9ef
                - docker-logrotate
f6fc9ef
                - docker-lvm-plugin
f6fc9ef
                - docker-novolume-plugin
f6fc9ef
    # Module API
f6fc9ef
    # TODO: Define more API types
9916b55
    api:
f6fc9ef
        # The module's public RPM-level API.
f6fc9ef
        # A list of binary RPM names that are considered to be the
f6fc9ef
        # main and stable feature of the module; binary RPMs not listed
f6fc9ef
        # here are considered "unsupported" or "implementation details".
f6fc9ef
        # In the example here we don't list the xyz package as it's only
f6fc9ef
        # included as a dependency of xxx.  However, we list a subpackage
f6fc9ef
        # of bar, bar-extras.
f6fc9ef
        # Optional, defaults to an empty list.
9916b55
        rpms:
f6fc9ef
            - docker
f6fc9ef
            - docker-common
f6fc9ef
            - docker-rhel-push-plugin
f6fc9ef
            - docker-vim
f6fc9ef
            - docker-zsh-completion
f6fc9ef
            - docker-rhsubscription
f6fc9ef
            - docker-v1.10-migrator
f6fc9ef
            - docker-common
f6fc9ef
            - docker-logrotate
f6fc9ef
            - docker-lvm-plugin
f6fc9ef
            - docker-novolume-plugin
f6fc9ef
    # Module component filters
f6fc9ef
    filter: ~
f6fc9ef
        # RPM names not to be included in the module.
f6fc9ef
        # By default, all built binary RPMs are included.  In the example
f6fc9ef
        # we exclude a subpackage of bar, bar-nonfoo from our module.
f6fc9ef
        # Optional, defaults to an empty list.
f6fc9ef
        # rpms:
f6fc9ef
        #     - baz-nonfoo
f6fc9ef
    # Functional components of the module, optional
9916b55
    components:
f6fc9ef
        # RPM content of the module, optional
f6fc9ef
        # Keys are the VCS/SRPM names, values dictionaries holding
f6fc9ef
        # additional information.
f6fc9ef
        # TODO: Define architectures to build for
9916b55
        rpms:
f6fc9ef
            docker:
f6fc9ef
                # Why is this component present.
f6fc9ef
                # A simple, free-form string.
f6fc9ef
                # Required.
f6fc9ef
                rationale: This package carries the primary functionality.
f6fc9ef
                # Use this repository if it's different from the build
f6fc9ef
                # system configuration.
f6fc9ef
                # Optional.
f6fc9ef
                # repository: http://pkgs.fedoraproject.org/cgit/rpms/docker
f6fc9ef
                # Use this lookaside cache if it's different from the
f6fc9ef
                # build system configuration.
f6fc9ef
                # Optional.
f6fc9ef
                # cache: https://example.com/cache
f6fc9ef
                # Use this specific commit has, branch name or tag for
f6fc9ef
                # the build.  If ref is a branch name, the branch HEAD
f6fc9ef
                # will be used.  If no ref is given, the master branch
f6fc9ef
                # is assumed.
f6fc9ef
                # Optional.
f6fc9ef
                ref: f26
f6fc9ef
                buildorder: 2
f6fc9ef
            golang:
f6fc9ef
                rationale: BR of docker.
f6fc9ef
                ref: f26
f6fc9ef
                buildorder: 1
f6fc9ef
f6fc9ef
f6fc9ef
        # Module content of this module
f6fc9ef
        # Included modules are built in the shared buildroot, together with
f6fc9ef
        # other included content.  Keys are module names, values additional
f6fc9ef
        # component information.
f6fc9ef
        # Optional
f6fc9ef
        # modules:
f6fc9ef
        #     includedmodule:
f6fc9ef
        #         # Why is this module included?
f6fc9ef
        #         # Required
f6fc9ef
        #         rationale: Included in the stack, just because.
f6fc9ef
        #         # Link to VCS repository that contains the modulemd file
f6fc9ef
        #         # if it differs from the buildsystem default configuration.
f6fc9ef
        #         # Optional.
f6fc9ef
        #         repository: https://pagure.io/includedmodule.git
f6fc9ef
        #         # See the rpms ref.
f6fc9ef
        #         ref: somecoolbranchname
f6fc9ef
        #         # See the rpms buildorder.
f6fc9ef
        #         buildorder: 100