On Fri, May 17, 2019 at 4:44 AM Michael Luckey <adude3...@gmail.com> wrote:
> > > On Wed, May 15, 2019 at 8:56 PM Kenneth Knowles <k...@apache.org> wrote: > >> >> >> On Wed, May 15, 2019 at 11:21 AM Lukasz Cwik <lc...@google.com> wrote: >> >>> >>> >>> *From: *Michael Luckey <adude3...@gmail.com> >>> *Date: *Tue, May 14, 2019 at 11:42 PM >>> *To: * <dev@beam.apache.org> >>> >>> Hi, >>>> >>>> do we currently have a strategy on how to handle LTS releases in >>>> context of incompatible changes on the build system? >>>> >>>> As far as I can see, the problem is (at least) twofold. >>>> >>>> 1. Incompatible changes on test-infra job definitions >>>> >>>> There might be changes in our groovy files which make it impossible to >>>> build/test an old branch on Jenkins. How do we intend to handle this? Of >>>> course, in that cases we could run seed job and reset Jenkins to >>>> corresponding old state but this will impact or even stall development on >>>> master. >>>> >>> >>> There was a point in time where people were looking at migrating to >>> Jenkins pipelines since the pipeline definitions are in the source >>> repository. Any solution that moves configuration to be based upon the >>> source repository and out of Jenkins would address/mitigate this issue. >>> >> >> +1000 >> >> I've looked around for documentation that makes this as clear as >> .travel.yml docs, but didn't find anything like that. If you know of any >> good docs on this, please share. Or just scrape the knowledge from other >> projects that are using it. >> > > So something as Multibranch Pipeline [ > https://jenkins.io/doc/book/pipeline/multibranch/ ] and some integration > with GitHub [ https://plugins.jenkins.io/github-branch-source ]. Indeed, > that seems to address this issue. Of course we would need to investigate in > how that will align with our current workflow, but seems worth a look. > > >> >> >>> 2. Incompatible changes on agents >>>> >>>> Even worse, we might introduce changes on the agents itself, which will >>>> even render it impossible to successfully seed to that legacy state. Do we >>>> have any option to revert to an old Jenkins agent setup in such cases? I am >>>> currently unaware of a link from apache repo to Jenkins configuration state >>>> to enable restauration of (old) agents? Is there such thing? >>>> >>>> Would it be possible/helpful to subdivide our Jenkins agent pool in >>>> some way that seed job could be run only on a dedicated subgroup (which >>>> then could be set to an old state)? If I recall correctly Yifan put a lot >>>> of effort in migrating our agents to the newer jnlp approach. >>>> and used a 'private' agent to do require testing. I assume this has >>>> been a manual setup and is not automated to be useful in such cases? >>>> >>>> What do others think about this issue? Is it something to follow on or >>>> more of a non issue? >>>> >>>> >>> What about dockerizing the builds/tests, this would allow us to use >>> older versions of the docker container for older branches. Contributors >>> interested in Python development were looking at this for testing Py2 and >>> Py3 at the same time[1]. >>> >> >> I think docker-in-docker was the blocker. >> > > Docker could certainly be of help here. And there have been some proposals > how to address docker in docker. Maybe some sidecar approach [ > https://jenkins.io/doc/book/pipeline/docker/ ] could also help. > > I know that Yifan has been looking into this, see the thread[1]. > But for the time being, as far a I understand we do/should have some > configuration files for Jenkins agent setup (some playbook). Are those > under VCS? Could not find that in our beam repo. Is it possible to link > with our releases or will it be sufficient to align by 'date', as change > rate is probably rather low on that configuration? Who currently owns that > setup? > > I only know of some snippets on our wiki page[2]. Not aware of anything more comprehensive then that. > Best, > > michel > > >> Kenn >> >> >>> >>> >>>> Best, >>>> >>>> michel >>>> >>>> >>>> >>> 1: >>> https://lists.apache.org/thread.html/4be0f687135b7c6778224dd76389a39f9ebf78a3cf9c4cb4e76ebb73@%3Cdev.beam.apache.org%3E >>> >>> >> > > 1: https://lists.apache.org/thread.html/fdd92132279f07b8a10e0316e900c40db05f099bd4cecfe8cba26fc5@%3Cdev.beam.apache.org%3E 2: https://cwiki.apache.org/confluence/display/BEAM/Jenkins+Tips