#opendaylight-meeting: tws
Meeting started by tbachman at 18:00:06 UTC
(full logs).
Meeting summary
- agenda (tbachman, 18:01:00)
- How to get started with JJB (tbachman, 18:02:11)
- https://wiki.opendaylight.org/view/RelEng:Jenkins
releng jenkins page (tbachman,
18:03:51)
- the default tab shows the daily jobs
(tbachman,
18:04:07)
- most jobs use the dynamic verify slave, which
is an EL6 slave JDK7 and 8 available for builds (tbachman,
18:04:29)
- if you just want the basic job templates, no
extra action is needed once you’re set up in JJB (tbachman,
18:05:03)
- If you need to test JJB, you can pull it from
zxiiro’s repo to test locally before pushing (only needed if you
plan on using the LF sandbox) (tbachman,
18:05:40)
- all projects get a verify, merge, daily,
integration, and sonar job (tbachman,
18:06:03)
- in gerrit, you can use the keywords recheck or
remerge, and it will cause the jobs to be retriggered by the
patch (tbachman,
18:06:29)
- you can run python scripts/jjb-init-project.py
<name of project> to generate the demo file that defines all
the jobs for your project (tbachman,
18:07:24)
- you can push that to releng and add zxiiro and
tykeal as reviewers (tbachman,
18:07:35)
- There are some customizations that can be done
(see wiki) (tbachman,
18:07:50)
- also add the project lead as a reviewer for the
releng patch (tbachman,
18:08:46)
- If any default options are overridden, the
script creates a config file for your project (tbachman,
18:11:07)
- flaviof asks what happens to the existing silo
once a project transitions to JJB (tbachman,
18:13:27)
- zxiiro recommends disabling at least the
existing merge job to prevent two silos merging the same
artifacts (tbachman,
18:13:51)
- edwarnicke says he disables the silos and
retriggers jobs to test the JJB configuration (tbachman,
18:14:25)
- Once all jobs on your old Jenkins server are
disabled, the RelEng team will shutdown the old server (after a
period of time). Or you can email helpdesk to shut down the old
build server (tbachman,
18:15:11)
- flaviof asks whether every project has control
over what maven version is used (tbachman,
18:15:33)
- zxiiro says we have a global for all projects,
but projects can also define their own (tbachman,
18:15:48)
- flaviof asks why yangtools is different
(tbachman,
18:17:08)
- rovarga says that they support 3.1.1 and 3.2,
and produce both in order to not break consumers of yangtools
artifacts (tbachman,
18:17:32)
- flaviof asks if there are multiple jobs — e.g.
hydrogen, helium, lithium — can the old releases not be affected as
we move forward (tbachman,
18:18:00)
- rovarga says yes, that’s exactly what’s being
done (tbachman,
18:18:09)
- Goals today: discussion options for modifying
process/tools (tbachman,
18:21:59)
- currently, all projects have the same
milestones and releases, and the only way to get artifacts blessed
by the TSC is to participate in the Simulataneous Release, which is
monolithic (tbachman,
18:22:49)
- There are pros and cons to the monolithic
SR (tbachman,
18:23:04)
- pros include “integrated”, and “official”, with
a place to discuss relationship between the projects at different
agreed milestones, coupled with integration testing (tbachman,
18:23:42)
- cons include a fair amount of overhead, which
can slow projects down; There is also a perception of compatibility
that is arguably illusionary (tbachman,
18:24:31)
- This proposal is geared towards a
“distribution” model, using gated releases (tbachman,
18:25:00)
- Each proejct has goals set by the TSC, based on
the projects life cycle (i.e. based on life cycle, they have to meet
certain conditions or criteria in order to release their
artifacts) (tbachman,
18:25:30)
- the purpose of the gated release is that
artifacts can be released as soon as a project meets this
criteria (tbachman,
18:25:47)
- this allows for more stablized artifacts to
happen any time within the release time frame (tbachman,
18:26:03)
- At the end of a 6 month period, the stable
output of all the projects will be produced, rather than build a
complete snapshot (tbachman,
18:26:39)
- The idea is to assemble a distribution rather
than provide a monolithic output (tbachman,
18:26:56)
- Technical Challenges include interproject
dependencies, versioning practices between projects, good
continuous delivery, and SNAPSHOT dependencies version
management (tbachman,
18:29:21)
- Where “good” continuous delivery views every
commit as a potential release (tbachman,
18:30:00)
- There’s a trade-off of building against project
ranges or against whatever’s upstream (tbachman,
18:31:25)
- Suggested versioning practices include need to
store version properties outside of build files to avoid cyclic
dependencies; follow version range best practices within a release
cycle; and find a way to inject current versions in the build
(tbachman,
18:32:18)
- mlemay is working on a maven plugin that reads
versions from a centralized file rather than a local file
(tbachman,
18:34:00)
- abhijitkumbhare asks if the proposal is still
propsing to use the SR but only for a group of projects (tbachman,
18:34:28)
- mlemay says the goal is not to abolish the SR,
but have the ability to build projects more independently and have
more stable artifacts at any given time given the gates (tbachman,
18:34:56)
- The final SR will still be decided by the TSC
at the end of the SR (tbachman,
18:35:11)
- rovarga says that picking stable versions means
that essentially our support model would change, as developers would
need to know which versions of their released artifacts would make
it into a released version and in need of extended support
(tbachman,
18:35:48)
- rovarga says that this all looks good, but is
not able to see what the workflow looks like as a committer
(tbachman,
18:36:17)
- mlemay says that’s a good question, and says
this is only in the brainstorming phase at the moment (tbachman,
18:36:40)
- edwarnicke tries to summarize by saying that
there needs to be more of a continuous release, and allow projects
more independence on creating their artifacts (tbachman,
18:38:12)
- dlenrow says yes, you’d have less moving parts
to deal with than in one monolithic release (tbachman,
18:38:35)
- edwarnicke says that our current governance
says that no project is required to join the SR (tbachman,
18:39:09)
- dlenrow says that the problem is that if you
don’t participate in the SR, you’re on your own in creating the
processes, artifacts, etc. (tbachman,
18:40:00)
- mlemay says one of the motivating factors
behind this is that our current process won’t scale as we add more
and more projects (tbachman,
18:40:59)
- regXboi says that this scales much worse — this
adds complexity and moving parts (tbachman,
18:41:22)
- edwarnicke asks zxiiro how many projects went
out in the last eclipse SR? (tbachman,
18:41:54)
- gzhao says for Helium there were 21 projects
for Lithium it’s 42/43 (tbachman,
18:42:22)
- mohnish asks what the user consumption would
look like if there are multiple projects and multiple
versions (tbachman,
18:43:11)
- mlemay says that opens another can of worms on
what is the output of ODL (tbachman,
18:43:26)
- https://projects.eclipse.org/releases/luna
(zxiiro,
18:43:59)
- list of projects on simrel for Eclipse
Luna (zxiiro,
18:44:15)
- zxiiro says eclipse SR is a bit different —
all projects release artifacts to a PT repo, and a job copies all of
these and merges them into one large repo (tbachman,
18:45:26)
- P2 repository (zxiiro,
18:46:14)
- It looks like the last eclipse was 75-76
sub-projects (tbachman,
18:46:51)
- correction on earlier info: all projects
release artifacts to a P2 repo, and a job copies all of these and
merges them into one large repo (tbachman,
18:47:25)
- zxiiro says that Eclipse does not release to
Maven. They have a custom repository called P2 which every project
has their own and publishes their artifacts to that which means
there's 1 seperate repo URL for every project at Eclipse. Then the
aggregator project mirrors all the independent release URLs and
creates 1 giant repo which is called the simrel repo. (tbachman,
18:48:51)
- @Eclipse: So if project B depends on Project A,
project A needs to first release their final artifacts first before
Project B can build their final results. (zxiiro,
18:49:27)
- flaviof says he would love to be able to freeze
things around his project and test it against that view (tbachman,
18:52:43)
- mlemay says that’s his point of stable
artifacts during the release projects (tbachman,
18:53:17)
- More ideas on improving the process:
incremental changes include stable versions of “core” modules;
system test subsets of modules, use case specific certification; New
tooling (multiple tiers of components with separable build/release,
output “features” to different repos based on component maturatiy;
break “offsets” into layered releases); and role of
downstream/midstream projects (e.g. OPNFV is use case (tbachman,
18:56:07)
- dlenrow asks what testing/compatibility looks
like in an eclipse release (tbachman,
19:00:12)
- zxiiro says that eclipse doesn’t guarantee this
level of compatibility (tbachman,
19:00:37)
- mohnish says we can create some boundaries
based on use cases for a given distribution (tbachman,
19:01:30)
- edwarnicke points out that we were terrible at
trying to anticipate the uses cases in the hydrogen release
(tbachman,
19:03:15)
- mlemay says there could be a middle ground
where components could graduate to different feature repos
(tbachman,
19:04:33)
- edwarnicke says that as long as we can agree on
the guarantee on the criteria needed to be included in these repos,
he’s fine with that (tbachman,
19:05:36)
- edwarnicke says that other things have been
done recently to improve the consumability of ODL (e.g. removal of
the -all features) (tbachman,
19:07:50)
- dlenrow asks what the best way is to continue
this discussion (tbachman,
19:08:36)
- edwarnicke says the TSC is usually a good venue
for this (tbachman,
19:08:46)
Meeting ended at 19:09:28 UTC
(full logs).
Action items
- (none)
People present (lines said)
- tbachman (108)
- regXboi (28)
- rovarga (13)
- bigalh (10)
- alagalah (9)
- zxiiro (9)
- odl_meetbot (8)
- nitika (6)
- mlemay (6)
- abhijitkumbhare (2)
- mohnish (1)
Generated by MeetBot 0.1.4.