public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
* [PATCH builder.git] master.cfg: add GNU poke builder
@ 2022-11-19 23:36 Arsen Arsenović
  2022-11-20 11:48 ` Jose E. Marchesi
  2022-11-23  0:37 ` Mark Wielaard
  0 siblings, 2 replies; 17+ messages in thread
From: Arsen Arsenović @ 2022-11-19 23:36 UTC (permalink / raw)
  To: buildbot; +Cc: Arsen Arsenović, poke-devel

---
Evening,

This patch (when finished ;) will add a GNU poke builder to the Sourceware
buildbot.

There's a few things to consider before merging this (CC'd poke-devel@ for the
discussion):
- What distros and CPUs do we want to test on?

  I think at least s390x in conjunction with x86_64 would be useful, to provide
  a reference for big endian machines, to detect if we're accidentally relying
  on endianness.

  It would probably be useful to test on Debian stable+testing and Fedora
  latest+rawhide, just to make sure we work in both in the past and in the
  future; though, it's probably less significant than CPU choices.

  I only left debian-testing in in the current revision of the patch, which has
  UNSUPPORTED tests due to libtextstyle.

- Which check do we run?

  I initially tried running distcheck, but automake would delete the resulting
  test run AFAICT.  I'm not entirely sure how to work around that yet (and the
  night is catching up with me at this point).  As a result, I switched to just
  check.  Would distcheck even benefit us on CI?  My current thinking is "maybe
  not", and it does result in compiling poke twice, FWIW.

... and, of course, the rest of the patch is up for discussion ;)

Thank you in advance, and have a wonderful night!

 README                                        |  2 +-
 .../containers/Containerfile-debian-testing   |  1 +
 builder/master.cfg                            | 65 ++++++++++++++++++-
 3 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/README b/README
index d2b04cb..2f42d2d 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ htdocs: document root of https://builder.sourceware.org/
   - Define a repourl to be used in the GitPoller and any Build Steps
     project_repourl = 'git://sourceware.org/git/project.git'
 
-  - If the repourl is "new" (not sourceware, gcc or wildebeest)
+  - If the repourl is "new" (not sourceware, gcc, savannah, or wildebeest)
     then add a revlink matches (at the end of master.cfg) so
     changesets get an URL to the actual commit.
 
diff --git a/builder/containers/Containerfile-debian-testing b/builder/containers/Containerfile-debian-testing
index 31a62cb..793cbe8 100644
--- a/builder/containers/Containerfile-debian-testing
+++ b/builder/containers/Containerfile-debian-testing
@@ -18,6 +18,7 @@ RUN apt-get update && \
       libxml2-dev dos2unix python3-dev python3-mock \
       python3-rpm python3-xdg mime-support libopenmpi-dev gdb help2man wget libxxhash-dev \
       libjson-c-dev jq socat \
+      libgc-dev libreadline-dev libnbd-dev \
       buildbot-worker && \
     apt-get clean
 
diff --git a/builder/master.cfg b/builder/master.cfg
index 2bc46ef..48ffbf0 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -426,6 +426,13 @@ glibc_gitpoller = changes.GitPoller(repourl=glibc_repourl,
                                     project='glibc')
 c['change_source'].append(glibc_gitpoller)
 
+gnupoke_repourl='https://git.savannah.gnu.org/git/poke.git'
+gnupoke_gitpoller = changes.GitPoller(repourl=gnupoke_repourl,
+                                      branches=['master'],
+                                      pollInterval=3*60,
+                                      pollRandomDelayMax=2*60,
+                                      project='gnupoke')
+c['change_source'].append(gnupoke_gitpoller)
 
 
 
@@ -868,6 +875,12 @@ glibc_build_scheduler = schedulers.SingleBranchScheduler(
                       "glibc-opensuseleap-x86_64"])
 c['schedulers'].append(glibc_build_scheduler)
 
+gnupoke_scheduler = schedulers.SingleBranchScheduler(
+        name="gnupoke",
+        change_filter=util.ChangeFilter(project="gnupoke",
+                                        branch="master"),
+        builderNames=["gnupoke-debian-testing-x86_64"])
+c['schedulers'].append(gnupoke_scheduler)
 
 ####### BUILDERS
 
@@ -911,6 +924,9 @@ sourceware_reconfig_builder = util.BuilderConfig(
 c['builders'].append(sourceware_reconfig_builder)
 
 # Some common build steps
+bootstrap_step = steps.ShellCommand(
+        command=["./bootstrap"],
+        name="bootstrap", haltOnFailure=True)
 autoreconf_step = steps.ShellCommand(
         command=["autoreconf", "-f", "-i"],
         name="autoreconf", haltOnFailure=True)
@@ -3739,6 +3755,31 @@ systemtap_fedrawhide_x86_64_builder = util.BuilderConfig(
         factory=systemtap_factory)
 c['builders'].append(systemtap_fedrawhide_x86_64_builder)
 
+# GNU poke builders and factories
+gnupoke_factory = util.BuildFactory()
+gnupoke_factory.addStep(steps.Git(
+        repourl=gnupoke_repourl,
+        mode='full', method='fresh',
+        name="git checkout",
+        haltOnFailure=True))
+gnupoke_factory.addStep(bootstrap_step)
+gnupoke_factory.addStep(configure_step)
+gnupoke_factory.addStep(make_step)
+gnupoke_factory.addStep(make_distcheck_step)
+gnupoke_factory.addSteps(bunsen_logfile_upload_steps([
+        (["./testsuite/poke.log"], "testsuite"),
+        (["config.log"],           "."),
+        (["./jitter/config.log"],  "jitter")
+]))
+
+gnupoke_debiantesting_x86_64_builder = util.BuilderConfig(
+        name="gnupoke-debian-testing-x86_64",
+        tags=["gnupoke", "debian-testing", "x86_64"],
+        properties={'container-file':
+                    readContainerFile('debian-testing')},
+        workernames=vm_workers,
+        factory=gnupoke_factory)
+c['builders'].append(gnupoke_debiantesting_x86_64_builder)
 
 ####### BUILDBOT SERVICES
 
@@ -4000,6 +4041,25 @@ mn_valgrind_change = reporters.MailNotifier(
         generators=[generator_valgrind_change])
 c['services'].append(mn_valgrind_change)
 
+# Change reporter for GNU poke.
+generator_gnupoke = reporters.BuildSetStatusGenerator(
+        mode=('change',), tags=['gnupoke'])
+mn_gnupoke = reporters.MailNotifier(
+        fromaddr="builder@sourceware.org",
+        sendToInterestedUsers=False,
+        extraRecipients=['poke-devel@gnu.org'],
+        generators=[generator_gnupoke])
+c['services'].append(mn_gnupoke)
+
+# Problem reporter for GNU poke.
+generator_gnupoke_problem = reporters.BuildSetStatusGenerator(
+        mode=('problem',), tags=['gnupoke'])
+mn_gnupoke_problem = reporters.MailNotifier(
+        fromaddr="builder@sourceware.org",
+        sendToInterestedUsers=True,
+        generators=[generator_gnupoke_problem])
+c['services'].append(mn_gnupoke_problem)
+
 
 ####### PROJECT IDENTITY
 
@@ -4071,8 +4131,11 @@ wildebeestRevLink = util.RevlinkMatch(
         repo_urls=[r'git://code.wildebeest.org/(.*).git',
                    r'https://code.wildebeest.org/git/(.*)'],
         revlink=r'https://code.wildebeest.org/git/\1/commit/?id=%s')
+savannahRevLink = util.RevlinkMatch(
+        repo_urls=[r'https://git.savannah.gnu.org/git/(.*).git'],
+        revlink=r'https://git.savannah.gnu.org/cgit/\1.git/commit/?id=%s')
 
-reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink]
+reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink, savannahRevLink]
 
 def revlinkmultiplexer(rev,repo):
   for revlink in reflinks:
-- 
2.38.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-19 23:36 [PATCH builder.git] master.cfg: add GNU poke builder Arsen Arsenović
@ 2022-11-20 11:48 ` Jose E. Marchesi
  2022-11-20 12:21   ` Arsen Arsenović
  2022-11-23  0:37 ` Mark Wielaard
  1 sibling, 1 reply; 17+ messages in thread
From: Jose E. Marchesi @ 2022-11-20 11:48 UTC (permalink / raw)
  To: Arsen Arsenović via poke-devel
  Cc: buildbot, Arsen Arsenović, positron


Hi Arsen.
Thank you so much for working on this.

> ---
> Evening,
>
> This patch (when finished ;) will add a GNU poke builder to the Sourceware
> buildbot.
>
> There's a few things to consider before merging this (CC'd poke-devel@ for the
> discussion):
> - What distros and CPUs do we want to test on?
>
>   I think at least s390x in conjunction with x86_64 would be useful, to provide
>   a reference for big endian machines, to detect if we're accidentally relying
>   on endianness.
>
>   It would probably be useful to test on Debian stable+testing and Fedora
>   latest+rawhide, just to make sure we work in both in the past and in the
>   future; though, it's probably less significant than CPU choices.
>
>   I only left debian-testing in in the current revision of the patch, which has
>   UNSUPPORTED tests due to libtextstyle.

Regarding CPUs, Jitter is quite sensible to them when run in
non-threaded mode, so it is a good thing to test on them in order to
detect issues before releases.

For example, we had several problems with (if I remember properly) arm
32-bit and some other arch with poke 2.0.

Mohammad and Luca may have particular suggestions..

> - Which check do we run?
>
>   I initially tried running distcheck, but automake would delete the resulting
>   test run AFAICT.  I'm not entirely sure how to work around that yet (and the
>   night is catching up with me at this point).  As a result, I switched to just
>   check.  Would distcheck even benefit us on CI?  My current thinking is "maybe
>   not", and it does result in compiling poke twice, FWIW.

As discussed in IRC, this is the script that Bruno uses in the gitlab
CI.  I think replicating it may be good:

https://gitlab.com/gnu-poke/ci-distcheck

>
> ... and, of course, the rest of the patch is up for discussion ;)

FWIW it looks good to me.  We are gonna need some documenation for this
in etc/hacking.org regarding this though :)

Thanks again!

>
> Thank you in advance, and have a wonderful night!
>
>  README                                        |  2 +-
>  .../containers/Containerfile-debian-testing   |  1 +
>  builder/master.cfg                            | 65 ++++++++++++++++++-
>  3 files changed, 66 insertions(+), 2 deletions(-)
>
> diff --git a/README b/README
> index d2b04cb..2f42d2d 100644
> --- a/README
> +++ b/README
> @@ -12,7 +12,7 @@ htdocs: document root of https://builder.sourceware.org/
>    - Define a repourl to be used in the GitPoller and any Build Steps
>      project_repourl = 'git://sourceware.org/git/project.git'
>  
> -  - If the repourl is "new" (not sourceware, gcc or wildebeest)
> +  - If the repourl is "new" (not sourceware, gcc, savannah, or wildebeest)
>      then add a revlink matches (at the end of master.cfg) so
>      changesets get an URL to the actual commit.
>  
> diff --git a/builder/containers/Containerfile-debian-testing b/builder/containers/Containerfile-debian-testing
> index 31a62cb..793cbe8 100644
> --- a/builder/containers/Containerfile-debian-testing
> +++ b/builder/containers/Containerfile-debian-testing
> @@ -18,6 +18,7 @@ RUN apt-get update && \
>        libxml2-dev dos2unix python3-dev python3-mock \
>        python3-rpm python3-xdg mime-support libopenmpi-dev gdb help2man wget libxxhash-dev \
>        libjson-c-dev jq socat \
> +      libgc-dev libreadline-dev libnbd-dev \
>        buildbot-worker && \
>      apt-get clean
>  
> diff --git a/builder/master.cfg b/builder/master.cfg
> index 2bc46ef..48ffbf0 100644
> --- a/builder/master.cfg
> +++ b/builder/master.cfg
> @@ -426,6 +426,13 @@ glibc_gitpoller = changes.GitPoller(repourl=glibc_repourl,
>                                      project='glibc')
>  c['change_source'].append(glibc_gitpoller)
>  
> +gnupoke_repourl='https://git.savannah.gnu.org/git/poke.git'
> +gnupoke_gitpoller = changes.GitPoller(repourl=gnupoke_repourl,
> +                                      branches=['master'],
> +                                      pollInterval=3*60,
> +                                      pollRandomDelayMax=2*60,
> +                                      project='gnupoke')
> +c['change_source'].append(gnupoke_gitpoller)
>  
>  
>  
> @@ -868,6 +875,12 @@ glibc_build_scheduler = schedulers.SingleBranchScheduler(
>                        "glibc-opensuseleap-x86_64"])
>  c['schedulers'].append(glibc_build_scheduler)
>  
> +gnupoke_scheduler = schedulers.SingleBranchScheduler(
> +        name="gnupoke",
> +        change_filter=util.ChangeFilter(project="gnupoke",
> +                                        branch="master"),
> +        builderNames=["gnupoke-debian-testing-x86_64"])
> +c['schedulers'].append(gnupoke_scheduler)
>  
>  ####### BUILDERS
>  
> @@ -911,6 +924,9 @@ sourceware_reconfig_builder = util.BuilderConfig(
>  c['builders'].append(sourceware_reconfig_builder)
>  
>  # Some common build steps
> +bootstrap_step = steps.ShellCommand(
> +        command=["./bootstrap"],
> +        name="bootstrap", haltOnFailure=True)
>  autoreconf_step = steps.ShellCommand(
>          command=["autoreconf", "-f", "-i"],
>          name="autoreconf", haltOnFailure=True)
> @@ -3739,6 +3755,31 @@ systemtap_fedrawhide_x86_64_builder = util.BuilderConfig(
>          factory=systemtap_factory)
>  c['builders'].append(systemtap_fedrawhide_x86_64_builder)
>  
> +# GNU poke builders and factories
> +gnupoke_factory = util.BuildFactory()
> +gnupoke_factory.addStep(steps.Git(
> +        repourl=gnupoke_repourl,
> +        mode='full', method='fresh',
> +        name="git checkout",
> +        haltOnFailure=True))
> +gnupoke_factory.addStep(bootstrap_step)
> +gnupoke_factory.addStep(configure_step)
> +gnupoke_factory.addStep(make_step)
> +gnupoke_factory.addStep(make_distcheck_step)
> +gnupoke_factory.addSteps(bunsen_logfile_upload_steps([
> +        (["./testsuite/poke.log"], "testsuite"),
> +        (["config.log"],           "."),
> +        (["./jitter/config.log"],  "jitter")
> +]))
> +
> +gnupoke_debiantesting_x86_64_builder = util.BuilderConfig(
> +        name="gnupoke-debian-testing-x86_64",
> +        tags=["gnupoke", "debian-testing", "x86_64"],
> +        properties={'container-file':
> +                    readContainerFile('debian-testing')},
> +        workernames=vm_workers,
> +        factory=gnupoke_factory)
> +c['builders'].append(gnupoke_debiantesting_x86_64_builder)
>  
>  ####### BUILDBOT SERVICES
>  
> @@ -4000,6 +4041,25 @@ mn_valgrind_change = reporters.MailNotifier(
>          generators=[generator_valgrind_change])
>  c['services'].append(mn_valgrind_change)
>  
> +# Change reporter for GNU poke.
> +generator_gnupoke = reporters.BuildSetStatusGenerator(
> +        mode=('change',), tags=['gnupoke'])
> +mn_gnupoke = reporters.MailNotifier(
> +        fromaddr="builder@sourceware.org",
> +        sendToInterestedUsers=False,
> +        extraRecipients=['poke-devel@gnu.org'],
> +        generators=[generator_gnupoke])
> +c['services'].append(mn_gnupoke)
> +
> +# Problem reporter for GNU poke.
> +generator_gnupoke_problem = reporters.BuildSetStatusGenerator(
> +        mode=('problem',), tags=['gnupoke'])
> +mn_gnupoke_problem = reporters.MailNotifier(
> +        fromaddr="builder@sourceware.org",
> +        sendToInterestedUsers=True,
> +        generators=[generator_gnupoke_problem])
> +c['services'].append(mn_gnupoke_problem)
> +
>  
>  ####### PROJECT IDENTITY
>  
> @@ -4071,8 +4131,11 @@ wildebeestRevLink = util.RevlinkMatch(
>          repo_urls=[r'git://code.wildebeest.org/(.*).git',
>                     r'https://code.wildebeest.org/git/(.*)'],
>          revlink=r'https://code.wildebeest.org/git/\1/commit/?id=%s')
> +savannahRevLink = util.RevlinkMatch(
> +        repo_urls=[r'https://git.savannah.gnu.org/git/(.*).git'],
> +        revlink=r'https://git.savannah.gnu.org/cgit/\1.git/commit/?id=%s')
>  
> -reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink]
> +reflinks = [sourcewareRevLink, gccRevLink, wildebeestRevLink, savannahRevLink]
>  
>  def revlinkmultiplexer(rev,repo):
>    for revlink in reflinks:

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 11:48 ` Jose E. Marchesi
@ 2022-11-20 12:21   ` Arsen Arsenović
  2022-11-20 13:17     ` Frank Ch. Eigler
  2022-11-20 14:12     ` Jose E. Marchesi
  0 siblings, 2 replies; 17+ messages in thread
From: Arsen Arsenović @ 2022-11-20 12:21 UTC (permalink / raw)
  To: Jose E. Marchesi; +Cc: Arsen Arsenović via poke-devel, buildbot, positron

[-- Attachment #1: Type: text/plain, Size: 1408 bytes --]

Hi,

"Jose E. Marchesi" <jemarch@gnu.org> writes:

> Hi Arsen.
> Thank you so much for working on this.

Happy to help!  :)

> Regarding CPUs, Jitter is quite sensible to them when run in
> non-threaded mode, so it is a good thing to test on them in order to
> detect issues before releases.
>
> For example, we had several problems with (if I remember properly) arm
> 32-bit and some other arch with poke 2.0.
>
> Mohammad and Luca may have particular suggestions..

Sure, let's wait for them to chime in.

> As discussed in IRC, this is the script that Bruno uses in the gitlab
> CI.  I think replicating it may be good:
>
> https://gitlab.com/gnu-poke/ci-distcheck

OK, looking at this, I think we could have:
- One builder that runs distcheck and saves the resulting tar(s), and
- N builders for each arch/distro combo we want to run on, that just run
  make check and save the result (like the patch already would).
  That *could* also involve multilib, though I think an i686 runner
  would be equivalent but less complicated?  Not sure.

That'd (AFAICT) replicate the behavior of current CI, save for optional
packages.  We could re-run configuration without those, too.

I think config.log should cover all the useful information config.status
and config.cache contains, so maybe we could also omit saving those?
WDYT?

Have a good day.
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 12:21   ` Arsen Arsenović
@ 2022-11-20 13:17     ` Frank Ch. Eigler
  2022-11-20 14:43       ` Arsen Arsenović
  2022-11-20 14:12     ` Jose E. Marchesi
  1 sibling, 1 reply; 17+ messages in thread
From: Frank Ch. Eigler @ 2022-11-20 13:17 UTC (permalink / raw)
  To: Arsen Arsenović
  Cc: Jose E. Marchesi, Arsen Arsenović via poke-devel, buildbot,
	positron

Hi -

> I think config.log should cover all the useful information config.status
> and config.cache contains, so maybe we could also omit saving those?
> WDYT?

Other builder.sourceware.org projects that use both check & distcheck
import the two sets of configury/test results into separate bunsen
testruns, so they can be separately tracked.  See also:


gdb_factory.addStep(make_gdb_check_step('--target_board=native-gdbserver'))
gdb_factory.addSteps(bunsen_logfile_upload_cpio_steps( # only a few tests being run but still
        ["*.sum", "*.log"],
        workdir='gdb-build',
        tagsuffix='/gdbserver'))

gdb_factory.addStep(make_gdb_check_step('--target_board=native-extended-gdbserver'))
gdb_factory.addSteps(bunsen_logfile_upload_cpio_steps( # only a few tests being run but still
        ["*.sum", "*.log"],
        workdir='gdb-build',
        tagsuffix='/extended-gdbserver'))
                        

- FChE

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 12:21   ` Arsen Arsenović
  2022-11-20 13:17     ` Frank Ch. Eigler
@ 2022-11-20 14:12     ` Jose E. Marchesi
  1 sibling, 0 replies; 17+ messages in thread
From: Jose E. Marchesi @ 2022-11-20 14:12 UTC (permalink / raw)
  To: Arsen Arsenović
  Cc: Arsen Arsenović via poke-devel, buildbot, positron


> Hi,
>
> "Jose E. Marchesi" <jemarch@gnu.org> writes:
>
>> Hi Arsen.
>> Thank you so much for working on this.
>
> Happy to help!  :)
>
>> Regarding CPUs, Jitter is quite sensible to them when run in
>> non-threaded mode, so it is a good thing to test on them in order to
>> detect issues before releases.
>>
>> For example, we had several problems with (if I remember properly) arm
>> 32-bit and some other arch with poke 2.0.
>>
>> Mohammad and Luca may have particular suggestions..
>
> Sure, let's wait for them to chime in.


Actually, would it be to abuse much to just run the tests in all
supported architectures in the buildbot?  I don't think there is any
architecture there that we do _not_ want to support...

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 13:17     ` Frank Ch. Eigler
@ 2022-11-20 14:43       ` Arsen Arsenović
  2022-11-20 15:31         ` Frank Ch. Eigler
  0 siblings, 1 reply; 17+ messages in thread
From: Arsen Arsenović @ 2022-11-20 14:43 UTC (permalink / raw)
  To: Frank Ch. Eigler
  Cc: Jose E. Marchesi, Arsen Arsenović via poke-devel, positron,
	buildbot

[-- Attachment #1: Type: text/plain, Size: 1030 bytes --]

Hi,

"Frank Ch. Eigler" <fche@elastic.org> writes:

> Other builder.sourceware.org projects that use both check & distcheck
> import the two sets of configury/test results into separate bunsen
> testruns, so they can be separately tracked.  See also:

This is confusing me a bit.  I tried running distcheck locally, and the
test results from the distcheck build would be deleted as the last step
of distcheck.  These are the commands I ran (obtained from master.cfg
just to be sure):

  git clone https://git.savannah.gnu.org/git/poke.git
  cd poke
  sudo genlop -t gettext
  ./bootstrap
  ./configure --enable-maintainer-mode
  make V=1 -j 17
  make -j17 V=1 check
  make -j17 V=1 distcheck

There's no resulting .log anywhere that ``find .'' could reach.

I tried working around this by setting am__post_remove_distdir, but
that'd get inherited by the distcleancheck step and break it.  I'm not
aware of a way to pass variables to just the top level make invocation.

Thanks.
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 14:43       ` Arsen Arsenović
@ 2022-11-20 15:31         ` Frank Ch. Eigler
  2022-11-20 16:05           ` Arsen Arsenović
  0 siblings, 1 reply; 17+ messages in thread
From: Frank Ch. Eigler @ 2022-11-20 15:31 UTC (permalink / raw)
  To: Arsen Arsenović
  Cc: Jose E. Marchesi, Arsen Arsenović via poke-devel, positron,
	buildbot

Hi -

>   make V=1 -j 17
>   make -j17 V=1 check

The .log/.sum files from this should stick around in the build tree
testsuite/ directory, and one could insert a bunsen file upload step
at this point.

>   make -j17 V=1 distcheck
> 
> There's no resulting .log anywhere that ``find .'' could reach.

I see what you mean, the poke-2.4 and its _build etc subdirs are all
nuked.


> I tried working around this by setting am__post_remove_distdir, but
> that'd get inherited by the distcleancheck step and break it.  I'm not
> aware of a way to pass variables to just the top level make invocation.

If you want to keep distcheck, you may be stuck with having to use the
custom AM_DISTCHECK_CONFIGURE_FLAGS and propagate an autoconf/automake
conditional to trigger a post-"check" copy of the
poke-2.4/_build/sub/testsuite directory out to a preserved location.

- FChE

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-20 15:31         ` Frank Ch. Eigler
@ 2022-11-20 16:05           ` Arsen Arsenović
  0 siblings, 0 replies; 17+ messages in thread
From: Arsen Arsenović @ 2022-11-20 16:05 UTC (permalink / raw)
  To: Frank Ch. Eigler
  Cc: Jose E. Marchesi, Arsen Arsenović via poke-devel, positron,
	buildbot

[-- Attachment #1: Type: text/plain, Size: 896 bytes --]


"Frank Ch. Eigler" <fche@elastic.org> writes:

> If you want to keep distcheck, you may be stuck with having to use the
> custom AM_DISTCHECK_CONFIGURE_FLAGS and propagate an autoconf/automake
> conditional to trigger a post-"check" copy of the
> poke-2.4/_build/sub/testsuite directory out to a preserved location.

I tried to see how this works for debugedit, since it uses the make
check steps too, and I noticed that the files are also not preserved
there.  I've come up with the conclusion that it works there because
buildbot will watch a file specified in logfiles= in a build step, so it
doesn't matter whether it gets deleted.  See:
https://docs.buildbot.net/current/manual/configuration/steps/shell_command.html

This feels somewhat fragile, but it has worked for a while this way, I
suppose.

That answers that.

Thanks!  Have a great day.
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-19 23:36 [PATCH builder.git] master.cfg: add GNU poke builder Arsen Arsenović
  2022-11-20 11:48 ` Jose E. Marchesi
@ 2022-11-23  0:37 ` Mark Wielaard
  2022-11-23 11:53   ` Jose E. Marchesi
  1 sibling, 1 reply; 17+ messages in thread
From: Mark Wielaard @ 2022-11-23  0:37 UTC (permalink / raw)
  To: Arsen Arsenović; +Cc: buildbot, poke-devel

Hi Arsen,

On Sun, Nov 20, 2022 at 12:36:45AM +0100, Arsen Arsenović via Buildbot wrote:
> - What distros and CPUs do we want to test on?
> 
>   I think at least s390x in conjunction with x86_64 would be useful, to provide
>   a reference for big endian machines, to detect if we're accidentally relying
>   on endianness.
> 
>   It would probably be useful to test on Debian stable+testing and Fedora
>   latest+rawhide, just to make sure we work in both in the past and in the
>   future; though, it's probably less significant than CPU choices.
> 
>   I only left debian-testing in in the current revision of the patch, which has
>   UNSUPPORTED tests due to libtextstyle.

So for now lets only use debian-testing to see how things go.

BTW. I tried on debian-i386, but got some test failures/crashes:

The following patch seems to fix that:

diff --git a/libpoke/pkl-lex.l b/libpoke/pkl-lex.l
index 4c9b013e..ef562ccb 100644
--- a/libpoke/pkl-lex.l
+++ b/libpoke/pkl-lex.l
@@ -176,7 +176,7 @@ build_overflow_error_msg (uint64_t value, int width)
                         : "");
 
   asprintf (&msg,
-            "signed overflow\ntry: %luU%s as int<%d>",
+            "signed overflow\ntry: %" PRIu64 "U%s as int<%d>",
             value, suffix, width);
   return msg;
 }

> - Which check do we run?
> 
>   I initially tried running distcheck, but automake would delete the resulting
>   test run AFAICT.  I'm not entirely sure how to work around that yet (and the
>   night is catching up with me at this point).  As a result, I switched to just
>   check.  Would distcheck even benefit us on CI?  My current thinking is "maybe
>   not", and it does result in compiling poke twice, FWIW.

I changed the distcheck step to a normal make check step.

> ... and, of course, the rest of the patch is up for discussion ;)

It looks good. Pushed.

The only thing that concerns me a little is the ./bootstrap step.
That seems to pull in all of gnulib on every build. We might want to
see if that can be cached somehow. In general ./bootstrap seems to
take longer than a make && make check.

Cheers,

Mark

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-23  0:37 ` Mark Wielaard
@ 2022-11-23 11:53   ` Jose E. Marchesi
  2022-11-23 17:44     ` Mark Wielaard
  0 siblings, 1 reply; 17+ messages in thread
From: Jose E. Marchesi @ 2022-11-23 11:53 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: Arsen Arsenović, buildbot, poke-devel


> BTW. I tried on debian-i386, but got some test failures/crashes:
>
> The following patch seems to fix that:
>
> diff --git a/libpoke/pkl-lex.l b/libpoke/pkl-lex.l
> index 4c9b013e..ef562ccb 100644
> --- a/libpoke/pkl-lex.l
> +++ b/libpoke/pkl-lex.l
> @@ -176,7 +176,7 @@ build_overflow_error_msg (uint64_t value, int width)
>                          : "");
>  
>    asprintf (&msg,
> -            "signed overflow\ntry: %luU%s as int<%d>",
> +            "signed overflow\ntry: %" PRIu64 "U%s as int<%d>",
>              value, suffix, width);
>    return msg;
>  }

I just applied that fix in master.

We only develop in 64-bit, so we usually only catch these regressions
before doing releases, when I make a point to test in 32-bit.

The autobuild already paid back, in a way ;)
Thanks!

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-23 11:53   ` Jose E. Marchesi
@ 2022-11-23 17:44     ` Mark Wielaard
  2022-11-23 20:20       ` Mohammad-Reza Nabipoor
  0 siblings, 1 reply; 17+ messages in thread
From: Mark Wielaard @ 2022-11-23 17:44 UTC (permalink / raw)
  To: Jose E. Marchesi; +Cc: Arsen Arsenović, buildbot, poke-devel

[-- Attachment #1: Type: text/plain, Size: 606 bytes --]

Hi Jose,

On Wed, Nov 23, 2022 at 12:53:55PM +0100, Jose E. Marchesi wrote:
> > BTW. I tried on debian-i386, but got some test failures/crashes:
> >
> > The following patch seems to fix that:
> [...] 
> I just applied that fix in master.

Thanks.

> We only develop in 64-bit, so we usually only catch these regressions
> before doing releases, when I make a point to test in 32-bit.

Lets at least add a debian-i386 builder (as attached).
Please feel free to request other arches.

> The autobuild already paid back, in a way ;)

Yes, nice. And Arsen also already fixed an dependency issue.

Cheers,

Mark

[-- Attachment #2: 0001-Add-gnupoke-debian-i386-builder.patch --]
[-- Type: text/x-diff, Size: 1416 bytes --]

From d1c46573ebba49046d6a57b281480e28903ef311 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Wed, 23 Nov 2022 18:43:00 +0100
Subject: [PATCH] Add gnupoke-debian-i386 builder

---
 builder/master.cfg | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/builder/master.cfg b/builder/master.cfg
index ba995e2..3204dcd 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -877,7 +877,8 @@ gnupoke_scheduler = schedulers.SingleBranchScheduler(
         name="gnupoke",
         change_filter=util.ChangeFilter(project="gnupoke",
                                         branch="master"),
-        builderNames=["gnupoke-debian-testing-x86_64"])
+        builderNames=["gnupoke-debian-testing-x86_64",
+                      "gnupoke-debian-i386"])
 c['schedulers'].append(gnupoke_scheduler)
 
 ####### BUILDERS
@@ -3779,6 +3780,13 @@ gnupoke_debiantesting_x86_64_builder = util.BuilderConfig(
         factory=gnupoke_factory)
 c['builders'].append(gnupoke_debiantesting_x86_64_builder)
 
+gnupoke_debian_i386_builder = util.BuilderConfig(
+        name="gnupoke-debian-i386",
+        tags=["gnupoke", "debian", "i386"],
+        workernames=debian_i386_workers,
+        factory=gnupoke_factory)
+c['builders'].append(gnupoke_debian_i386_builder)
+
 ####### BUILDBOT SERVICES
 
 # 'services' is a list of BuildbotService items like reporter targets. The
-- 
2.30.2


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-23 17:44     ` Mark Wielaard
@ 2022-11-23 20:20       ` Mohammad-Reza Nabipoor
  2022-11-24 12:11         ` Mark Wielaard
  0 siblings, 1 reply; 17+ messages in thread
From: Mohammad-Reza Nabipoor @ 2022-11-23 20:20 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: buildbot, poke-devel

Hello Mark.

On Wed, Nov 23, 2022 at 06:44:28PM +0100, Mark Wielaard wrote:
> 
> Lets at least add a debian-i386 builder (as attached).
> Please feel free to request other arches.
> 

Thanks for these builders.
debian-armhf is also very useful for us (because it uncovered a lot of
bugs during the release of poke 2.0).


Regards,
Mohammad-Reza

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-23 20:20       ` Mohammad-Reza Nabipoor
@ 2022-11-24 12:11         ` Mark Wielaard
  2022-11-28 16:48           ` Frank Ch. Eigler
  0 siblings, 1 reply; 17+ messages in thread
From: Mark Wielaard @ 2022-11-24 12:11 UTC (permalink / raw)
  To: Mohammad-Reza Nabipoor; +Cc: buildbot, poke-devel

Hi Mohammad-Reza,

On Wed, 2022-11-23 at 21:20 +0100, Mohammad-Reza Nabipoor wrote:
> On Wed, Nov 23, 2022 at 06:44:28PM +0100, Mark Wielaard wrote:
> > Lets at least add a debian-i386 builder (as attached).
> > Please feel free to request other arches.
> 
> Thanks for these builders.
> debian-armhf is also very useful for us (because it uncovered
> lot of bugs during the release of poke 2.0).

Unfortunately the armhf workers we currently have are either based on
debian old-stable (debian-armhf) which is too old to build poke, or
reserved for building full gcc and gdb builds (ubuntu22_04-armhf and
armhf-ubuntu22_04). I'll see if I can upgrade the debian-armhf board,
but that might take some time.

Cheers,

Mark

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-24 12:11         ` Mark Wielaard
@ 2022-11-28 16:48           ` Frank Ch. Eigler
  2022-11-28 19:09             ` Arsen Arsenović
  0 siblings, 1 reply; 17+ messages in thread
From: Frank Ch. Eigler @ 2022-11-28 16:48 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: Mohammad-Reza Nabipoor, buildbot, poke-devel

Hi -

By the way, I tweaked the builder's bunsen testlog collection
machinery well enough that the system is recognizing the dejagnu
testsuite results, e.g.:

https://builder.sourceware.org/testrun/c6cb32e4a10b994e26e32266eaf7cce47f7128d5?focus=dgsummary

(It was missing the .sum files.)

- FChE

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-28 16:48           ` Frank Ch. Eigler
@ 2022-11-28 19:09             ` Arsen Arsenović
  2022-11-28 21:53               ` Frank Ch. Eigler
  0 siblings, 1 reply; 17+ messages in thread
From: Arsen Arsenović @ 2022-11-28 19:09 UTC (permalink / raw)
  To: Frank Ch. Eigler
  Cc: Mark Wielaard, Mohammad-Reza Nabipoor, buildbot, poke-devel

[-- Attachment #1: Type: text/plain, Size: 500 bytes --]

Hi Frank,

"Frank Ch. Eigler via poke-devel" <poke-devel@gnu.org> writes:

> By the way, I tweaked the builder's bunsen testlog collection
> machinery well enough that the system is recognizing the dejagnu
> testsuite results, e.g.:
>
> https://builder.sourceware.org/testrun/c6cb32e4a10b994e26e32266eaf7cce47f7128d5?focus=dgsummary
>
> (It was missing the .sum files.)

Ah, thanks.  I didn't figure those would be needed, sorry abt that ;)

Have a great night.
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-28 19:09             ` Arsen Arsenović
@ 2022-11-28 21:53               ` Frank Ch. Eigler
  2022-11-29 11:55                 ` Mohammad-Reza Nabipoor
  0 siblings, 1 reply; 17+ messages in thread
From: Frank Ch. Eigler @ 2022-11-28 21:53 UTC (permalink / raw)
  To: Arsen Arsenović
  Cc: Mark Wielaard, Mohammad-Reza Nabipoor, buildbot, poke-devel

Hi -

> Ah, thanks.  I didn't figure those would be needed, sorry abt that ;)

Another suggestion: change your dejagnu .exp files so that the
test name strings passed to "pass" "fail" etc. are persistent
and generic, and not contain irrelevant stuff like a local
complete path name.

That's because having these paths in the test names makes those test
cases different from run to run, and thus the results are not directly
comparable.  For example:

https://builder.sourceware.org/testrun-diffs?mode=differences&commitish=4a4313189ff5c3e354c977f8eca6621329af3279&commitish=c6cb32e4a10b994e26e32266eaf7cce47f7128d5

It'd be better just to print the `basename $path` or something like that
instead.

- FChE

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH builder.git] master.cfg: add GNU poke builder
  2022-11-28 21:53               ` Frank Ch. Eigler
@ 2022-11-29 11:55                 ` Mohammad-Reza Nabipoor
  0 siblings, 0 replies; 17+ messages in thread
From: Mohammad-Reza Nabipoor @ 2022-11-29 11:55 UTC (permalink / raw)
  To: Frank Ch. Eigler
  Cc: Arsen Arsenović, Mark Wielaard, buildbot, poke-devel


Hi Frank.

On Mon, Nov 28, 2022 at 04:53:14PM -0500, Frank Ch. Eigler wrote:
> Another suggestion: change your dejagnu .exp files so that the
> test name strings passed to "pass" "fail" etc. are persistent
> and generic, and not contain irrelevant stuff like a local
> complete path name.
> 
> That's because having these paths in the test names makes those test
> cases different from run to run, and thus the results are not directly
> comparable.  For example:
> 
> https://builder.sourceware.org/testrun-diffs?mode=differences&commitish=4a4313189ff5c3e354c977f8eca6621329af3279&commitish=c6cb32e4a10b994e26e32266eaf7cce47f7128d5
> 
> It'd be better just to print the `basename $path` or something like that
> instead.
> 

I just fixed it in commit 68208454a874d6c03f79dbe191ed1f7b4de633fc.
Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-11-29 11:56 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-19 23:36 [PATCH builder.git] master.cfg: add GNU poke builder Arsen Arsenović
2022-11-20 11:48 ` Jose E. Marchesi
2022-11-20 12:21   ` Arsen Arsenović
2022-11-20 13:17     ` Frank Ch. Eigler
2022-11-20 14:43       ` Arsen Arsenović
2022-11-20 15:31         ` Frank Ch. Eigler
2022-11-20 16:05           ` Arsen Arsenović
2022-11-20 14:12     ` Jose E. Marchesi
2022-11-23  0:37 ` Mark Wielaard
2022-11-23 11:53   ` Jose E. Marchesi
2022-11-23 17:44     ` Mark Wielaard
2022-11-23 20:20       ` Mohammad-Reza Nabipoor
2022-11-24 12:11         ` Mark Wielaard
2022-11-28 16:48           ` Frank Ch. Eigler
2022-11-28 19:09             ` Arsen Arsenović
2022-11-28 21:53               ` Frank Ch. Eigler
2022-11-29 11:55                 ` Mohammad-Reza Nabipoor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).