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)
OpenDev has been unable to update Fedora images in a timely manner leaving us with Fedora 35 and 36 images in our CI system. Fedora 35 and 36 are long past their EOL date, and we have been planning to remove them [0]. Somewhat recently the Fedora project stopped mirroring packages for these releases which resulted in empty mirrors on our end [1]. The end result is that Fedora nodes haven't been very functional within OpenDev since.
We have slowly been cleaning up usage of Fedora nodes and recently removed the fedora-latest nodeset from Zuul [2]. The next step is to remove these images from Nodepool entirely. We will do so on Monday September 11, 2023. Chances are any Fedora jobs are already broken, but this is a good reminder to look into correcting any of those jobs by moving them to another platform.
[0] https://lists.opendev.org/archives/list/service-discuss@lists.opendev.org/t…
[1] http://mirror.dfw.rax.opendev.org/fedora/releases/36/
[2] https://review.opendev.org/c/opendev/base-jobs/+/892380
Clark