[openstack-dev] [requirements][stable] EOL tags and upper-constraints.txt in tox.ini

Matthew Thode prometheanfire at gentoo.org
Fri Sep 22 19:59:19 UTC 2017


On 17-09-22 15:07:14, Doug Hellmann wrote:
> 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
> 

Sounds good, I've created a bug we can start linking reviews to (along
with documenting the final plan).

https://bugs.launchpad.net/openstack-requirements/+bug/1719006

-- 
Matthew Thode (prometheanfire)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170922/35d7c727/attachment.sig>


More information about the OpenStack-dev mailing list