Hi,
Zuul is making a change that may require action from developers on
projects hosted in OpenDev. Here is the release note regarding the
change:
> Regular expressions using Python syntax are deprecated in favor of RE2
> syntax instead, for additional speed and safety. Negative lookahead
> assertions may be replaced using the negate keyword. See Regular
> Expressions[1] for more information.
>
> If Zuul detects a regular expression using Python syntax that is not
> supported by RE2, it will register a configuration syntax
> warning. These may be viewed on the configuration errors page in the
> web interface.
>
> A future version of Zuul will remove Python regex support completely
> and these warnings will become errors.
[1] https://zuul-ci.org/docs/zuul/latest/project-config.html#regex
It's easy to see if your project on OpenDev is affected. Each tenant
has a page where the current configuration errors and warnings are
displayed.
Visit any page in Zuul for your tenant, and if there is a bell icon in
the top right, click on that.
For example, the configuration error page for the OpenStack tenant is
here:
https://zuul.opendev.org/t/openstack/config-errors
On that page, look for the "Regex Deprecation" warnings. You can expand
the warning to see exactly the file and line number where the warning is
found.
Almost all of the issues identified so far have been due to the fact
that RE2 does not support negative lookahead assertions. In the past,
we used these a lot to say things like "run this job on any branch
except master" with regexes like "(?!master)". Because this is such a
common pattern, we added a feature in Zuul to make this easy. A
configuration like:
branches: "^(?!master).*$"
can now be written as:
branches:
regex: "^master$"
negate: true
This simply negates the specified regex. It's not an exact translation
of the original regex, but is slightly improved and to the point:
anything but exactly "master".
Please take a moment and check to see if your project has instances of
this warning, and go ahead and fix it. Even if there are a lot of
instances, they are likely to be very similar and correcting them may
take only a few minutes.
Here are two changes where we update the central configuration that
applies to all projects:
https://review.opendev.org/c/openstack/project-config/+/893702https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/893792
These provide examples of how to make changes for several common cases;
you may be able to simply copy what was done in those changes.
If you have any trouble adapting existing regexes to the new format,
please contact us in #opendev to discuss the issue. We may be able to
find a simple solution, or if there is another special case that is
difficult to handle, we may be able to add support to Zuul to mitigate
the issue. If you use "update-regexes" as a topic name, it will help
people keep track of progress and possible issues.
The Zuul project has not yet set a date for when support for the old
syntax will be removed. I expect it to be on the order of months, which
should give folks plenty of time to make the necessary changes. But
please do so early so that we have time to deal with any issues.
Thanks,
Jim (on behalf of the OpenDev team)
We will meet on September 19, 2023 at 19:00 UTC in #opendev-meeting with this agenda:
== Agenda for next meeting ==
* Announcements
* Actions from last meeting
* Specs Review
* Topics
** Bastion host (ianw 20230627)
*** https://review.opendev.org/q/topic:prod-bastion-group Remaining changes are part of parallel ansible runs on bridge
*** https://review.opendev.org/q/topic:bridge-backups
** Mailman 3 (clarkb 20230627)
*** https://etherpad.opendev.org/p/mm3migration
*** Need to schedule migrations for list domains in blocks
**** lists.openinfra.dev + lists.starlingx.io Thursday September 21, 2023
**** lists.openstack.org
** Upgrading Bionic servers to Focal/Jammy (clarkb 20230627)
*** https://etherpad.opendev.org/p/opendev-bionic-server-upgrades
*** Next up mirrors and meetpad.
** Nodepool image build and upload frequency (clarkb 20230912)
*** Image upload timeout increased to 6 hours on September 18. Need to check back in a week or two to see if this is happy.
** Updating the InMotion/OpenMetal Cloud Deployment (clarkb 20230919)
*** Heard back from Yuriy. Need to figure out how the OpenMetal update planning impacts our timelines for action.
** Zuul PCRE regex support is deprecated (clarkb 20230905)
*** Zuul is moving all regexes to re2 instead of PCRE. We'll need to migrate job configs within OpenDev projects.
*** Draft announcement for OpenDev users (particularly OpenStack) https://etherpad.opendev.org/p/3FbfuhNmIWT33fCFK1oK
** Python container updates (tonyb 20230718)
*** https://review.opendev.org/q/hashtag:bookworm+status:open Next round of image rebuilds onto bookworm.
*** The Gerrit image is the current outstanding update. There is also an update to Gerrit 3.7.5. Should we bundle all of these updates together or do one at a time and restart Gerrit a couple times?
* Open discussion
We will meet with this agenda on September 12, 2023 at 19:00 UTC in #opendev-meeting:
== Agenda for next meeting ==
* Announcements
* Actions from last meeting
* Specs Review
* Topics
** Infra Root Google Account Activity (clarkb 20230905)
*** This account is used by zuul to connect to Gerrit's Gerrit. We will want to login to it periodically to refresh the idle state.
** Bastion host (ianw 20230627)
*** https://review.opendev.org/q/topic:prod-bastion-group Remaining changes are part of parallel ansible runs on bridge
*** https://review.opendev.org/q/topic:bridge-backups
** Mailman 3 (clarkb 20230627)
*** https://etherpad.opendev.org/p/mm3migration
*** Need to schedule migrations for list domains in blocks
**** lists.kata-containers.io + lists.airshipit.org Thursday September 14, 2023
**** lists.openinfra.dev + lists.starlingx.io
**** lists.openstack.org
** Upgrading Bionic servers to Focal/Jammy (clarkb 20230627)
*** https://etherpad.opendev.org/p/opendev-bionic-server-upgrades
*** Next up mirrors and meetpad.
** Nodepool image build and upload frequency (clarkb 20230912)
*** Is the new slower pace of updates working for us?
*** Nodepool image upload timeout is now configurable. We should set this value to something reasonable for our cloud targets.
** Zuul PCRE regex support is deprecated (clarkb 20230905)
*** Zuul is moving all regexes to re2 instead of PCRE. We'll need to migrate job configs within OpenDev projects.
** Python container updates (tonyb 20230718)
*** https://review.opendev.org/q/hashtag:bookworm+status:open Next round of image rebuilds onto bookworm.
* Open discussion
We will meet with this agenda on September 5, 2023 at 19:00 UTC in #opendev-meeting:
== Agenda for next meeting ==
* Announcements
* Actions from last meeting
* Specs Review
* Topics
** Infra Root Google Account Activity (clarkb 20230905)
*** We need to look into what this account was for and decide if we need minimal acitvity on it to keep it alive.
** Bastion host (ianw 20230627)
*** https://review.opendev.org/q/topic:prod-bastion-group Remaining changes are part of parallel ansible runs on bridge
*** https://review.opendev.org/q/topic:bridge-backups
** Mailman 3 (clarkb 20230627)
*** https://etherpad.opendev.org/p/mm3migration
*** Need to schedule migrations for list domains in blocks
**** lists.kata-containers.io + lists.airshipit.org
**** lists.openinfra.dev + lists.starlingx.io
**** lists.openstack.org
** Upgrading Bionic servers to Focal/Jammy (clarkb 20230627)
*** https://etherpad.opendev.org/p/opendev-bionic-server-upgrades
*** Next up mirrors and meetpad.
*** Clarkb needs to look into cleaning up the old CI registry node.
** Rax IAD image upload struggles (clarkb 20230822)
*** Rax IAD is expected to be slower than other regions.
**** In response to this we've reduced the number of upload threads in nodepool-builders and reduced the rebuild interval for most of our images.
** Fedora cleanup (clarkb 20230627)
*** I've seen projects like Ironic move towards cleaning things up on their side. Maybe we should announce a nodepool removal date in a week or two and remove it completely at that point.
** Zuul Ansible 8 default
*** All tenants are now running Ansible 8 by default in OpenDev's Zuul
** Zuul PCRE regex support is deprecated (clarkb 20230905)
*** Zuul is moving all regexes to re2 instead of PCRE. We'll need to migrate job configs within OpenDev projects.
** Python container updates (tonyb 20230718)
*** https://review.opendev.org/q/hashtag:bookworm+status:open Next round of image rebuilds onto bookworm.
* Open discussion