Re: [BuildStream] Reboot discussion: bst artifact subcommand group



Hi Tristan,

Thank you for taking the time to summarise and reboot this discussion,
just a couple of points from me.


Specifying artifacts on the command line
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All the commands in the subgroup should accept the same format
for specifying artifacts, this includes:

  - An element name: If element(s) are specified, they need to
    be loaded and have their cache keys resolved, specifying an
    element implies that we want to specify the artifact with
    the corresponding cache key.

  - Artifact name, which is:

       "%{project-name}/%{element-name}/%{cache-key}"

  - Glob pattern matching would be important, in order to support
    commands where we can observe all of the artifacts for a given
    element, e.g.: `bst artifact show project/element/*`

    This could be an augmentation but rather easy to implement given
    the rest of the machinery.

  - Tab completion should be supported for artifact names

Tab completion and glob pattern matching are already possible. One
downside, is that for large caches (with many artifacts), tab completion
can be quite expensive/slow.


  - As Sander pointed out[1], it would also be good to be able to
    address artifacts with *only* a cache key.

+1, I assume this would also support the abbreviated cache key?


Commands
--------
There was not much discussion on the individual commands proposed.

I think there is pretty much automatic consensus on:

  - push
  - pull
  - checkout
  - log

I would also add `delete` to this list.


Other commands originally proposed were, but I couldn't really say
there is consensus as it was not discussed very much:

  - diff

    Show the added/removed/changed files between two artifacts

  - list-content

    List the content of an artifact, optionally showing sizes
    of individual files (think something like `tar -tf file.tar`
    but for artifacts)

  - list

    list some artifacts specified on the command line, showing
    artifact creation date and overall size and any interesting
    information about the artifact

So Richard Maw actually achieved a lot of this, however, it was agreed
that his implementation used too much low level/internal logic in the
front end, thus work on this ceased and we implemented ArtifactElement,
renamed pull/push/checkout and introduced `delete`.

The (closed) MR is here: https://gitlab.com/BuildStream/buildstream/merge_requests/1008
Hopefully this will provide some sort of head start to whoever picks
up this work.


Cheers,
    -Tristan


[0]: https://mail.gnome.org/archives/buildstream-list/2019-June/msg00003.html
[1]:
https://mail.gnome.org/archives/buildstream-list/2018-September/msg00028.html
[2]: https://gitlab.com/BuildStream/buildstream/issues/1034
[3]:
https://mail.gnome.org/archives/buildstream-list/2018-September/msg00030.html


Thanks,
James

_______________________________________________
buildstream-list mailing list
buildstream-list gnome org
https://mail.gnome.org/mailman/listinfo/buildstream-list


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