Skip to content

Tag images based on tool version #44

@ekilmer

Description

@ekilmer

Thinking about best practices for reproducibility, it would be necessary to have tagged Docker images for each tool based on version releases.

Although it is unlikely for formatting to change on releases of mature tools like clang-format, it isn't guaranteed, so if a project or developer wants to use a specific version of a formatting tool for a while then there is no way to do that as of now.

Of course, there are almost an infinite number of ways to organize the tagging system, so I'd like to hear what anyone thinks would be helpful.

I am thinking of at least 3-tier system for image tagging:

  1. :HEAD - Latest version of source code for tool pulled from git master or wherever latest development takes place (it could also be a separate branch if the author likes to keep master branch stable and do next-release dev work on a dev branch). This could run nightly in travis (maybe rename tag to :nightly?).
  2. :latest - Latest stable version release of the tool. This should follow the latest tagged/versioned release of the tool.
  3. :$major.$minor - A tagged major and minor version of the tool for people who like to update dependency versions manually.

Since there are so many tools with guaranteed different methods of versioning, it would be smart to implement this in a way that leaves room for someone to maintain tags at a more granular level like :$major.$minor.$patch or something.

Thoughts? Comments? Concerns?

As for implementation, I haven't thought too hard about how to use Travis most effectively (i.e. build only :HEAD unless there is a new version release). To detect new releases, maybe there is a way to automatically tag by looking at a tool's git/svn tags? This would be a natural correspondence for docker image tags and releases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions