[openstack-dev] [requirements][stable] EOL tags and upper-constraints.txt in tox.ini
Doug Hellmann
doug at doughellmann.com
Fri Sep 22 19:07:14 UTC 2017
Excerpts from Tony Breeds's message of 2017-09-21 20:20:22 -0500:
> On Thu, Sep 21, 2017 at 12:13:23PM -0400, Doug Hellmann wrote:
> > Excerpts from Tony Breeds's message of 2017-09-21 08:36:39 -0400:
> > > On Wed, Sep 20, 2017 at 06:08:22PM -0400, Doug Hellmann wrote:
> > >
> > > > I like the idea. I'm not sure why, if the constraints file is only used
> > > > for the dependency installation step, we still need tox_install.sh?
> > >
> > > Right now that isn't true, when we get something like my idea
> > > implemented we'd still need the tox_install.sh in projects that need
> > > services (not published on pypi) like horizon plugins or neutron stadium
> > > projects. Fixing that issue is a totally different discussion, one I
> > > started at the PTG but I need to let those conversations settle and do
> > > research on wasy to fix that.
> > >
> > > > If
> > > > that's just to avoid updating the URL when we create branches, I can
> > > > live with continuing to do that step if we figure out some other way to
> > > > minimize the open race window.
> > >
> > > So lets check we're on the same page with the race window point. At the
> > > moment the process looks like:
> > > 1. projects tag RC1 and when generate a stable/series branch.
> > > 2. We generate a reviews that updates .gitreview
> > > 3. We generate a reviews that updates .tox.ini
> > > 4. time passes
> > > 5. requirements creates a stable/series branch
> > > 6. requirements thaws
> > >
> > > Now the race is that if projects merge the patch from step 3 before step
> > > 5 they're broken (on stable/series) because there isn't a
> > > 'stable/series' in the requirements repo. There are some additional issues
> > > for cycle-trailing projects but nothing radically different.
> > >
> > > Correct?
> > >
> > > Assuming I have that right In the new world:
> > >
> > > 0. requirements publish master.txt and series.txt
> > > 1. projects tag RC1 and when generate a stable/series branch.
> > > 2. We generate a reviews that updates .gitreview
> > > 3. We generate a reviews that updates .tox.ini
> > > 4. time passes
> > > 5. requirements creates a stable/series branch
> > > 6. requiremenst now publish series.txt, new_series.txt and master.txt
> > > 6. requirements thaws
> >
> > Where in that sequence do we make the change so that we're not
> > publishing to series.txt from the new stable branch in requirements and
> > from master in requirements? Between step 4 and 5? Or is the job smart
> > enough to not do that?
>
> Right now the job is dumb, but yes we'd teach the job to detect that's
> it's a stable branch and only publish it's series branch. We also teach
> the job to not publish to $series.txt if that stable branch exists.
>
> So I think the publish job looks like:
>
> ---
> # preamble
> # typed directly into email so be warned ;P
> # We probably want to check if ZUUL_BRANCH is the correct variable to
> # use.
> case "$ZUUL_BRANCH" in
> stable/*)
> series=$(basename "$ZUUL_BRANCH")
> git show origin/$ZUUL_BRANCH:upper-constraints.txt > publish/constraints/upper/${series}.txt
> ;;
> master)
> for series in queens master ; do
> if ! git rev-parse origin/stable/${series} ; then
> git show origin/master:upper-constraints.txt > publish/constraints/upper/${series}.txt
> fi
> done
> ;;
> esac
> # postample
> ---
>
> So using the queens release as an example:
>
> Jan 22 - Jan 26 R-5 Requirements freeze
> NOTES: openstack/requirements (master) publishes {queens,master}.txt
> Jan 29 - Feb 02 R-4
> Feb 05 - Feb 09 R-3 RC1 target week
> ACTIONS: Projects create stable/queens branches
> ACTIONS: Generate .gitreview and UPPER_CONSTRAINTS changes
> ACTIONS: Projects merge .gitreview and UPPER_CONSTRAINTS changes
> Feb 12 - Feb 16 R-2
> ACTIONS: Projects create stable/queens branch for openstack/requirements
> ACTIONS: Generate .gitreview and UPPER_CONSTRAINTS changes
> ACTIONS: Projects merge .gitreview and UPPER_CONSTRAINTS changes
> ACTIONS: Make sure master publishes {rocky,master}.txt
> (optionally add the S release at this point, it doesn't hurt)
We could add new "future" series names as soon as we know them, since we
would just be publishing to a file that nothing uses.
> Feb 19 - Feb 23 R-1
> Feb 26 - Mar 02 R+0 Queens release
> Mar 05 - Mar 09 R+1
> Mar 12 - Mar 16 R+2 Queens cycle-trailing release deadline
>
> There's a whole other side issue about how long requirements is frozen
> for. Ignoring that do you think the above process will remove the race,
> and mean that EOL branches can possibly continue to run tests?
>
>
> Yours Tony.
Yes, that does look like a sound approach.
Doug
More information about the OpenStack-dev
mailing list