Message ID | 20240412055358.1354293-1-heiko.thiery@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3,1/3] package/python-yamllint: new package | expand |
Heiko, All, On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly: > 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 > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> > --- [--SNIP--] > diff --git a/package/python-yamllint/Config.in b/package/python-yamllint/Config.in > new file mode 100644 > index 0000000000..5c0962f09f > --- /dev/null > +++ b/package/python-yamllint/Config.in > @@ -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. > + select BR2_PACKAGE_PYTHON_PYYAML # runtime > + help > + A linter for YAML files. > + > + https://github.com/adrienverge/yamllint > diff --git a/package/python-yamllint/python-yamllint.hash b/package/python-yamllint/python-yamllint.hash > new file mode 100644 > index 0000000000..d80e0fdf42 > --- /dev/null > +++ b/package/python-yamllint/python-yamllint.hash > @@ -0,0 +1,3 @@ > +# Locally computed sha256 checksums > +sha256 7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd yamllint-1.35.1.tar.gz > +sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSE > diff --git a/package/python-yamllint/python-yamllint.mk b/package/python-yamllint/python-yamllint.mk > new file mode 100644 > index 0000000000..ceaca3b0b8 > --- /dev/null > +++ b/package/python-yamllint/python-yamllint.mk > @@ -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)) > diff --git a/support/testing/tests/package/sample_python_yamllint.py b/support/testing/tests/package/sample_python_yamllint.py > new file mode 100644 > index 0000000000..369a3b8d7d > --- /dev/null > +++ b/support/testing/tests/package/sample_python_yamllint.py > @@ -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) > diff --git a/support/testing/tests/package/test_python_yamllint.py b/support/testing/tests/package/test_python_yamllint.py > new file mode 100644 > index 0000000000..226048ae87 > --- /dev/null > +++ b/support/testing/tests/package/test_python_yamllint.py > @@ -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 > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Heiko, All, On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly: > Heiko, All, > > On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly: > > 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 > > > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> > > --- > [--SNIP--] > > diff --git a/package/python-yamllint/Config.in b/package/python-yamllint/Config.in > > new file mode 100644 > > index 0000000000..5c0962f09f > > --- /dev/null > > +++ b/package/python-yamllint/Config.in > > @@ -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. Applied to master, now, thanks. Regards, Yann E. MORIN.
Hello Heiko, Yann, All, Le 12/04/2024 à 17:51, Yann E. MORIN a écrit : > Heiko, All, > > On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly: >> Heiko, All, >> >> On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly: >>> 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 >>> >>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> >>> --- >> [--SNIP--] >>> diff --git a/package/python-yamllint/Config.in b/package/python-yamllint/Config.in >>> new file mode 100644 >>> index 0000000000..5c0962f09f >>> --- /dev/null >>> +++ b/package/python-yamllint/Config.in >>> @@ -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 > > Applied to master, now, thanks. > > Regards, > Yann E. MORIN. >
Hi Romain, all, Am Fr., 12. Apr. 2024 um 22:54 Uhr schrieb Romain Naour <romain.naour@smile.fr>: > > Hello Heiko, Yann, All, > > Le 12/04/2024 à 17:51, Yann E. MORIN a écrit : > > Heiko, All, > > > > On 2024-04-12 17:43 +0200, Yann E. MORIN spake thusly: > >> Heiko, All, > >> > >> On 2024-04-12 07:53 +0200, Heiko Thiery spake thusly: > >>> 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 > >>> > >>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> > >>> --- > >> [--SNIP--] > >>> diff --git a/package/python-yamllint/Config.in b/package/python-yamllint/Config.in > >>> new file mode 100644 > >>> index 0000000000..5c0962f09f > >>> --- /dev/null > >>> +++ b/package/python-yamllint/Config.in > >>> @@ -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 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. > > # 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. > Best regards, > Romain >
diff --git a/package/Config.in b/package/Config.in index d9bbf64c95..1935077f0f 100644 --- a/package/Config.in +++ b/package/Config.in @@ -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" diff --git a/package/python-yamllint/Config.in b/package/python-yamllint/Config.in new file mode 100644 index 0000000000..5c0962f09f --- /dev/null +++ b/package/python-yamllint/Config.in @@ -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 diff --git a/package/python-yamllint/python-yamllint.hash b/package/python-yamllint/python-yamllint.hash new file mode 100644 index 0000000000..d80e0fdf42 --- /dev/null +++ b/package/python-yamllint/python-yamllint.hash @@ -0,0 +1,3 @@ +# Locally computed sha256 checksums +sha256 7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd yamllint-1.35.1.tar.gz +sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSE diff --git a/package/python-yamllint/python-yamllint.mk b/package/python-yamllint/python-yamllint.mk new file mode 100644 index 0000000000..ceaca3b0b8 --- /dev/null +++ b/package/python-yamllint/python-yamllint.mk @@ -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)) diff --git a/support/testing/tests/package/sample_python_yamllint.py b/support/testing/tests/package/sample_python_yamllint.py new file mode 100644 index 0000000000..369a3b8d7d --- /dev/null +++ b/support/testing/tests/package/sample_python_yamllint.py @@ -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) diff --git a/support/testing/tests/package/test_python_yamllint.py b/support/testing/tests/package/test_python_yamllint.py new file mode 100644 index 0000000000..226048ae87 --- /dev/null +++ b/support/testing/tests/package/test_python_yamllint.py @@ -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"]
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 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> --- 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/20240412054421.1346030-1-heiko.thiery@gmail.com/ - 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 -- 2.39.2