Fixing and communicating the buildstream-docker-images repository structure



Hi all,

I recently had a look a the `buildstream-docker-images` repo, and I
think it's large enough to start thinking about structurenow.

Chandan suggested adding a README outlining how it should be managed,
and we are looking to add several more images for the test suite, so
it's probably not a bad idea to gather some thoughts on it now.

From my POV, we have the following three broad strata of images:

- Images used to run buildstream conveniently and on non-Linux hosts
- Images used to test buildstream in CI
- Images used as base systems in `.bst` files

Currently, the repository structure really does not convey this,
instead...

We have:

- `buildstream-fedora`, which serves as both a testing image and a
  runtime image
- `artifact-cache`, a runtime image
- `debian`, which serves only as a test image, but isn't named
  as/stored with the other testing image
- `testsuite/debian-8`, a test image
- `image-tools`, which is the only base system image, but stored
  alongside runtime images

As a starting point, this is what I would change about the current
structure:

---

- `buildstream-fedora` should be renamed to `buildstream` because the
  fact that it is fedora is irrelevant, and with usual docker
  repository conventions, if we create other base-distro images (such
  as alpine or debian), those should be added with an appropriate tag.
- The newly created `buildstream` image should only tag stable
  releases as `latest`, have an `unstable` running tag that tracks
  unstable releases, and a `git` tag that tracks git master.
- A new `testsuite/fedora-27` image should be created, and relieve
  `buildstream` of its test suite duties
- `debian` should be renamed to `testsuite/debian-9`, or perhaps
  `testsuite/debian-stable` and changed with every debian version
  change.
- `image-tools` should be renamed to something like
  `base-systems/image-tools`

This would have the following advantages:

- The fedora image actually used to run buildstream could be used as a
  way to distribute actual stable versions of buildstream, rather than
  making any non-Linux user automatically track the git head.
- Fedora tests no longer come with buildstream pre-installed, which
  may have all sorts of consequences we aren't aware of.
- Since the testsuite/base platform images are in a separate
  subdirectory, it should be quite obvious that these aren't intended
  to run buildstream directly.
- Users that try to set up an artifact cache or a simple container to
  run buildstream can just use the first image they find.
- We'll be closer to what I believe other docker repositories do.

This would mean that we have to rename a few images in the docker
repository, unfortunately, and I'm not sure how simple that
is. Renaming `buildstream-fedora` and `image-tools` might be
problematic, since these images might be referred to from projects we
have no control over.

If there is significant concern over changing their names, they can
probably be left as leftovers from a time before structure, but I
still believe that `buildstream-fedora` should be split into two
images.

---

Feel free to suggest other changes, or otherwise comment on this. I
think the testsuite/runtime split is long overdue, but am happy to
be told otherwise :)

Regards,

Tristan Maat



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]