On 11/14/23 11:58, Ilya Maximets wrote: > On 11/14/23 11:43, Dumitru Ceara wrote: >> On 11/14/23 11:33, Ilya Maximets wrote: >>> On 11/14/23 11:26, Ilya Maximets wrote: >>>> On 11/13/23 17:45, Dumitru Ceara wrote: >>>>> Without this, when using Python 3.12 and flake8 5.0.4, the following >>>>> errors are flagged: >>>>> tests/check_acl_log.py:97:25: E231 missing whitespace after ':' >>>>> tests/check_acl_log.py:102:71: E231 missing whitespace after ':' >>>>> >>>>> This was reported and discussed in a couple of contexts: >>>>> https://mail.openvswitch.org/pipermail/ovs-dev/2023-November/409325.html >>>>> https://mail.openvswitch.org/pipermail/ovs-dev/2023-November/409277.html >>>>> >>>>> And it's fixed in recent flake8/pycodestyle versions: >>>>> https://github.com/PyCQA/flake8/issues/1845#issuecomment-1766073353 >>>>> >>>>> Unfortunately we have to remove the 'hacking' requirement because that >>>>> introduces a dependency on 'flake8<4.0.0 and >=3.6.0'. On the other >>>>> hand the currently enabled hacking checks were only applicable to >>>>> Python 2 code. OVN has stopped supporting Python 2 for a while now, >>>>> since 0c042c2d28d8 ("Require Python 3 and remove support for Python >>>>> 2."). >>>>> >>>>> Signed-off-by: Dumitru Ceara <dce...@redhat.com> >>>>> --- >>>>> NOTE: this patch should be backported to all supported branches. >>>>> >>>>> V2: >>>>> - Addressed Ilya's comments: >>>>> - removed remaining hacking references >>>>> - updated commit log >>>>> --- >>>>> Documentation/intro/install/general.rst | 5 +---- >>>>> Makefile.am | 9 +-------- >>>>> utilities/containers/py-requirements.txt | 4 ++-- >>>>> 3 files changed, 4 insertions(+), 14 deletions(-) >>>>> >>>>> diff --git a/Documentation/intro/install/general.rst >>>>> b/Documentation/intro/install/general.rst >>>>> index 5895188462..4ace64f6ec 100644 >>>>> --- a/Documentation/intro/install/general.rst >>>>> +++ b/Documentation/intro/install/general.rst >>>>> @@ -134,10 +134,7 @@ following to obtain better warnings: >>>>> >>>>> - clang, version 3.4 or later >>>>> >>>>> -- flake8 along with the hacking flake8 plugin (for Python code). The >>>>> automatic >>>>> - flake8 check that runs against Python code has some warnings enabled >>>>> that >>>>> - come from the "hacking" flake8 plugin. If it's not installed, the >>>>> warnings >>>>> - just won't occur until it's run on a system with "hacking" installed. >>>>> +- flake8, version 6.1.0 or later >>>>> >>>>> You may find the ovs-dev script found in ``ovs/utilities/ovs-dev.py`` >>>>> useful. >>>>> >>>>> diff --git a/Makefile.am b/Makefile.am >>>>> index 06045760a0..d24cca10fb 100644 >>>>> --- a/Makefile.am >>>>> +++ b/Makefile.am >>>>> @@ -414,17 +414,10 @@ ALL_LOCAL += flake8-check >>>>> # F*** -- warnings native to flake8 >>>>> # F811 redefinition of unused <name> from line <N> (only from flake8 >>>>> v2.0) >>>>> # D*** -- warnings from flake8-docstrings plugin >>>>> -# H*** -- warnings from flake8 hacking plugin (custom style checks >>>>> beyond PEP8) >>> >>> We may also keep this line, since we're going to explicitly ignore these. >>> >>>>> -# H231 Python 3.x incompatible 'except x,y:' construct >>>>> -# H232 Python 3.x incompatible octal 077 should be written as 0o77 >>>>> -# H233 Python 3.x incompatible use of print operator >>>>> -# H238 old style class declaration, use new style (inherit from >>>>> `object`) >>>>> -FLAKE8_SELECT = H231,H232,H233,H238 >>>>> -FLAKE8_IGNORE = >>>>> E121,E123,E125,E126,E127,E128,E129,E131,E722,W503,W504,F811,D,H,I >>>>> +FLAKE8_IGNORE = >>>>> E121,E123,E125,E126,E127,E128,E129,E131,E722,W503,W504,F811,D,I >>>> >>>> We need to keep H in the ignore list, because flake8 automatically enables >>>> them if the plugin is installed. That is causing build failures in CI and >>>> will cause build failures for everyone who has hacking installed. >>>> >> >> Oh, d'oh, I should've done more than testing locally. We get the >> pre-installed ubuntu image in CI from ghcr.io/ovn-org/ovn-tests:ubuntu >> and that gets rebuilt once a week. The one that got pulled had hacking >> installed. > > This is kind of a problem though. If we will ever need to change > some dependencies in order to fix CI failure we'll have to merge > the fix without CI and trigger the container rebuild manually. > That doesn't sound great. >
The workflow can indeed be triggered manually too; I'm not sure if we can do better. OTOH this should be the exception, most patches won't change CI. > IIUC, the current state of GHA integration also doesn't allow > testing with custom dependencies in a separate repo during some > feature development. > You can specify the image to use and make it point to your own fork via the IMAGE_NAME env variable in the test.yml workflow file. You do need a custom commit for that though. >> >> I'll leave the "hacking" ignore and the comment above and post v3. >> >> Thanks for pointing it out! >> >>>> Best regards, Ilya Maximets. >>>> >>>>> flake8-check: $(FLAKE8_PYFILES) >>>>> $(FLAKE8_WERROR)$(AM_V_GEN) \ >>>>> src='$^' && \ >>>>> - flake8 $$src --select=$(FLAKE8_SELECT) $(FLAKE8_FLAGS) && \ >>>>> flake8 $$src --ignore=$(FLAKE8_IGNORE) $(FLAKE8_FLAGS) && \ >>>>> touch $@ >>>>> endif >>>>> diff --git a/utilities/containers/py-requirements.txt >>>>> b/utilities/containers/py-requirements.txt >>>>> index 0d90765c97..a8e8f17da3 100644 >>>>> --- a/utilities/containers/py-requirements.txt >>>>> +++ b/utilities/containers/py-requirements.txt >>>>> @@ -1,7 +1,7 @@ >>>>> -flake8 >>>>> -hacking>=3.0 >>>>> +flake8>=6.1.0 >>>>> scapy >>>>> sphinx >>>>> setuptools >>>>> pyelftools >>>>> pyOpenSSL >>>>> +pycodestyle>=2.11.0 >>>> >>> >> > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev