Re: [OE-core] [PATCH 01/20] oe-selftest: add a test for recipes without maintainers

2018-02-02 Thread Alexander Kanavin

On 02/01/2018 10:41 PM, Paul Eggleton wrote:

I understand the intention, but I don't think oe-selftest is the right place to 
be
doing this. It's going to fail for sure if you have any non-OE-Core layers in
your configuration.

One thing I have continued to campaign for (and I'm aware that not everyone
completely agrees) is that oe-selftest should be able to be run with people's
own configurations, we shouldn't necessarily assume that it's only our default
being tested - that way we maximise oe-selftest's utility and audience. Of
course there's a limit to that, if someone's esoteric configuration breaks it
they get to keep the pieces - but this will definitely break with anyone's
custom configuration, esoteric or otherwise.


I do agree with this. We've had this exact conversation with Ross a few 
weeks back, and he promised to fix the test so that it's limited to 
recipes in oe-core. Take me re-sending the patch as a gentle reminder 
for that. :)



By all means let's have a script that does this - it's even trivial to write one
with tinfoil.


No manual scripts (that no one except me even knows about) please. I 
really do want to automate this, and have it run regularly on the 
autobuilder. Otherwise, one can just issue:


bitbake -c checkpkg world && grep -v @ tmp/log/checkpkg.csv


Alex
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 01/20] oe-selftest: add a test for recipes without maintainers

2018-02-01 Thread Paul Eggleton
Hi Alex,

On Friday, 2 February 2018 7:01:51 AM NZDT Alexander Kanavin wrote:
> 'bitbake -c checkpkg world' is moved to class initializer to avoid
> it being run twice in a row.
> 
> Signed-off-by: Alexander Kanavin 
> ---
>  meta/lib/oeqa/selftest/cases/distrodata.py | 32 
> +-
>  1 file changed, 27 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/distrodata.py 
> b/meta/lib/oeqa/selftest/cases/distrodata.py
> index 12540adc7d8..dd0760cce93 100644
> --- a/meta/lib/oeqa/selftest/cases/distrodata.py
> +++ b/meta/lib/oeqa/selftest/cases/distrodata.py
> @@ -9,6 +9,12 @@ class Distrodata(OESelftestTestCase):
>  @classmethod
>  def setUpClass(cls):
>  super(Distrodata, cls).setUpClass()
> +feature = 'INHERIT += "distrodata"\n'
> +feature += 'LICENSE_FLAGS_WHITELIST += " commercial"\n'
> +
> +cls.write_config(cls, feature)
> +bitbake('-c checkpkg world')
> +
>  
>  @OETestID(1902)
>  def test_checkpkg(self):
> @@ -18,11 +24,6 @@ class Distrodata(OESelftestTestCase):
>  Product: oe-core
>  Author:  Alexander Kanavin 
>  """
> -feature = 'INHERIT += "distrodata"\n'
> -feature += 'LICENSE_FLAGS_WHITELIST += " commercial"\n'
> -
> -self.write_config(feature)
> -bitbake('-c checkpkg world')
>  checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), 
> "checkpkg.csv")).readlines()[1:]
>  regressed_failures = [pkg_data[0] for pkg_data in 
> [pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 
> 'UNKNOWN_BROKEN']
>  regressed_successes = [pkg_data[0] for pkg_data in 
> [pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 
> 'KNOWN_BROKEN']
> @@ -40,3 +41,24 @@ The following packages have been checked successfully for 
> upstream versions,
>  but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. 
> Please remove that line from the recipes.
>  """ + "\n".join(regressed_successes)
>  self.assertTrue(len(regressed_failures) == 0 and 
> len(regressed_successes) == 0, msg)
> +
> +def test_maintainers(self):
> +"""
> +Summary: Test that recipes have a maintainer
> +Expected:All recipes (except a few special static/testing ones) 
> should have a maintainer listed in maintainers.inc file.
> +Product: oe-core
> +Author:  Alexander Kanavin 
> +"""
> +def is_exception(pkg):
> +exceptions = ["packagegroup-", "initramfs-", 
> "systemd-machine-units", "container-image-testpkg", "postinst", 
> "devtool-test-", "selftest-ed", "target-sdk-provides-dummy"]
> +for i in exceptions:
> + if i in pkg:
> + return True
> +return False
> +
> +checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), 
> "checkpkg.csv")).readlines()[1:]
> +no_maintainer_list = [pkg_data[0] for pkg_data in 
> [pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[14] == '' 
> and not is_exception(pkg_data[0])]
> +msg = """
> +The following packages do not have a maintainer assigned to them. Please
> add an entry to meta/conf/distro/include/maintainers.inc file.
> +""" + "\n".join(no_maintainer_list)
> +self.assertTrue(len(no_maintainer_list) == 0, msg)
> 

I understand the intention, but I don't think oe-selftest is the right place to 
be
doing this. It's going to fail for sure if you have any non-OE-Core layers in
your configuration.

One thing I have continued to campaign for (and I'm aware that not everyone
completely agrees) is that oe-selftest should be able to be run with people's
own configurations, we shouldn't necessarily assume that it's only our default
being tested - that way we maximise oe-selftest's utility and audience. Of
course there's a limit to that, if someone's esoteric configuration breaks it
they get to keep the pieces - but this will definitely break with anyone's
custom configuration, esoteric or otherwise.

By all means let's have a script that does this - it's even trivial to write one
with tinfoil.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 01/20] oe-selftest: add a test for recipes without maintainers

2018-02-01 Thread Alexander Kanavin
'bitbake -c checkpkg world' is moved to class initializer to avoid
it being run twice in a row.

Signed-off-by: Alexander Kanavin 
---
 meta/lib/oeqa/selftest/cases/distrodata.py | 32 +-
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/distrodata.py 
b/meta/lib/oeqa/selftest/cases/distrodata.py
index 12540adc7d8..dd0760cce93 100644
--- a/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -9,6 +9,12 @@ class Distrodata(OESelftestTestCase):
 @classmethod
 def setUpClass(cls):
 super(Distrodata, cls).setUpClass()
+feature = 'INHERIT += "distrodata"\n'
+feature += 'LICENSE_FLAGS_WHITELIST += " commercial"\n'
+
+cls.write_config(cls, feature)
+bitbake('-c checkpkg world')
+
 
 @OETestID(1902)
 def test_checkpkg(self):
@@ -18,11 +24,6 @@ class Distrodata(OESelftestTestCase):
 Product: oe-core
 Author:  Alexander Kanavin 
 """
-feature = 'INHERIT += "distrodata"\n'
-feature += 'LICENSE_FLAGS_WHITELIST += " commercial"\n'
-
-self.write_config(feature)
-bitbake('-c checkpkg world')
 checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), 
"checkpkg.csv")).readlines()[1:]
 regressed_failures = [pkg_data[0] for pkg_data in 
[pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 
'UNKNOWN_BROKEN']
 regressed_successes = [pkg_data[0] for pkg_data in 
[pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 
'KNOWN_BROKEN']
@@ -40,3 +41,24 @@ The following packages have been checked successfully for 
upstream versions,
 but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please 
remove that line from the recipes.
 """ + "\n".join(regressed_successes)
 self.assertTrue(len(regressed_failures) == 0 and 
len(regressed_successes) == 0, msg)
+
+def test_maintainers(self):
+"""
+Summary: Test that recipes have a maintainer
+Expected:All recipes (except a few special static/testing ones) 
should have a maintainer listed in maintainers.inc file.
+Product: oe-core
+Author:  Alexander Kanavin 
+"""
+def is_exception(pkg):
+exceptions = ["packagegroup-", "initramfs-", 
"systemd-machine-units", "container-image-testpkg", "postinst", 
"devtool-test-", "selftest-ed", "target-sdk-provides-dummy"]
+for i in exceptions:
+ if i in pkg:
+ return True
+return False
+
+checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), 
"checkpkg.csv")).readlines()[1:]
+no_maintainer_list = [pkg_data[0] for pkg_data in 
[pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[14] == '' 
and not is_exception(pkg_data[0])]
+msg = """
+The following packages do not have a maintainer assigned to them. Please add 
an entry to meta/conf/distro/include/maintainers.inc file.
+""" + "\n".join(no_maintainer_list)
+self.assertTrue(len(no_maintainer_list) == 0, msg)
-- 
2.15.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core