Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-02-01 Thread Doug Hellmann
Excerpts from Andreas Jaeger's message of 2017-02-01 15:37:15 +0100:
> On 2017-02-01 15:27, Doug Hellmann  wrote:
> > [...]
> > Another option was to have the release bot continually propose
> > updates to the same patch, like we do with the global requirements
> > sync job. On any given day, that's going to cause a bunch of resets
> > on the patch, until we merge it. That will be particularly annoying
> > if we release something while the patch is in the gate queue ready
> > to be merged, but even in the check queue it will "waste" test nodes
> > on each reset.
> 
> Note that the proposal jobs can check whether a job is in the gate queue
> and do not propose anything at that time, see
> http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/scripts/common.sh#n69
> - the check_already_approved function.
> 
> Whether you want to use it in this case, is up to you. For these kind of
> jobs that run often, it might be a good idea,
> 
> Andreas

Oh, that's definitely a good option to have. Thanks for pointing that
out!

Doug

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-02-01 Thread Andreas Jaeger
On 2017-02-01 15:27, Doug Hellmann  wrote:
> [...]
> Another option was to have the release bot continually propose
> updates to the same patch, like we do with the global requirements
> sync job. On any given day, that's going to cause a bunch of resets
> on the patch, until we merge it. That will be particularly annoying
> if we release something while the patch is in the gate queue ready
> to be merged, but even in the check queue it will "waste" test nodes
> on each reset.

Note that the proposal jobs can check whether a job is in the gate queue
and do not propose anything at that time, see
http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/scripts/common.sh#n69
- the check_already_approved function.

Whether you want to use it in this case, is up to you. For these kind of
jobs that run often, it might be a good idea,

Andreas
-- 
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter: jaegerandi
  SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Felix Imendörffer, Jane Smithard, Graham Norton,
   HRB 21284 (AG Nürnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-02-01 Thread Doug Hellmann
Excerpts from Tony Breeds's message of 2017-02-01 21:18:54 +1100:
> On Wed, Jan 18, 2017 at 04:34:56PM -0500, Doug Hellmann wrote:
> > When I tried to merge the upper-constraints updates for the library
> > releases we did today, I ran into quite a lot of merge conflicts
> > with the Oslo libraries. I'm exploring options for reducing the
> > likelihood that those sorts of conflicts will occur with a few
> > patches that change how we generate the constraints list.
> 
> Dirk's been doing a great job of dealing with that and there are scripts to
> take the ones generated from the bot and make single series from them n deep.
> That's not very sustainable though.
> 
> 
> 
> > The final option uses a SHA1 hash of the name as the sort key. It
> > wouldn't be easy for a human to update the file by hand, but we
> > could make a tool that does. I don't know how often that case comes
> > up, so I don't know how important it is. See
> > https://review.openstack.org/422245 and https://review.openstack.org/422246
> > for the sample output.
> 
> Thanks Doug.  I like this option.
> 
> We don't need to add a tool as the docs describe how to do this already, which
> basically boils down to run the tool you're patching.
> 
> If that doesn't happen (which is common) the next daily update will just move
> it to the new right place.
> 
> I think we should do this early after we branch requirements
> 
> Yours Tony.

While debugging the issues, although we learned that we're less
likely to have collisions by changing the order, it's not going to
be sufficient to deal with the problem posed when we have an Oslo
release set. Zuul is limited to managing 6 "unrelated" patches when
merging, so when we have more than 6 patches trying to merge it
will throw an error that looks like a conflict, even though there
isn't one.

We discussed (on IRC) a couple of options:

One is to do away with the proposals as part of the release jobs,
and rely on the daily update. I'm not sure I like that, because it
means if the update fails any tests we aren't introducing new
versions of our libraries quickly. Debugging that class of failure
is a job we've had a hard time recruiting people to help with, so
while the current team has been doing a great job staying on top
of it, I worry about what will happen when they get tired of doing
it. We did also discuss changing the frequency of the automatic
updates, but I think I was talked out of that on the grounds that
it takes us a day to get the patch reviewed and merged anyway so
running it more often would introduce delays because we would lose
review votes.

Another option was to have the release bot continually propose
updates to the same patch, like we do with the global requirements
sync job. On any given day, that's going to cause a bunch of resets
on the patch, until we merge it. That will be particularly annoying
if we release something while the patch is in the gate queue ready
to be merged, but even in the check queue it will "waste" test nodes
on each reset.

The third option suggested was to submit the updates in a series.
That allows us to merge them one at a time, and avoids the limit-of-6
issue because the patches are all related in a series. If something
fails, we can remove it from the series by hand and debug it
separately.

I've put this topic on the etherpad for the stable/requirements/release
team meetup at the PTG.

Doug

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-02-01 Thread Tony Breeds
On Wed, Jan 18, 2017 at 04:34:56PM -0500, Doug Hellmann wrote:
> When I tried to merge the upper-constraints updates for the library
> releases we did today, I ran into quite a lot of merge conflicts
> with the Oslo libraries. I'm exploring options for reducing the
> likelihood that those sorts of conflicts will occur with a few
> patches that change how we generate the constraints list.

Dirk's been doing a great job of dealing with that and there are scripts to
take the ones generated from the bot and make single series from them n deep.
That's not very sustainable though.



> The final option uses a SHA1 hash of the name as the sort key. It
> wouldn't be easy for a human to update the file by hand, but we
> could make a tool that does. I don't know how often that case comes
> up, so I don't know how important it is. See
> https://review.openstack.org/422245 and https://review.openstack.org/422246
> for the sample output.

Thanks Doug.  I like this option.

We don't need to add a tool as the docs describe how to do this already, which
basically boils down to run the tool you're patching.

If that doesn't happen (which is common) the next daily update will just move
it to the new right place.

I think we should do this early after we branch requirements

Yours Tony.


signature.asc
Description: PGP signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-01-18 Thread Jeremy Stanley
On 2017-01-18 16:34:56 -0500 (-0500), Doug Hellmann wrote:
> When I tried to merge the upper-constraints updates for the library
> releases we did today, I ran into quite a lot of merge conflicts
> with the Oslo libraries. I'm exploring options for reducing the
> likelihood that those sorts of conflicts will occur with a few
> patches that change how we generate the constraints list.
[...original options omitted...]

Have you considered following a similar pattern to requirements
updates? Namely, have the job check Gerrit to find out if a
constraints update change is already open. If not, create one like
now. If so, retrieve the last patchset, amend it with the desired
edit, and then push it back into Gerrit.

This approach may be too simplified since (unlike requirements
updates) these changes aren't idempotent and so could race with one
another if a lot of releases happen in one go. However, in practice
we only have one job node which creates these and it doesn't run any
jobs in parallel, so we'd never actually see the race. Odds are
we'll just implement a serializing solution for things like this (so
that two jobs with the same name in some specific pipeline won't run
concurrently) if we ever get to the point where we need to
horizontally scale our static nodes, since we probably have more
cases like this already we'll need to solve for.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-01-18 Thread Matthew Thode
I actually like the last option (sha) the most, even as a packager I can
just take the file and sort it if I want something more human readable.

-- 
Matthew Thode (prometheanfire)



signature.asc
Description: OpenPGP digital signature
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [requirements] changing the order of values in upper-constraints.txt

2017-01-18 Thread Doug Hellmann
When I tried to merge the upper-constraints updates for the library
releases we did today, I ran into quite a lot of merge conflicts
with the Oslo libraries. I'm exploring options for reducing the
likelihood that those sorts of conflicts will occur with a few
patches that change how we generate the constraints list.

The first option is to insert some blank lines into the file so
that we won’t be changing consecutive lines. I don't know if this
will actually work, because it's not clear we have sufficient control
over the git context range. Still, for the sake of argument see
https://review.openstack.org/422205 and https://review.openstack.org/422251
for the sample output.

The second option is one proposed by Dirk which changes the name
to remove common prefix values. This one is rather simple, and it's
possible explain to a human who wants to add a new line to the file
by hand how to figure out where it goes. See
https://review.openstack.org/45 and https://review.openstack.org/422239
for the sample.

The final option uses a SHA1 hash of the name as the sort key. It
wouldn't be easy for a human to update the file by hand, but we
could make a tool that does. I don't know how often that case comes
up, so I don't know how important it is. See
https://review.openstack.org/422245 and https://review.openstack.org/422246
for the sample output.

I don't expect us to change this right now, but I had the time to
spend on it today and I thought it would be useful to have something
put together before we get to Atlanta.

Doug

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev