On Thu, Aug 3, 2017 at 9:23 AM, Josh Boyer <jwbo...@redhat.com> wrote:
> On Thu, Aug 3, 2017 at 8:59 AM, Dusty Mabe <du...@dustymabe.com> wrote: > > > > > > On 08/03/2017 08:32 AM, Josh Boyer wrote: > >> On Wed, Aug 2, 2017 at 11:15 AM, Dusty Mabe <du...@dustymabe.com> > wrote: > >>> Recently we talked about adding more CI/CD to the Atomic Host > >>> processes. Since we release every two weeks we'd like to automatically > >>> run tests on every change that goes in to Atomic Host and prevent > >>> it from going into Atomic Host if it causes test failures. > >>> > >>> This was suggested to the Atomic Working Group from the new CI Working > >>> Group [1] in the 2017-07-12 meeting [2]. Stef, from the CI working > >>> group also sent a mail to the cloud list about it [3]. > >>> > >>> Here are some of the things we want to be able to do: > >>> > >>> 1 Have a rigorous definition (including specific versions, buildroot) > of > >>> what goes into an Atomic Host, including dependencies. > >>> > >>> 2 Triggering the CI/CD pipeline based on a change to definition > >>> of what goes into Atomic Host. > >>> > >>> 3 A way to revert a package in the Atomic Host compose to an earlier > version. > >>> > >>> 4 A place to store higher level tests along with rigorous definition > >>> of Atomic Host, including them being versioned. > >>> > >>> 5 Landing multiple changes that need to land together to pass testing. > >>> > >>> > >>> Out of that list we think we require that: > >>> > >>> 1R The definition of what is composed into Atomic Host artifacts should > >>> include specific versions of packages, and all dependencies > included. > >> > >> Is this an output of or input to the compose? I ask because > >> dependencies will change, so assuming they are static would be bad. > > > > I believe we want this to be an input, but an input that can be updated > by > > bots. i.e. a new version of rpmxyz is available and a bot opens a PR to > > add it to the definition of atomic host and tests run on that PR. This is > > not set in stone, however. Definitely looking from input here, especially > > from people who know more about modularity. > > Hm. OK. I can see that working if it's automated as you suggest. I > guess I would say that the goal of a "rigorous" definition is still > met, it's just that the definition changes a lot. > > >> They can also vary by architecture. > > > > This is something that was previously glossed over in our discussions. > Thanks > > for bringing it up. Does modularity handle this at all today? > > Good question, and I don't know the answer. I suspect it would have > to, particularly for things like low-level modules where the packages > are close to the architecture sets. Atomic Host itself is certainly > in that category. The higher level modules (e.g. httpd) are likely > identical in content and RPM NVRs though. > > >>> 2R The definition of what is composed in an Atomic Host should be > stored > >>> in a git repository so that changes can be detected easily. The > >>> CI/CD pipeline can be triggered off of changes to this reposiroty. > >> > >> If the answer to the above question is "output of", then this item is > >> essentially a package manifest for everything in the compose, correct? > > > > Answer was 'input of'. We can debate on whether that is a good or a bad > thing :) > > I was going for the easier way out with "output of", but input isn't > inherently bad either. I guess for CI/CD, it doesn't matter much > either way. The important thing there is that the changes are made > available to the pipeline and it can act on those at the appropriate > time. > > josh > > I assume the CI/CD pipeline you refer to is the one upstream CI (my team) is working on? Otherwise this seems to be a duplication since we are already doing this work. > >>> 3R A mechanism to make a future composed Atomic Host artifact, contain > >>> an earlier (in RPM NVR parlance) version of a package. > >>> > >>> 4R The high level functional Atomic Host tests should live in the same > >>> git repository with the rigorous definition of what goes into an > Atomic > >>> Host. > >>> > >>> 5R A mechanism to tell the CI Pipeline that multiple dist-git > repository > >>> changes (i.e. multiple changing RPMs) should be built and tested > together. > >>> > >>> We believe that moving to an Atomic Host defined by a module [4] can > >>> satisfy our needs and enable the improved control of artifacts within > >>> Atomic Host as well as the improved triggering and coupling with a > >>> testing pipeline that will help us move forward. Since modularity is > new > >>> this will take some experimentation to prove out. Let's chat about this > >>> in the Atomic Working Group meeting today at 1700UTC in > #fedora-meeting-1. > >>> > >>> Dusty > >>> > >>> > >>> [1] https://fedoraproject.org/wiki/CI > >>> [2] https://meetbot.fedoraproject.org/fedora-meeting-1/2017-07- > 12/fedora_atomic_wg.2017-07-12-17.00.log.html > >>> [3] https://lists.fedoraproject.org/archives/list/cloud@lists. > fedoraproject.org/message/ZS7XY7NHXGGOPOB2YKNQUWSDUGCMYIL5/ > >>> [4] https://docs.pagure.org/modularity/ > >>> > >> _______________________________________________ > >> Atomic Working Group mailing list -- ato...@lists.fedoraproject.org > >> To unsubscribe send an email to atomic-le...@lists.fedoraproject.org > >> > > -- -== @ri ==- My PGP fingerprint is F87F1EE7CD8BEE13