Skip to contentSkip to conversation

package/python-yamllint: new package

PATCH Applied Heiko Thiery 5 participants 10 messages Apr 12, 2024 – May 7, 2024

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/3 package/python-yamllint: new package

This host package is needed since u-boot 2024.04 for building ti defconfigs.

This is an requirement for using buildman/binman [1].

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

v2: accidentally resend this series as v2
(it's too early in the morning and no coffee yet)

v3:
- add missing runtime depnedencies
- a patch that enables the target build for python-pathspec is

    required https://patchwork.ozlabs.org/project/buildroot/patch/[email protected]/

- add runtime test

 package/Config.in                                 |  1 +
 package/python-yamllint/Config.in                 |  8 ++++++++
 package/python-yamllint/python-yamllint.hash      |  3 +++
 package/python-yamllint/python-yamllint.mk        | 15 +++++++++++++++
 .../tests/package/sample_python_yamllint.py       | 13 +++++++++++++
 .../testing/tests/package/test_python_yamllint.py | 11 +++++++++++
 6 files changed, 51 insertions(+)
 create mode 100644 package/python-yamllint/Config.in
 create mode 100644 package/python-yamllint/python-yamllint.hash
 create mode 100644 package/python-yamllint/python-yamllint.mk
 create mode 100644 support/testing/tests/package/sample_python_yamllint.py
 create mode 100644 support/testing/tests/package/test_python_yamllint.py
package/Config.in +1 -0
index d9bbf64c95..1935077f0f 100644
@@ -1437,6 +1437,7 @@ menu "External python modules"
 	source "package/python-xmljson/Config.in"
 	source "package/python-xmltodict/Config.in"
 	source "package/python-xmodem/Config.in"
+	source "package/python-yamllint/Config.in"
 	source "package/python-yarl/Config.in"
 	source "package/python-yatl/Config.in"
 	source "package/python-zc-lockfile/Config.in"
package/python-yamllint/Config.in new file +8 -0
new file mode 100644
index 0000000000..5c0962f09f
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_YAMLLINT
+	bool "python-yamllint"
+	select BR2_PACKAGE_PYTHON_PATHSPEC # runtime
+	select BR2_PACKAGE_PYTHON_PYYAML # runtime
+	help
+	  A linter for YAML files.
+
+	  https://github.com/adrienverge/yamllint
package/python-yamllint/python-yamllint.hash new file +3 -0
new file mode 100644
index 0000000000..d80e0fdf42
@@ -0,0 +1,3 @@
+# Locally computed sha256 checksums
+sha256  7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd  yamllint-1.35.1.tar.gz
+sha256  3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986  LICENSE
package/python-yamllint/python-yamllint.mk new file +15 -0
new file mode 100644
index 0000000000..ceaca3b0b8
@@ -0,0 +1,15 @@
+################################################################################
+#
+# python-yamllint
+#
+################################################################################
+
+PYTHON_YAMLLINT_VERSION = 1.35.1
+PYTHON_YAMLLINT_SOURCE = yamllint-$(PYTHON_YAMLLINT_VERSION).tar.gz
+PYTHON_YAMLLINT_SITE = https://files.pythonhosted.org/packages/da/06/d8cee5c3dfd550cc0a466ead8b321138198485d1034130ac1393cc49d63e
+PYTHON_YAMLLINT_SETUP_TYPE = pep517
+PYTHON_YAMLLINT_LICENSE = GPL-3.0
+PYTHON_YAMLLINT_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))
+$(eval $(host-python-package))
support/testing/tests/package/sample_python_yamllint.py new file +13 -0
new file mode 100644
index 0000000000..369a3b8d7d
@@ -0,0 +1,13 @@
+# example form https://yamllint.readthedocs.io/en/stable/development.html
+
+from yamllint import (config, linter)
+
+data = '''---
+- &anchor
+  foo: bar
+- *anchor
+'''
+
+yaml_config = config.YamlLintConfig("extends: default")
+for p in linter.run(data, yaml_config):
+    print(p.desc, p.line, p.rule)
support/testing/tests/package/test_python_yamllint.py new file +11 -0
new file mode 100644
index 0000000000..226048ae87
@@ -0,0 +1,11 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonYamllint(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_YAMLLINT=y
+        """
+    sample_scripts = ["tests/package/sample_python_yamllint.py"]

--
2.39.2

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#1 lore raw

PATCH v3 2/3 boot/ti-k3-r5-loader: add dependency to yamllint

Since U-Boot 2024.04 [1] binman also uses yamllint as dependency [2].

[1] https://source.denx.de/u-boot/u-boot/-/commit/10fee88d42f
[2] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

v2: accidentally resend this series as v2
(it's too early in the morning and no coffee yet)

v3:
- update URLs in the comment

 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +3 -2
index 0fb07f2d65..891783e40f 100644
@@ -35,8 +35,8 @@ TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt
 TI_K3_R5_LOADER_CPE_ID_VENDOR = denx
 TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot
 TI_K3_R5_LOADER_INSTALL_IMAGES = YES
-# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/binman/binman.rst?plain=1#L377
-# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/binman/binman.rst?plain=1#L377
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt
 # Make sure that all binman requirements are built before ti-k3-r5-loader.
 TI_K3_R5_LOADER_DEPENDENCIES = \
 	host-pkgconf \
@@ -49,6 +49,7 @@ TI_K3_R5_LOADER_DEPENDENCIES = \
 	host-python-pylibfdt \
 	host-python-pyyaml \
 	host-python-setuptools \
+	host-python-yamllint \
 	ti-k3-boot-firmware
 
 TI_K3_R5_LOADER_MAKE = $(BR2_MAKE)

--
2.39.2

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Reviewed-by Bryan Brattlof on v3 2/3
#2 lore raw

Re: [Buildroot] [PATCH v3 2/3] boot/ti-k3-r5-loader: add dependency to yamllint

On April 12, 2024 thus sayeth Heiko Thiery:

Quoted 8 lines

Since U-Boot 2024.04 [1] binman also uses yamllint as dependency [2].

[1] https://source.denx.de/u-boot/u-boot/-/commit/10fee88d42f
[2] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

Quoted 8 lines

v2: accidentally resend this series as v2
(it's too early in the morning and no coffee yet)

v3:
- update URLs in the comment

 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

~Bryan
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#3 lore raw

PATCH v3 3/3 uboot/uboot: add new dependency to yamllint

In reply to Heiko Thiery

Since U-Boot 2024.04 [1] binman also uses yamllint as dependency [2].

[1] https://source.denx.de/u-boot/u-boot/-/commit/10fee88d42f
[2] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

v2: accidentally resend this series as v2
(it's too early in the morning and no coffee yet)

v3:
- update URLs in the comment

 boot/uboot/uboot.mk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
boot/uboot/uboot.mk +4 -2
index a894654698..0ee63cabdb 100644
@@ -276,10 +276,12 @@ UBOOT_DEPENDENCIES += host-vim
 endif
 
 ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),y)
-# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/binman/binman.rst?plain=1#L377
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt
 UBOOT_DEPENDENCIES += \
 	host-python-jsonschema \
-	host-python-pyyaml
+	host-python-pyyaml \
+	host-python-yamllint
 UBOOT_MAKE_OPTS += BINMAN_INDIRS=$(BINARIES_DIR)
 endif
 

--
2.39.2

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Reviewed-by Bryan Brattlof on v3 3/3
#4 lore raw

Re: [Buildroot] [PATCH v3 3/3] uboot/uboot: add new dependency to yamllint

On April 12, 2024 thus sayeth Heiko Thiery:

Quoted 8 lines

Since U-Boot 2024.04 [1] binman also uses yamllint as dependency [2].

[1] https://source.denx.de/u-boot/u-boot/-/commit/10fee88d42f
[2] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

Quoted 8 lines

v2: accidentally resend this series as v2
(it's too early in the morning and no coffee yet)

v3:
- update URLs in the comment

 boot/uboot/uboot.mk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Thanks for this. I successfully built v2024.04 U-Boot for all of TI's K3 SoCs. One step closer for K3 :)

~Bryan

Quoted 23 lines
boot/uboot/uboot.mk +4 -3
index a894654698..0ee63cabdb 100644
@@ -276,10 +276,12 @@ UBOOT_DEPENDENCIES += host-vim
 endif
 
 ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),y)
-# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/binman/binman.rst?plain=1#L377
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt
 UBOOT_DEPENDENCIES += \
 	host-python-jsonschema \
-	host-python-pyyaml
+	host-python-pyyaml \
+	host-python-yamllint
 UBOOT_MAKE_OPTS += BINMAN_INDIRS=$(BINARIES_DIR)
 endif
 
--

2.39.2

Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#5 lore raw
In reply to Heiko Thiery

Heiko, All,

On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly:

Quoted 8 lines

This host package is needed since u-boot 2024.04 for building ti defconfigs.

This is an requirement for using buildman/binman [1].

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

[--SNIP--]

package/python-yamllint/Config.in line 3

Quoted 9 lines
package/python-yamllint/Config.in new file +3 -0
new file mode 100644
index 0000000000..5c0962f09f
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_YAMLLINT
+	bool "python-yamllint"
+	select BR2_PACKAGE_PYTHON_PATHSPEC # runtime
    $ ./utils/docker-run make check-package
    package/python-yamllint/Config.in:3: BR2_PACKAGE_PYTHON_PATHSPEC referenced but not defined

OK, I'll go and apply that other patch of yours that introduces the target variant for python-pathspec, but which is not in this patchset.

You need more coffee! ;-)

Regards,
Yann E. MORIN.

Quoted 78 lines
package/python-yamllint/Config.in new file +5 -0
+	select BR2_PACKAGE_PYTHON_PYYAML # runtime
+	help
+	  A linter for YAML files.
+
+	  https://github.com/adrienverge/yamllint
package/python-yamllint/python-yamllint.hash new file +3 -0
new file mode 100644
index 0000000000..d80e0fdf42
@@ -0,0 +1,3 @@
+# Locally computed sha256 checksums
+sha256  7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd  yamllint-1.35.1.tar.gz
+sha256  3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986  LICENSE
package/python-yamllint/python-yamllint.mk new file +15 -0
new file mode 100644
index 0000000000..ceaca3b0b8
@@ -0,0 +1,15 @@
+################################################################################
+#
+# python-yamllint
+#
+################################################################################
+
+PYTHON_YAMLLINT_VERSION = 1.35.1
+PYTHON_YAMLLINT_SOURCE = yamllint-$(PYTHON_YAMLLINT_VERSION).tar.gz
+PYTHON_YAMLLINT_SITE = https://files.pythonhosted.org/packages/da/06/d8cee5c3dfd550cc0a466ead8b321138198485d1034130ac1393cc49d63e
+PYTHON_YAMLLINT_SETUP_TYPE = pep517
+PYTHON_YAMLLINT_LICENSE = GPL-3.0
+PYTHON_YAMLLINT_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))
+$(eval $(host-python-package))
support/testing/tests/package/sample_python_yamllint.py new file +13 -0
new file mode 100644
index 0000000000..369a3b8d7d
@@ -0,0 +1,13 @@
+# example form https://yamllint.readthedocs.io/en/stable/development.html
+
+from yamllint import (config, linter)
+
+data = '''---
+- &anchor
+  foo: bar
+- *anchor
+'''
+
+yaml_config = config.YamlLintConfig("extends: default")
+for p in linter.run(data, yaml_config):
+    print(p.desc, p.line, p.rule)
support/testing/tests/package/test_python_yamllint.py new file +11 -1
new file mode 100644
index 0000000000..226048ae87
@@ -0,0 +1,11 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonYamllint(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_YAMLLINT=y
+        """
+    sample_scripts = ["tests/package/sample_python_yamllint.py"]
--

2.39.2

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Signature · 10 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#6 lore raw

Heiko, All,

On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly:

Quoted 25 lines

Heiko, All,

On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly:

Quoted 8 lines

This host package is needed since u-boot 2024.04 for building ti defconfigs.

This is an requirement for using buildman/binman [1].

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

[--SNIP--]

package/python-yamllint/Config.in line 3

Quoted 9 lines
package/python-yamllint/Config.in new file +3 -0
new file mode 100644
index 0000000000..5c0962f09f
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_YAMLLINT
+	bool "python-yamllint"
+	select BR2_PACKAGE_PYTHON_PATHSPEC # runtime
    $ ./utils/docker-run make check-package
    package/python-yamllint/Config.in:3: BR2_PACKAGE_PYTHON_PATHSPEC referenced but not defined
Quoted 2 lines

OK, I'll go and apply that other patch of yours that introduces the target variant for python-pathspec, but which is not in this patchset.

Applied to master, now, thanks.

Regards,
Yann E. MORIN.

Signature · 10 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#7 lore raw

Hello Heiko, Yann, All,

Le 12/04/2024 à 17:51, Yann E. MORIN a écrit :

Quoted 30 lines

Heiko, All,

On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly:

Quoted 27 lines

Heiko, All,

On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly:

Quoted 8 lines

This host package is needed since u-boot 2024.04 for building ti defconfigs.

This is an requirement for using buildman/binman [1].

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

[--SNIP--]

package/python-yamllint/Config.in line 3

Quoted 9 lines
package/python-yamllint/Config.in new file +3 -0
new file mode 100644
index 0000000000..5c0962f09f
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_YAMLLINT
+	bool "python-yamllint"
+	select BR2_PACKAGE_PYTHON_PATHSPEC # runtime
    $ ./utils/docker-run make check-package
    package/python-yamllint/Config.in:3: BR2_PACKAGE_PYTHON_PATHSPEC referenced but not defined

OK, I'll go and apply that other patch of yours that introduces the target variant for python-pathspec, but which is not in this patchset.

What if python-pathspec is not installed on the host?

make host-python-yamllint

./ouput/host/bin/python ./support/testing/tests/package/sample_python_yamllint.py

ModuleNotFoundError: No module named 'pathspec'

We must add host-python-pathspec (and all other runtime dependencies) in build dependencies of host-python-yamllint

  # This is a runtime dependency, but we don't have the concept of
  # runtime dependencies for host packages.
  HOST_PYTHON_YAMLLINT_DEPENDENCIES += \
    host-python-pathspec \
    host-python-pyyaml

Actually, I'm not sure if every host-python packages really do this.

Best regards,
Romain

Quoted 6 lines

Applied to master, now, thanks.

Regards,
Yann E. MORIN.

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#8 lore raw

Hi Romain, all,

Am Fr., 12. Apr. 2024 um 22:54 Uhr schrieb Romain Naour <[email protected]>:

Quoted 37 lines

Hello Heiko, Yann, All,

Quoted 30 lines · Yann E. MORIN

Heiko, All,

On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly:

Quoted 27 lines

Heiko, All,

On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly:

Quoted 8 lines

This host package is needed since u-boot 2024.04 for building ti defconfigs.

This is an requirement for using buildman/binman [1].

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt?ref_type=tags#L3

---

[--SNIP--]

package/python-yamllint/Config.in line 3

Quoted 9 lines
package/python-yamllint/Config.in new file +3 -0
new file mode 100644
index 0000000000..5c0962f09f
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_YAMLLINT
+   bool "python-yamllint"
+   select BR2_PACKAGE_PYTHON_PATHSPEC # runtime
    $ ./utils/docker-run make check-package
    package/python-yamllint/Config.in:3: BR2_PACKAGE_PYTHON_PATHSPEC referenced but not defined

OK, I'll go and apply that other patch of yours that introduces the target variant for python-pathspec, but which is not in this patchset.

What if python-pathspec is not installed on the host?

Quoted 8 lines

make host-python-yamllint

./ouput/host/bin/python ./support/testing/tests/package/sample_python_yamllint.py

ModuleNotFoundError: No module named 'pathspec'

We must add host-python-pathspec (and all other runtime dependencies) in build dependencies of host-python-yamllint

You are right .. I just retested this and can confirm. I will prepare a patch. I also see that the PYTHON_YAMLLINT_SETUP_TYPE is not correct. I had to use setuptools and not pep517.

It's really not very satisfying that with the growth of binman so many dependencies for the uboot are now coming in.

Quoted 8 lines
  # This is a runtime dependency, but we don't have the concept of
  # runtime dependencies for host packages.
  HOST_PYTHON_YAMLLINT_DEPENDENCIES += \
    host-python-pathspec \
    host-python-pyyaml

Actually, I'm not sure if every host-python packages really do this.

I think you are right.

Quoted 3 lines

Best regards,
Romain

Signature · 5 lines
Heiko
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#9 lore raw
Quoted 8 lines
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Heiko" == Heiko Thiery <[email protected]> writes:

What if python-pathspec is not installed on the host?

make host-python-yamllint

./ouput/host/bin/python ./support/testing/tests/package/sample_python_yamllint.py

Quoted 8 lines
Quoted 4 lines

ModuleNotFoundError: No module named 'pathspec'

We must add host-python-pathspec (and all other runtime dependencies) in build dependencies of host-python-yamllint

You are right .. I just retested this and can confirm. I will prepare a patch. I also see that the PYTHON_YAMLLINT_SETUP_TYPE is not correct. I had to use setuptools and not pep517.

Can you also send a patch to update DEVELOPERS with python-yamllint and the test you added?

Thanks!

Signature · 5 lines
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot