diff mbox series

[v2,1/1] check-package: add version format check

Message ID 20191025092104.1164-1-heiko.thiery@gmail.com
State Not Applicable
Headers show
Series [v2,1/1] check-package: add version format check | expand

Commit Message

Heiko Thiery Oct. 25, 2019, 9:21 a.m. UTC
From: Heiko Thiery <heiko.thiery@kontron.com>

To meet the requirement of "Anitya", the tool used by
https://release-monitoring.org/, the <pkg>_VERSION variable
should not contain a prefix 'v'.

Signed-off-by: Heiko Thiery <heiko.thiery@kontron.com>
---
 utils/checkpackagelib/lib_mk.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Thomas Petazzoni Oct. 26, 2019, 1:57 p.m. UTC | #1
Hello Heiko,

On Fri, 25 Oct 2019 11:21:04 +0200
Heiko Thiery <heiko.thiery@gmail.com> wrote:

> From: Heiko Thiery <heiko.thiery@kontron.com>
> 
> To meet the requirement of "Anitya", the tool used by
> https://release-monitoring.org/, the <pkg>_VERSION variable
> should not contain a prefix 'v'.
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@kontron.com>

The implementation looks good, but we cannot apply this patch now,
because a number of packages cause this check to fail:

package/mcelog/mcelog.mk:7: remove 'v' prefix from v153 of variable MCELOG_VERSION and add to MCELOG_SITE
package/pru-software-support/pru-software-support.mk:7: remove 'v' prefix from v5.1.0 of variable PRU_SOFTWARE_SUPPORT_VERSION and add to PRU_SOFTWARE_SUPPORT_SITE
package/dt-utils/dt-utils.mk:7: remove 'v' prefix from v2019.01.0 of variable DT_UTILS_VERSION and add to DT_UTILS_SITE
package/dt/dt.mk:7: remove 'v' prefix from v18.32 of variable DT_VERSION and add to DT_SITE
package/gstreamer1/gst1-shark/gst1-shark.mk:7: remove 'v' prefix from v0.6.1 of variable GST1_SHARK_VERSION and add to GST1_SHARK_SITE
package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.mk:7: remove 'v' prefix from v0.3 of variable GST1_PLUGINS_BAYER2RGB_NEON_VERSION and add to GST1_PLUGINS_BAYER2RGB_NEON_SITE
package/perl-net-snmp/perl-net-snmp.mk:7: remove 'v' prefix from v6.0.1 of variable PERL_NET_SNMP_VERSION and add to PERL_NET_SNMP_SITE
package/linux-zigbee/linux-zigbee.mk:7: remove 'v' prefix from v0.3.1 of variable LINUX_ZIGBEE_VERSION and add to LINUX_ZIGBEE_SITE
package/spidev_test/spidev_test.mk:14: remove 'v' prefix from v4.10 of variable SPIDEV_TEST_VERSION and add to SPIDEV_TEST_SITE
package/spidev_test/spidev_test.mk:17: remove 'v' prefix from v3.0 of variable SPIDEV_TEST_VERSION and add to SPIDEV_TEST_SITE
package/flannel/flannel.mk:7: remove 'v' prefix from v0.5.5 of variable FLANNEL_VERSION and add to FLANNEL_SITE
package/flatbuffers/flatbuffers.mk:7: remove 'v' prefix from v1.11.0 of variable FLATBUFFERS_VERSION and add to FLATBUFFERS_SITE
package/python-scapy3k/python-scapy3k.mk:7: remove 'v' prefix from v0.18 of variable PYTHON_SCAPY3K_VERSION and add to PYTHON_SCAPY3K_SITE
package/softether/softether.mk:7: remove 'v' prefix from v4.28-9669-beta of variable SOFTETHER_VERSION and add to SOFTETHER_SITE

Until we fix those, we cannot add your patch as otherwise our CI would
be complaining all day long.

Thomas
Heiko Thiery Oct. 27, 2019, 6:12 a.m. UTC | #2
> The implementation looks good, but we cannot apply this patch now,
> because a number of packages cause this check to fail:
>
> package/mcelog/mcelog.mk:7: remove 'v' prefix from v153 of variable MCELOG_VERSION and add to MCELOG_SITE
> package/pru-software-support/pru-software-support.mk:7: remove 'v' prefix from v5.1.0 of variable PRU_SOFTWARE_SUPPORT_VERSION and add to PRU_SOFTWARE_SUPPORT_SITE
> package/dt-utils/dt-utils.mk:7: remove 'v' prefix from v2019.01.0 of variable DT_UTILS_VERSION and add to DT_UTILS_SITE
> package/dt/dt.mk:7: remove 'v' prefix from v18.32 of variable DT_VERSION and add to DT_SITE
> package/gstreamer1/gst1-shark/gst1-shark.mk:7: remove 'v' prefix from v0.6.1 of variable GST1_SHARK_VERSION and add to GST1_SHARK_SITE
> package/gstreamer1/gst1-plugins-bayer2rgb-neon/gst1-plugins-bayer2rgb-neon.mk:7: remove 'v' prefix from v0.3 of variable GST1_PLUGINS_BAYER2RGB_NEON_VERSION and add to GST1_PLUGINS_BAYER2RGB_NEON_SITE
> package/perl-net-snmp/perl-net-snmp.mk:7: remove 'v' prefix from v6.0.1 of variable PERL_NET_SNMP_VERSION and add to PERL_NET_SNMP_SITE
> package/linux-zigbee/linux-zigbee.mk:7: remove 'v' prefix from v0.3.1 of variable LINUX_ZIGBEE_VERSION and add to LINUX_ZIGBEE_SITE
> package/spidev_test/spidev_test.mk:14: remove 'v' prefix from v4.10 of variable SPIDEV_TEST_VERSION and add to SPIDEV_TEST_SITE
> package/spidev_test/spidev_test.mk:17: remove 'v' prefix from v3.0 of variable SPIDEV_TEST_VERSION and add to SPIDEV_TEST_SITE
> package/flannel/flannel.mk:7: remove 'v' prefix from v0.5.5 of variable FLANNEL_VERSION and add to FLANNEL_SITE
> package/flatbuffers/flatbuffers.mk:7: remove 'v' prefix from v1.11.0 of variable FLATBUFFERS_VERSION and add to FLATBUFFERS_SITE
> package/python-scapy3k/python-scapy3k.mk:7: remove 'v' prefix from v0.18 of variable PYTHON_SCAPY3K_VERSION and add to PYTHON_SCAPY3K_SITE
> package/softether/softether.mk:7: remove 'v' prefix from v4.28-9669-beta of variable SOFTETHER_VERSION and add to SOFTETHER_SITE
>
> Until we fix those, we cannot add your patch as otherwise our CI would
> be complaining all day long.

I hope this will help to fix this packages.

Thank you
Matt Weber Oct. 27, 2019, 6:57 a.m. UTC | #3
Heiko, Thomas,

On Sat, Oct 26, 2019 at 8:58 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello Heiko,
>
> On Fri, 25 Oct 2019 11:21:04 +0200
> Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> > From: Heiko Thiery <heiko.thiery@kontron.com>
> >
> > To meet the requirement of "Anitya", the tool used by
> > https://release-monitoring.org/, the <pkg>_VERSION variable
> > should not contain a prefix 'v'.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@kontron.com>
>
> The implementation looks good, but we cannot apply this patch now,
> because a number of packages cause this check to fail:
>

I've sent all but the GIT site method pkgs (mcelog / dt-utils /
gst1-shark / linux-zigbee) as I need to find an example or look at the
pkg logic to see how we're updating those.

Regards,
Matt
Matt Weber Oct. 27, 2019, 10:13 a.m. UTC | #4
Thomas,

On Sun, Oct 27, 2019 at 1:57 AM Matthew Weber
<matthew.weber@rockwellcollins.com> wrote:
>
> Heiko, Thomas,
>
> On Sat, Oct 26, 2019 at 8:58 AM Thomas Petazzoni
> <thomas.petazzoni@bootlin.com> wrote:
> >
> > Hello Heiko,
> >
> > On Fri, 25 Oct 2019 11:21:04 +0200
> > Heiko Thiery <heiko.thiery@gmail.com> wrote:
> >
> > > From: Heiko Thiery <heiko.thiery@kontron.com>
> > >
> > > To meet the requirement of "Anitya", the tool used by
> > > https://release-monitoring.org/, the <pkg>_VERSION variable
> > > should not contain a prefix 'v'.
> > >
> > > Signed-off-by: Heiko Thiery <heiko.thiery@kontron.com>
> >
> > The implementation looks good, but we cannot apply this patch now,
> > because a number of packages cause this check to fail:
> >
>
> I've sent all but the GIT site method pkgs (mcelog / dt-utils /
> gst1-shark / linux-zigbee) as I need to find an example or look at the
> pkg logic to see how we're updating those.
>

Once http://patchwork.ozlabs.org/project/buildroot/list/?series=138984
is applied, we're left with these GIT site method pkgs to fix.  Yann
and I tested the proposed approach to support GIT
(http://code.bulix.org/9l2dfi-927848?raw) but we run into a variable
expansion issue which would require pkg-generic.mk to inplace expand
the $(PKG)_DL_VERSION.....

package/dt-utils/dt-utils.mk:7: remove 'v' prefix from v2019.01.0 of
variable DT_UTILS_VERSION and add to DT_UTILS_SITE
package/gstreamer1/gst1-shark/gst1-shark.mk:7: remove 'v' prefix from
v0.6.1 of variable GST1_SHARK_VERSION and add to GST1_SHARK_SITE
package/portaudio/portaudio.mk:7: remove 'v' prefix from
v190600_20161030 of variable PORTAUDIO_VERSION and add to
PORTAUDIO_SITE

Regards,
Matt
diff mbox series

Patch

diff --git a/utils/checkpackagelib/lib_mk.py b/utils/checkpackagelib/lib_mk.py
index dd04ffd58f..b04fe370d5 100644
--- a/utils/checkpackagelib/lib_mk.py
+++ b/utils/checkpackagelib/lib_mk.py
@@ -325,3 +325,23 @@  class VariableWithBraces(_CheckFunction):
             return ["{}:{}: use $() to delimit variables, not ${{}}"
                     .format(self.filename, lineno),
                     text]
+
+
+class Version(_CheckFunction):
+    VERSION = re.compile(r"^([A-Z0-9_]+)_VERSION\s*[\+|:|]*=\s*(.*)")
+    VERSION_FAIL = re.compile("v[0-9]+")
+
+    def check_line(self, lineno, text):
+        m = self.VERSION.search(text)
+
+        if m is None:
+            return
+
+        variable, assignment = m.group(1, 2)
+
+        if self.VERSION_FAIL.match(assignment):
+            return ["{}:{}: remove 'v' prefix from {} of variable {}_VERSION "
+                    "and add to {}_SITE"
+                    .format(self.filename, lineno, assignment, variable,
+                            variable),
+                    text]