Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] f8210d2 Add a simple .travis.yml #14558

Closed
p5pRT opened this issue Mar 4, 2015 · 33 comments
Closed

[PATCH] f8210d2 Add a simple .travis.yml #14558

p5pRT opened this issue Mar 4, 2015 · 33 comments

Comments

@p5pRT
Copy link
Collaborator

@p5pRT p5pRT commented Mar 4, 2015

Migrated from rt.perl.org#123981 (status was 'resolved')

Searchable as RT123981$

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 4, 2015

From yoanlin93@gmail.com

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can fork
perl on GitHub and see the building status directly on travis-ci service
without waiting the time-consuming test process on local machine.

This is a bug report for perl from yoanlin93@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.21.10.

From f8210d2226c534ffd5b7701c27b6c6cd968df741 Mon Sep 17 00​:00​:00 2001
From​: c9s <yoanlin93@​gmail.com>
Date​: Tue, 3 Mar 2015 10​:11​:08 +0800
Subject​: [PATCH] Add a simple .travis.yml
MIME-Version​: 1.0
Content-Type​: multipart/mixed; boundary="------------2.1.2"

This is a multi-part message in MIME format.
--------------2.1.2
Content-Type​: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding​: 8bit


.travis.yml | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 .travis.yml

--------------2.1.2
Content-Type​: text/x-patch; name="0001-Add-a-simple-.travis.yml.patch"
Content-Transfer-Encoding​: 8bit
Content-Disposition​: attachment; filename="0001-Add-a-simple-.travis.yml.patch"

Inline Patch
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..aa8a493
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,28 @@
+language: c
+
+compiler:
+  - gcc
+
+matrix:
+  include:
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duse64bitall' COVERALLS=yes VALGRIND=no DEBUG=yes
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads' COVERALLS=yes VALGRIND=no DEBUG=yes
+    - compiler: clang
+
+install:
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq automake pkg-config build-essential libtool automake autoconf m4 gnulib
+  - sudo apt-get build-dep perl perl-base
+
+before_script:
+  - ./Configure -des -Dusedevel $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead
+script:
+  - make
+after_script:
+cache:
+  apt: true

--------------2.1.2--


---
Flags:   category=core   severity=medium

Site configuration information for perl 5.21.10​:

Configured by c9s at Fri Feb 27 12​:59​:15 CST 2015.

Summary of my perl5 (revision 5 version 21 subversion 10) configuration​:
  Commit id​: e2bb786
  Platform​:
  osname=darwin, osvers=14.1.0, archname=darwin-2level
  uname='darwin c9smba.local 14.1.0 darwin kernel version 14.1.0​: mon dec 22 23​:10​:38 pst 2014; root​:xnu-2782.10.72~2release_x86_64 x86_64 '
  config_args='-des -Dusedevel -Dprefix=/Users/c9s/perl-blead'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
  optimize='-O3',
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
  ccversion='', gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
  ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /opt/local/lib
  libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc
  perllibs=-lpthread -ldl -lm -lutil -lc
  libc=, so=dylib, useshrplib=false, libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'


@​INC for perl 5.21.10​:
  lib
  /Users/c9s/perl-blead/lib/site_perl/5.21.10/darwin-2level
  /Users/c9s/perl-blead/lib/site_perl/5.21.10
  /Users/c9s/perl-blead/lib/5.21.10/darwin-2level
  /Users/c9s/perl-blead/lib/5.21.10
  .


Environment for perl 5.21.10​:
  DYLD_LIBRARY_PATH (unset)
  HOME=/Users/c9s
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LC_ALL=en_US.UTF-8
  LC_CTYPE=UTF-8
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)
  PATH=/Users/c9s/src/google/depot_tools​:/Users/c9s/src/google/depot_tools/gclient​:/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin​:/Users/c9s/.phpbrew/php/php-5.5.17/bin​:/Users/c9s/.rvm/bin​:/usr/local/texlive/2013/bin/x86_64-darwin​:/Users/c9s/Library/Haskell/bin​:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin​:/Users/c9s/.phpbrew/bin​:/opt/local/lib/postgresql92/bin​:/opt/local/bin​:/opt/local/sbin​:/Users/c9s/bin​:/Users/c9s/Library/Haskell/bin​:/opt/local/bin​:/opt/local/apache2/bin​:/Users/c9s/.rvm/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1@​global/bin​:/Users/c9s/.rvm/rubies/ruby-2.1.1/bin​:/Users/c9s/bin​:/usr/local/bin​:/usr/bin​:/bin​:/usr/sbin​:/sbin​:/usr/local/git/bin​:/usr/local/go/bin​:/usr/local/MacGPG2/bin​:/usr/texbin​:/Users/c9s/.rvm/bin
  PERLBREW_BASHRC_VERSION=0.73
  PERLBREW_HOME=/Users/c9s/.perlbrew
  PERLBREW_MANPATH=/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/man
  PERLBREW_PATH=/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin
  PERLBREW_PERL=perl-5.18.2
  PERLBREW_ROOT=/Users/c9s/perl5/perlbrew
  PERLBREW_VERSION=0.73
  PERLDOC=-otext
  PERL_BADLANG (unset)
  PERL_CPANM_OPT=-n --mirror http​://cpan.nctu.edu.tw/
  PERL_MM_USE_DEFAULT=1
  SHELL=/bin/zsh

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From @tonycoz

On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your message.

I created the .travis.yml file and ran some tests and made some adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment variable,
  so the build was always done with cc (probably gcc), I added -Dcc=... to each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From @tonycoz

0001-perl-123981-Travis-CI-support.patch
From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Thu, 5 Mar 2015 14:16:10 +1100
Subject: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
 .travis.yml |   26 ++++++++++++++++++++++++++
 MANIFEST    |    1 +
 2 files changed, 27 insertions(+)
 create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,26 @@
+language: c
+
+compiler:
+  - gcc
+
+matrix:
+  include:
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duse64bitall'
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+    - compiler: clang
+
+install:
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq build-essential libtool
+  - sudo apt-get build-dep perl perl-base
+
+before_script:
+  - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+script:
+  - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script:
+cache:
+  apt: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5481,6 +5481,7 @@ t/porting/regen.t		Check that regen.pl doesn't need running
 t/porting/ss_dup.t		Check that sv.c:ss_dup handle everything
 t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping aren't accidentally overlooked.
 t/porting/utils.t		Check that utility scripts still compile
+.travis.yml		continuous integration on github (where enabled)
 t/README			Instructions for regression tests
 t/re/charset.t			See if regex modifiers like /d, /u work properly
 t/re/fold_grind.t		See if case folding works properly
-- 
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From @tonycoz

See

https://travis-ci.org/tonycoz/perl

for some sample builds.

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From yoanlin93@gmail.com

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is a
huge community using GitHub as their daily life platform, if we can help
people who want to contribute to perl5 have their travis-ci support, then
they can just fork from GitHub and use their repository
to continuously test the changes and send back to upstream without the pain
of running tests on their machine.

About the io/eintr.t failure, I guess maybe we can just skip this test by
export PERLIO=stdio ? or add another environment variable to skip this test?

Cheers,
Yo-An

On Thu, Mar 5, 2015 at 11​:16 AM, Tony Cook via RT <perlbug-followup@​perl.org

wrote​:

On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your
message.

I created the .travis.yml file and ran some tests and made some
adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment
variable,
so the build was always done with cc (probably gcc), I added -Dcc=... to
each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=123981

From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00​:00​:00 2001
From​: Tony Cook <tony@​develop-help.com>
Date​: Thu, 5 Mar 2015 14​:16​:10 +1100
Subject​: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
.travis.yml | 26 ++++++++++++++++++++++++++
MANIFEST | 1 +
2 files changed, 27 insertions(+)
create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@​@​ -0,0 +1,26 @​@​
+language​: c
+
+compiler​:
+ - gcc
+
+matrix​:
+ include​:
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall'
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+ - compiler​: clang
+
+install​:
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq build-essential libtool
+ - sudo apt-get build-dep perl perl-base
+
+before_script​:
+ - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION
-Dprefix=$HOME/perl-blead -DDEBUGGING
+script​:
+ - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script​:
+cache​:
+ apt​: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@​@​ -5481,6 +5481,7 @​@​ t/porting/regen.t Check that regen.pl
doesn't need running
t/porting/ss_dup.t Check that sv.c​:ss_dup handle everything
t/porting/test_bootstrap.t Test that the instructions for test
bootstrapping aren't accidentally overlooked.
t/porting/utils.t Check that utility scripts still compile
+.travis.yml continuous integration on github (where enabled)
t/README Instructions for regression tests
t/re/charset.t See if regex modifiers like /d, /u work
properly
t/re/fold_grind.t See if case folding works properly
--
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From yoanlin93@gmail.com

Hi Tony,

I added some improvements based on your changes​:
https​://github.com/c9s/perl5/commit/be111c65718f98d72ffaffd8c8d63e1a4e620280.diff <https://github.com/c9s/perl5/commit/be111c65718f98d72ffaffd8c8d63e1a4e620280.diff>

I am now waiting the tests to pass here​:
https​://travis-ci.org/c9s/perl5/builds/53149444 <https://travis-ci.org/c9s/perl5/builds/53149444>

On Mar 5, 2015, at 11​:27, Yo-An Lin <yoanlin93@​gmail.com> wrote​:

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is a huge community using GitHub as their daily life platform, if we can help people who want to contribute to perl5 have their travis-ci support, then they can just fork from GitHub and use their repository to continuously test the changes and send back to upstream without the pain of running tests on their machine.

About the io/eintr.t failure, I guess maybe we can just skip this test by export PERLIO=stdio ? or add another environment variable to skip this test?

Cheers,
Yo-An

On Thu, Mar 5, 2015 at 11​:16 AM, Tony Cook via RT <perlbug-followup@​perl.org <mailto​:perlbug-followup@​perl.org>> wrote​:
On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com <mailto​:yoanlin93@​gmail.com> wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your message.

I created the .travis.yml file and ran some tests and made some adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment variable,
so the build was always done with cc (probably gcc), I added -Dcc=... to each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

---
via perlbug​: queue​: perl5 status​: new
https​://rt.perl.org/Ticket/Display.html?id=123981 <https://rt-archive.perl.org/perl5/Ticket/Display.html?id=123981>

From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00​:00​:00 2001
From​: Tony Cook <tony@​develop-help.com <mailto​:tony@​develop-help.com>>
Date​: Thu, 5 Mar 2015 14​:16​:10 +1100
Subject​: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
.travis.yml | 26 ++++++++++++++++++++++++++
MANIFEST | 1 +
2 files changed, 27 insertions(+)
create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@​@​ -0,0 +1,26 @​@​
+language​: c
+
+compiler​:
+ - gcc
+
+matrix​:
+ include​:
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall'
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+ - compiler​: clang
+
+install​:
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq build-essential libtool
+ - sudo apt-get build-dep perl perl-base
+
+before_script​:
+ - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+script​:
+ - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script​:
+cache​:
+ apt​: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@​@​ -5481,6 +5481,7 @​@​ t/porting/regen.t Check that regen.pl <http​://regen.pl/> doesn't need running
t/porting/ss_dup.t Check that sv.c​:ss_dup handle everything
t/porting/test_bootstrap.t Test that the instructions for test bootstrapping aren't accidentally overlooked.
t/porting/utils.t Check that utility scripts still compile
+.travis.yml continuous integration on github (where enabled)
t/README Instructions for regression tests
t/re/charset.t See if regex modifiers like /d, /u work properly
t/re/fold_grind.t See if case folding works properly
--
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From yoanlin93@gmail.com

yada! the tests pass now! https​://travis-ci.org/c9s/perl5/jobs/53149445 <https://travis-ci.org/c9s/perl5/jobs/53149445>

On Mar 5, 2015, at 14​:14, Lin Yo-an <yoanlin93@​gmail.com> wrote​:

Hi Tony,

I added some improvements based on your changes​:
https​://github.com/c9s/perl5/commit/be111c65718f98d72ffaffd8c8d63e1a4e620280.diff <https://github.com/c9s/perl5/commit/be111c65718f98d72ffaffd8c8d63e1a4e620280.diff>

I am now waiting the tests to pass here​:
https​://travis-ci.org/c9s/perl5/builds/53149444 <https://travis-ci.org/c9s/perl5/builds/53149444>

On Mar 5, 2015, at 11​:27, Yo-An Lin <yoanlin93@​gmail.com <mailto​:yoanlin93@​gmail.com>> wrote​:

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is a huge community using GitHub as their daily life platform, if we can help people who want to contribute to perl5 have their travis-ci support, then they can just fork from GitHub and use their repository to continuously test the changes and send back to upstream without the pain of running tests on their machine.

About the io/eintr.t failure, I guess maybe we can just skip this test by export PERLIO=stdio ? or add another environment variable to skip this test?

Cheers,
Yo-An

On Thu, Mar 5, 2015 at 11​:16 AM, Tony Cook via RT <perlbug-followup@​perl.org <mailto​:perlbug-followup@​perl.org>> wrote​:
On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com <mailto​:yoanlin93@​gmail.com> wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your message.

I created the .travis.yml file and ran some tests and made some adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment variable,
so the build was always done with cc (probably gcc), I added -Dcc=... to each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

---
via perlbug​: queue​: perl5 status​: new
https​://rt.perl.org/Ticket/Display.html?id=123981 <https://rt-archive.perl.org/perl5/Ticket/Display.html?id=123981>

From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00​:00​:00 2001
From​: Tony Cook <tony@​develop-help.com <mailto​:tony@​develop-help.com>>
Date​: Thu, 5 Mar 2015 14​:16​:10 +1100
Subject​: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
.travis.yml | 26 ++++++++++++++++++++++++++
MANIFEST | 1 +
2 files changed, 27 insertions(+)
create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@​@​ -0,0 +1,26 @​@​
+language​: c
+
+compiler​:
+ - gcc
+
+matrix​:
+ include​:
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall'
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+ - compiler​: clang
+
+install​:
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq build-essential libtool
+ - sudo apt-get build-dep perl perl-base
+
+before_script​:
+ - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+script​:
+ - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script​:
+cache​:
+ apt​: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@​@​ -5481,6 +5481,7 @​@​ t/porting/regen.t Check that regen.pl <http​://regen.pl/> doesn't need running
t/porting/ss_dup.t Check that sv.c​:ss_dup handle everything
t/porting/test_bootstrap.t Test that the instructions for test bootstrapping aren't accidentally overlooked.
t/porting/utils.t Check that utility scripts still compile
+.travis.yml continuous integration on github (where enabled)
t/README Instructions for regression tests
t/re/charset.t See if regex modifiers like /d, /u work properly
t/re/fold_grind.t See if case folding works properly
--
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From yoanlin93@gmail.com

This is a bug report for perl from yoanlin93@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.21.10.

From bd6c821336721c806bdac349cfda810734886c19 Mon Sep 17 00​:00​:00 2001
From​: c9s <yoanlin93@​gmail.com>
Date​: Tue, 3 Mar 2015 10​:11​:08 +0800
Subject​: [PATCH] More improvement for testing on Travis-CI
MIME-Version​: 1.0
Content-Type​: multipart/mixed; boundary="------------2.1.2"

This is a multi-part message in MIME format.
--------------2.1.2
Content-Type​: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding​: 8bit

Summary​:

This is for skipping some unnecessary / container incompatible tests for
perl5 forks on GitHub :

- Add PERL_SKIP_AUTHORS_TEST, PERL_SKIP_MANIFEST_TEST environment variable

- Skip eintr.t test when TRAVIS environment variable is defined.
  the test isn't compatible with Travis-CI machine (container based infrastructure)

- Skip authors.t, manifest.t and pending-author.t when testing on Travis-CI
- Update .travis.yml changes from @​tonycoz

- Clean up env vars

- Document travis ci environment variable

- Turn off optimization to get faster build


.travis.yml | 14 +++++++++-----
t/io/eintr.t | 4 ++++
t/porting/authors.t | 2 ++
t/porting/manifest.t | 1 +
t/porting/pending-author.t | 2 ++
5 files changed, 18 insertions(+), 5 deletions(-)

--------------2.1.2
Content-Type​: text/x-patch; name="0001-More-improvement-for-testing-on-Travis-CI.patch"
Content-Transfer-Encoding​: 8bit
Content-Disposition​: attachment; filename="0001-More-improvement-for-testing-on-Travis-CI.patch"

Inline Patch
diff --git a/.travis.yml b/.travis.yml
index f36617b..38dd30b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,9 @@ language: c
 compiler:
   - gcc
 
+# Environment variable definitions can be found here:
+# http://docs.travis-ci.com/user/environment-variables/
+
 matrix:
   include:
     - compiler: gcc
@@ -10,17 +13,18 @@ matrix:
     - compiler: gcc
       env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
     - compiler: clang
-
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
 install:
   - sudo apt-get update -qq
   - sudo apt-get install -qq build-essential libtool
   - sudo apt-get build-dep perl perl-base
-
 before_script:
-  - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+  - ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+  - make -j4
 script:
-  - make test && make install && $HOME/perl-blead/bin/perlivp
+  - PERL_SKIP_AUTHORS_TEST=1 PERL_SKIP_MANIFEST_TEST=1 TEST_JOBS=4 make test
+  - make install
+  - $HOME/perl-blead/bin/perlivp
 after_script:
 cache:
   apt: true
-
diff --git a/t/io/eintr.t b/t/io/eintr.t
index ca15232..b2d800c 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -11,8 +11,12 @@ BEGIN {
     @INC = '../lib';
     require './test.pl';
     skip_all_without_dynamic_extension('Fcntl');
+
+    # The environment variable is defined in http://docs.travis-ci.com/user/ci-environment/
+    skip_all("eintr tests can't be run inside travis-CI VMs") if $ENV{TRAVIS};
 }
 
+
 use warnings;
 use strict;
 use Config;
diff --git a/t/porting/authors.t b/t/porting/authors.t
index bc69e3a..58ec201 100644
--- a/t/porting/authors.t
+++ b/t/porting/authors.t
@@ -10,6 +10,8 @@ use strict;
 require 't/test.pl';
 find_git_or_skip('all');
 
+skip_all("Skip authors test") if $ENV{PERL_SKIP_AUTHORS_TEST};
+
 # This is the subset of "pretty=fuller" that checkAUTHORS.pl actually needs:
 my $quote = $^O =~ /^mswin/i ? q(") : q(');
 system("git log --pretty=format:${quote}Author: %an <%ae>%n${quote} | $^X Porting/checkAUTHORS.pl --tap -");
diff --git a/t/porting/manifest.t b/t/porting/manifest.t
index 01cbd1c..6a9f83e 100644
--- a/t/porting/manifest.t
+++ b/t/porting/manifest.t
@@ -35,6 +35,7 @@ require 't/test.pl';
 skip_all("Cross-compiling, the entire source might not be available")
     if $Config{usecrosscompile};
 
+skip_all("Skip manifest tests") if $ENV{PERL_SKIP_MANIFEST_TEST};
 
 plan('no_plan');
 
diff --git a/t/porting/pending-author.t b/t/porting/pending-author.t
index 4dceaf6..f2135ec 100644
--- a/t/porting/pending-author.t
+++ b/t/porting/pending-author.t
@@ -30,6 +30,8 @@ use File::Spec;
 require 't/test.pl';
 find_git_or_skip('all');
 
+skip_all("Skip author tests") if $ENV{PERL_SKIP_AUTHORS_TEST};
+
 my $devnull = File::Spec->devnull;
 my $changes;
 foreach (`git status --porcelain 2>$devnull`) {

--------------2.1.2--


---
Flags:   category=core   severity=medium

Site configuration information for perl 5.21.10​:

Configured by c9s at Thu Mar 5 12​:30​:20 CST 2015.

Summary of my perl5 (revision 5 version 21 subversion 10) configuration​:
  Derived from​: 38a30b326082ab6f181dbea74f043652cb26ab3b
  Ancestor​: a472246
  Platform​:
  osname=darwin, osvers=14.1.0, archname=darwin-2level
  uname='darwin c9smba.local 14.1.0 darwin kernel version 14.1.0​: mon dec 22 23​:10​:38 pst 2014; root​:xnu-2782.10.72~2release_x86_64 x86_64 '
  config_args='-des -Duse64bitall -Dusedevel -Uoptimize -Dprefix=/Users/c9s/perl-blead'
  hint=previous, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
  optimize=' ',
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
  ccversion='', gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
  ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /opt/local/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/us
r/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib
  libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc
  perllibs=-lpthread -ldl -lm -lutil -lc
  libc=, so=dylib, useshrplib=false, libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'

Locally applied patches​:
  uncommitted-changes
  d5db9e0b3e3170be5413d11cd722abe7332beea9
  f1775e8bde58536b79ddc89f1d5e9c7b4951bae7
  4961719cbd8503061d9d963e40224a7f4a2ff4bd
  0ded6edd9a09ebbe9b4e4bd9a58d58bb207df2f1
  fac3edd31efb964223893a33acf180e66a5adf1c
  c5e2628dfabdb98242f20b842e6b59b9e8ad5fdc
  38a30b326082ab6f181dbea74f043652cb26ab3b


@​INC for perl 5.21.10​:
  lib
  /Users/c9s/perl-blead/lib/site_perl/5.21.10/darwin-2level
  /Users/c9s/perl-blead/lib/site_perl/5.21.10
  /Users/c9s/perl-blead/lib/5.21.10/darwin-2level
  /Users/c9s/perl-blead/lib/5.21.10
  .


Environment for perl 5.21.10​:
  DYLD_LIBRARY_PATH (unset)
  HOME=/Users/c9s
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LC_ALL=en_US.UTF-8
  LC_CTYPE=UTF-8
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)
  PATH=/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin​:/Users/c9s/.phpbrew/php/php-5.5.17/bin​:/Users/c9s/.rvm/bin​:/Users/c9s/src/google/depot_tools​:/usr/local/texlive/2013/bin/x86_64-darwin​:/Users/c9s/Library/Haskell/bin​:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin​:/Users/c9s/.phpbrew/bin​:/opt/local/lib/postgresql92/bin​:/opt/local/bin​:/opt/local/sbin​:/Users/c9s/bin​:/Users/c9s/Library/Haskell/bin​:/opt/local/bin​:/opt/local/apache2/bin​:/Users/c9s/.rvm/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1@​global/bin​:/Users/c9s/.rvm/rubies/ruby-2.1.1/bin​:/Users/c9s/bin​:/usr/local/bin​:/usr/bin​:/bin​:/usr/sbin​:/sbin​:/usr/local/git/bin​:/usr/local/go/bin​:/usr/local/MacGPG2/bin​:/usr/texbin​:/Users/c9s/.rvm/bin
  PERLBREW_BASHRC_VERSION=0.73
  PERLBREW_HOME=/Users/c9s/.perlbrew
  PERLBREW_MANPATH=/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/man
  PERLBREW_PATH=/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin
  PERLBREW_PERL=perl-5.18.2
  PERLBREW_ROOT=/Users/c9s/perl5/perlbrew
  PERLBREW_VERSION=0.73
  PERLDOC=-otext
  PERL_BADLANG (unset)
  PERL_CPANM_OPT=-n --mirror http​://cpan.nctu.edu.tw/
  PERL_MM_USE_DEFAULT=1
  SHELL=/bin/zsh

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From yoanlin93@gmail.com

I rebased the commits again on GitHub

https​://github.com/c9s/perl5/commit/a1cbaee25de2410442532373760ee6273478cbdc <c9s/perl5@a1cbaee

Diff​:
https​://github.com/c9s/perl5/commit/a1cbaee25de2410442532373760ee6273478cbdc.diff <https://github.com/c9s/perl5/commit/a1cbaee25de2410442532373760ee6273478cbdc.diff>

On Mar 5, 2015, at 14​:33, yoanlin93@​gmail.com wrote​:

This is a bug report for perl from yoanlin93@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.21.10.

From bd6c821336721c806bdac349cfda810734886c19 Mon Sep 17 00​:00​:00 2001
From​: c9s <yoanlin93@​gmail.com>
Date​: Tue, 3 Mar 2015 10​:11​:08 +0800
Subject​: [PATCH] More improvement for testing on Travis-CI
MIME-Version​: 1.0
Content-Type​: multipart/mixed; boundary="------------2.1.2"

This is a multi-part message in MIME format.
--------------2.1.2
Content-Type​: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding​: 8bit

Summary​:

This is for skipping some unnecessary / container incompatible tests for
perl5 forks on GitHub :

- Add PERL_SKIP_AUTHORS_TEST, PERL_SKIP_MANIFEST_TEST environment variable

- Skip eintr.t test when TRAVIS environment variable is defined.
the test isn't compatible with Travis-CI machine (container based infrastructure)

- Skip authors.t, manifest.t and pending-author.t when testing on Travis-CI
- Update .travis.yml changes from @​tonycoz

- Clean up env vars

- Document travis ci environment variable

- Turn off optimization to get faster build
---
.travis.yml | 14 +++++++++-----
t/io/eintr.t | 4 ++++
t/porting/authors.t | 2 ++
t/porting/manifest.t | 1 +
t/porting/pending-author.t | 2 ++
5 files changed, 18 insertions(+), 5 deletions(-)

--------------2.1.2
Content-Type​: text/x-patch; name="0001-More-improvement-for-testing-on-Travis-CI.patch"
Content-Transfer-Encoding​: 8bit
Content-Disposition​: attachment; filename="0001-More-improvement-for-testing-on-Travis-CI.patch"

diff --git a/.travis.yml b/.travis.yml
index f36617b..38dd30b 100644
--- a/.travis.yml
+++ b/.travis.yml
@​@​ -3,6 +3,9 @​@​ language​: c
compiler​:
- gcc

+# Environment variable definitions can be found here​:
+# http​://docs.travis-ci.com/user/environment-variables/
+
matrix​:
include​:
- compiler​: gcc
@​@​ -10,17 +13,18 @​@​ matrix​:
- compiler​: gcc
env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
- compiler​: clang
-
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
install​:
- sudo apt-get update -qq
- sudo apt-get install -qq build-essential libtool
- sudo apt-get build-dep perl perl-base
-
before_script​:
- - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+ - ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+ - make -j4
script​:
- - make test && make install && $HOME/perl-blead/bin/perlivp
+ - PERL_SKIP_AUTHORS_TEST=1 PERL_SKIP_MANIFEST_TEST=1 TEST_JOBS=4 make test
+ - make install
+ - $HOME/perl-blead/bin/perlivp
after_script​:
cache​:
apt​: true
-
diff --git a/t/io/eintr.t b/t/io/eintr.t
index ca15232..b2d800c 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@​@​ -11,8 +11,12 @​@​ BEGIN {
@​INC = '../lib';
require './test.pl';
skip_all_without_dynamic_extension('Fcntl');
+
+ # The environment variable is defined in http​://docs.travis-ci.com/user/ci-environment/
+ skip_all("eintr tests can't be run inside travis-CI VMs") if $ENV{TRAVIS};
}

+
use warnings;
use strict;
use Config;
diff --git a/t/porting/authors.t b/t/porting/authors.t
index bc69e3a..58ec201 100644
--- a/t/porting/authors.t
+++ b/t/porting/authors.t
@​@​ -10,6 +10,8 @​@​ use strict;
require 't/test.pl';
find_git_or_skip('all');

+skip_all("Skip authors test") if $ENV{PERL_SKIP_AUTHORS_TEST};
+
# This is the subset of "pretty=fuller" that checkAUTHORS.pl actually needs​:
my $quote = $^O =~ /^mswin/i ? q(") : q(');
system("git log --pretty=format​:${quote}Author​: %an <%ae>%n${quote} | $^X Porting/checkAUTHORS.pl --tap -");
diff --git a/t/porting/manifest.t b/t/porting/manifest.t
index 01cbd1c..6a9f83e 100644
--- a/t/porting/manifest.t
+++ b/t/porting/manifest.t
@​@​ -35,6 +35,7 @​@​ require 't/test.pl';
skip_all("Cross-compiling, the entire source might not be available")
if $Config{usecrosscompile};

+skip_all("Skip manifest tests") if $ENV{PERL_SKIP_MANIFEST_TEST};

plan('no_plan');

diff --git a/t/porting/pending-author.t b/t/porting/pending-author.t
index 4dceaf6..f2135ec 100644
--- a/t/porting/pending-author.t
+++ b/t/porting/pending-author.t
@​@​ -30,6 +30,8 @​@​ use File​::Spec;
require 't/test.pl';
find_git_or_skip('all');

+skip_all("Skip author tests") if $ENV{PERL_SKIP_AUTHORS_TEST};
+
my $devnull = File​::Spec->devnull;
my $changes;
foreach (`git status --porcelain 2>$devnull`) {

--------------2.1.2--

---
Flags​:
category=core
severity=medium
---
Site configuration information for perl 5.21.10​:

Configured by c9s at Thu Mar 5 12​:30​:20 CST 2015.

Summary of my perl5 (revision 5 version 21 subversion 10) configuration​:
Derived from​: 38a30b326082ab6f181dbea74f043652cb26ab3b
Ancestor​: a472246
Platform​:
osname=darwin, osvers=14.1.0, archname=darwin-2level
uname='darwin c9smba.local 14.1.0 darwin kernel version 14.1.0​: mon dec 22 23​:10​:38 pst 2014; root​:xnu-2782.10.72~2release_x86_64 x86_64 '
config_args='-des -Duse64bitall -Dusedevel -Uoptimize -Dprefix=/Users/c9s/perl-blead'
hint=previous, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler​:
cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
optimize=' ',
cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
ccversion='', gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries​:
ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
libpth=/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /opt/local/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/us
r/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib
libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc
perllibs=-lpthread -ldl -lm -lutil -lc
libc=, so=dylib, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking​:
dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'

Locally applied patches​:
uncommitted-changes
d5db9e0b3e3170be5413d11cd722abe7332beea9
f1775e8bde58536b79ddc89f1d5e9c7b4951bae7
4961719cbd8503061d9d963e40224a7f4a2ff4bd
0ded6edd9a09ebbe9b4e4bd9a58d58bb207df2f1
fac3edd31efb964223893a33acf180e66a5adf1c
c5e2628dfabdb98242f20b842e6b59b9e8ad5fdc
38a30b326082ab6f181dbea74f043652cb26ab3b

---
@​INC for perl 5.21.10​:
lib
/Users/c9s/perl-blead/lib/site_perl/5.21.10/darwin-2level
/Users/c9s/perl-blead/lib/site_perl/5.21.10
/Users/c9s/perl-blead/lib/5.21.10/darwin-2level
/Users/c9s/perl-blead/lib/5.21.10
.

---
Environment for perl 5.21.10​:
DYLD_LIBRARY_PATH (unset)
HOME=/Users/c9s
LANG=en_US.UTF-8
LANGUAGE (unset)
LC_ALL=en_US.UTF-8
LC_CTYPE=UTF-8
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin​:/Users/c9s/.phpbrew/php/php-5.5.17/bin​:/Users/c9s/.rvm/bin​:/Users/c9s/src/google/depot_tools​:/usr/local/texlive/2013/bin/x86_64-darwin​:/Users/c9s/Library/Haskell/bin​:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin​:/Users/c9s/.phpbrew/bin​:/opt/local/lib/postgresql92/bin​:/opt/local/bin​:/opt/local/sbin​:/Users/c9s/bin​:/Users/c9s/Library/Haskell/bin​:/opt/local/bin​:/opt/local/apache2/bin​:/Users/c9s/.rvm/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1/bin​:/Users/c9s/.rvm/gems/ruby-2.1.1@​global/bin​:/Users/c9s/.rvm/rubies/ruby-2.1.1/bin​:/Users/c9s/bin​:/usr/local/bin​:/usr/bin​:/bin​:/usr/sbin​:/sbin​:/usr/local/git/bin​:/usr/local/go/bin​:/usr/local/MacGPG2/bin​:/usr/texbin​:/Users/c9s/.rvm/bin
PERLBREW_BASHRC_VERSION=0.73
PERLBREW_HOME=/Users/c9s/.perlbrew
PERLBREW_MANPATH=/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/man
PERLBREW_PATH=/Users/c9s/perl5/perlbrew/bin​:/Users/c9s/perl5/perlbrew/perls/perl-5.18.2/bin
PERLBREW_PERL=perl-5.18.2
PERLBREW_ROOT=/Users/c9s/perl5/perlbrew
PERLBREW_VERSION=0.73
PERLDOC=-otext
PERL_BADLANG (unset)
PERL_CPANM_OPT=-n --mirror http​://cpan.nctu.edu.tw/
PERL_MM_USE_DEFAULT=1
SHELL=/bin/zsh

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From net@profvince.com

Le 05/03/2015 00​:27, Yo-An Lin a écrit :

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is
a huge community using GitHub as their daily life platform, if we can
help people who want to contribute to perl5 have their travis-ci
support, then they can just fork from GitHub and use their repository
to continuously test the changes and send back to upstream without the
pain of running tests on their machine.

Please note that the github mirror is not maintained by the perl5
porters but by Github itself. As it can be (and has been) out of date
with regards to the canonical perl5.git.perl.org repository, it is not
advised to base your contributions on it.

About that change particularly, the porters already maintains two ways
of running the test suite (make test, and make test_harness). I don't
think they need to maintain one more.

Vincent

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 5, 2015

From @rjbs

* Vincent Pit <net@​profvince.com> [2015-03-05T07​:17​:57]

Please note that the github mirror is not maintained by the perl5 porters
but by Github itself. As it can be (and has been) out of date with regards
to the canonical perl5.git.perl.org repository, it is not advised to base
your contributions on it.

Not addressing anything but the above​:

The mirror that GitHub was running has been shut down at our request, some time
ago. There is now github.com/Perl/perl5, which we do run. This was done,
though, so that we could get control over the pull requests that were getting
filed. We tend to direct people to RT and close them. (You can't disable PRs
on GitHub.)

--
rjbs

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 16, 2015

From yoanlin93@gmail.com

Hi Ricardo,

Will we merge this patch?

Cheers,
Yo-An Lin

On Mar 5, 2015, at 23​:37, Ricardo Signes via RT <perlbug-followup@​perl.org> wrote​:

* Vincent Pit <net@​profvince.com> [2015-03-05T07​:17​:57]

Please note that the github mirror is not maintained by the perl5 porters
but by Github itself. As it can be (and has been) out of date with regards
to the canonical perl5.git.perl.org repository, it is not advised to base
your contributions on it.

Not addressing anything but the above​:

The mirror that GitHub was running has been shut down at our request, some time
ago. There is now github.com/Perl/perl5, which we do run. This was done,
though, so that we could get control over the pull requests that were getting
filed. We tend to direct people to RT and close them. (You can't disable PRs
on GitHub.)

--
rjbs

<signature.asc>

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Mar 16, 2015

From @tonycoz

On Wed Mar 04 22​:34​:15 2015, yoanlin93@​gmail.com wrote​:

This is a bug report for perl from yoanlin93@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.21.10.

From bd6c821336721c806bdac349cfda810734886c19 Mon Sep 17 00​:00​:00 2001
From​: c9s <yoanlin93@​gmail.com>
Date​: Tue, 3 Mar 2015 10​:11​:08 +0800
Subject​: [PATCH] More improvement for testing on Travis-CI
MIME-Version​: 1.0
Content-Type​: multipart/mixed; boundary="------------2.1.2"

Please attach patches rather than inlining them.

- Add PERL_SKIP_AUTHORS_TEST, PERL_SKIP_MANIFEST_TEST environment
variable

- Skip eintr.t test when TRAVIS environment variable is defined.
the test isn't compatible with Travis-CI machine (container based
infrastructure)

- Skip authors.t, manifest.t and pending-author.t when testing on
Travis-CI

The manifest test shouldn't be skipped.

Skipping the author tests can be a problem with older gits, since you can end up with nonsense email addresses in the commits.

Also, I think a more general mechanism in t/TEST should be created to skip tests, so we might set​:

  PERL_SKIP_TESTS='porting/authors.t io/eintr.t'

to skip those two tests, rather than modifying each test we want to skip.

before_script​:
- - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC
$CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+ - ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC
$CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+ - make -j4

This should probably be​:

- ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING && make -j4

so that the make is only run if the Configure is successful.

script​:
- - make test && make install && $HOME/perl-blead/bin/perlivp
+ - PERL_SKIP_AUTHORS_TEST=1 PERL_SKIP_MANIFEST_TEST=1 TEST_JOBS=4
make test

make test ignores TEST_JOBS, you need make test_harness for parallel testing.

+ - make install
+ - $HOME/perl-blead/bin/perlivp

Again, these should be joined by &&, since there's no point in running perlivp if make install failed.

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Apr 4, 2015

From yoanlin93@gmail.com

HI Tony, hmmm sadly I found that I can't reply on rt.perl.org, so I just copied the content and reply in a new mail​:

On Wed Mar 04 22​:34​:15 2015, yoanlin93@​gmail.com wrote​:

Please attach patches rather than inlining them.

I was using perlbug to send the patch, doesn't it work for you? if so, I can send another one.

Show quoted text

The manifest test shouldn't be skipped.
OK, I will update according to this.

Skipping the author tests can be a problem with older gits, since you can end up with nonsense email addresses in the commits.

Also, I think a more general mechanism in t/TEST should be created to skip tests, so we might set​:

PERL_SKIP_TESTS='porting/authors.t io/eintr.t'

to skip those two tests, rather than modifying each test we want to skip.

Sounds great, I will do it instead of skipping the test separately.

This should probably be​:

- ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING && make -j4

so that the make is only run if the Configure is successful.

Actually Travis-CI will stop to run the reset commands if any command failed, separating them into a list improves the readibility and does the same thing. :)

Show quoted text

make test ignores TEST_JOBS, you need make test_harness for parallel testing.
OK

On Mar 5, 2015, at 11​:27, Yo-An Lin <yoanlin93@​gmail.com> wrote​:

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is a huge community using GitHub as their daily life platform, if we can help people who want to contribute to perl5 have their travis-ci support, then they can just fork from GitHub and use their repository to continuously test the changes and send back to upstream without the pain of running tests on their machine.

About the io/eintr.t failure, I guess maybe we can just skip this test by export PERLIO=stdio ? or add another environment variable to skip this test?

Cheers,
Yo-An

On Thu, Mar 5, 2015 at 11​:16 AM, Tony Cook via RT <perlbug-followup@​perl.org> wrote​:
On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your message.

I created the .travis.yml file and ran some tests and made some adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment variable,
so the build was always done with cc (probably gcc), I added -Dcc=... to each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=123981

From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00​:00​:00 2001
From​: Tony Cook <tony@​develop-help.com>
Date​: Thu, 5 Mar 2015 14​:16​:10 +1100
Subject​: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
.travis.yml | 26 ++++++++++++++++++++++++++
MANIFEST | 1 +
2 files changed, 27 insertions(+)
create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@​@​ -0,0 +1,26 @​@​
+language​: c
+
+compiler​:
+ - gcc
+
+matrix​:
+ include​:
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall'
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+ - compiler​: clang
+
+install​:
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq build-essential libtool
+ - sudo apt-get build-dep perl perl-base
+
+before_script​:
+ - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+script​:
+ - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script​:
+cache​:
+ apt​: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@​@​ -5481,6 +5481,7 @​@​ t/porting/regen.t Check that regen.pl doesn't need running
t/porting/ss_dup.t Check that sv.c​:ss_dup handle everything
t/porting/test_bootstrap.t Test that the instructions for test bootstrapping aren't accidentally overlooked.
t/porting/utils.t Check that utility scripts still compile
+.travis.yml continuous integration on github (where enabled)
t/README Instructions for regression tests
t/re/charset.t See if regex modifiers like /d, /u work properly
t/re/fold_grind.t See if case folding works properly
--
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Apr 4, 2015

From yoanlin93@gmail.com

I just updated the patch in the attachment. please take a look.

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Apr 4, 2015

From yoanlin93@gmail.com

0001-Improvement-for-testing-on-Travis-CI.patch
From 63874524d98a8b52048671e152ed01d637943d55 Mon Sep 17 00:00:00 2001
From: c9s <yoanlin93@gmail.com>
Date: Sat, 4 Apr 2015 19:36:11 +0800
Subject: [PATCH] Improvement for testing on Travis-CI

Summary:

This is for skipping some unnecessary / container incompatible tests for
perl5 forks on GitHub :

- Added PERL_SKIP_TESTS environment variable to specify tests to skip.
  Usage:

    PERL_SKIP_TESTS="t/porting/authors.t t/porting/manifest.t t/porting/pending-author.t" \
        TEST_JOBS=4 make test_harness

- Skip eintr.t test when TRAVIS environment variable is defined.
    the test isn't compatible with Travis-CI machine (container based infrastructure)

- Run `make test_harness` instead of `make test` since `make test`
  doesn't know `TEST_JOBS`

- Update .travis.yml changes according to the suggestions from TonyC

- Clean up env vars

- Document travis ci environment variable
---
 .travis.yml                | 13 +++++++++----
 t/io/eintr.t               |  4 ++++
 t/porting/authors.t        |  2 ++
 t/porting/manifest.t       |  1 +
 t/porting/pending-author.t |  2 ++
 5 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index f36617b..48d923f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,9 @@ language: c
 compiler:
   - gcc
 
+# Environment variable definitions can be found here:
+# http://docs.travis-ci.com/user/environment-variables/
+
 matrix:
   include:
     - compiler: gcc
@@ -10,17 +13,19 @@ matrix:
     - compiler: gcc
       env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
     - compiler: clang
-
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+    - compiler: clang
 install:
   - sudo apt-get update -qq
   - sudo apt-get install -qq build-essential libtool
   - sudo apt-get build-dep perl perl-base
-
 before_script:
   - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
 script:
-  - make test && make install && $HOME/perl-blead/bin/perlivp
+  - make -j4
+  - PERL_SKIP_TESTS="t/porting/authors.t t/porting/manifest.t t/porting/pending-author.t" TEST_JOBS=4 make test_harness
+  - make install
+  - $HOME/perl-blead/bin/perlivp
 after_script:
 cache:
   apt: true
-
diff --git a/t/io/eintr.t b/t/io/eintr.t
index ca15232..b2d800c 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -11,8 +11,12 @@ BEGIN {
     @INC = '../lib';
     require './test.pl';
     skip_all_without_dynamic_extension('Fcntl');
+
+    # The environment variable is defined in http://docs.travis-ci.com/user/ci-environment/
+    skip_all("eintr tests can't be run inside travis-CI VMs") if $ENV{TRAVIS};
 }
 
+
 use warnings;
 use strict;
 use Config;
diff --git a/t/porting/authors.t b/t/porting/authors.t
index bc69e3a..2661b90 100644
--- a/t/porting/authors.t
+++ b/t/porting/authors.t
@@ -10,6 +10,8 @@ use strict;
 require 't/test.pl';
 find_git_or_skip('all');
 
+skip_all("Skip authors test") if grep /$0/i, split(/\s+/, $ENV{PERL_SKIP_TESTS});
+
 # This is the subset of "pretty=fuller" that checkAUTHORS.pl actually needs:
 my $quote = $^O =~ /^mswin/i ? q(") : q(');
 system("git log --pretty=format:${quote}Author: %an <%ae>%n${quote} | $^X Porting/checkAUTHORS.pl --tap -");
diff --git a/t/porting/manifest.t b/t/porting/manifest.t
index 01cbd1c..bb627d2 100644
--- a/t/porting/manifest.t
+++ b/t/porting/manifest.t
@@ -35,6 +35,7 @@ require 't/test.pl';
 skip_all("Cross-compiling, the entire source might not be available")
     if $Config{usecrosscompile};
 
+skip_all("Skip manifest tests") if grep /$0/i, split(/\s+/, $ENV{PERL_SKIP_TESTS});
 
 plan('no_plan');
 
diff --git a/t/porting/pending-author.t b/t/porting/pending-author.t
index 4dceaf6..c5774f5 100644
--- a/t/porting/pending-author.t
+++ b/t/porting/pending-author.t
@@ -30,6 +30,8 @@ use File::Spec;
 require 't/test.pl';
 find_git_or_skip('all');
 
+skip_all("Skip author tests") if grep /$0/i, split(/\s+/, $ENV{PERL_SKIP_TESTS});
+
 my $devnull = File::Spec->devnull;
 my $changes;
 foreach (`git status --porcelain 2>$devnull`) {
-- 
2.1.2

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Apr 4, 2015

From yoanlin93@gmail.com

On Apr 4, 2015, at 19​:30, Lin Yo-an <yoanlin93@​gmail.com> wrote​:

HI Tony, hmmm sadly I found that I can't reply on rt.perl.org, so I just copied the content and reply in a new mail​:

On Wed Mar 04 22​:34​:15 2015, yoanlin93@​gmail.com wrote​:

Please attach patches rather than inlining them.

I was using perlbug to send the patch, doesn't it work for you? if so, I can send another one.

Show quoted text

The manifest test shouldn't be skipped.
OK, I will update according to this.

Skipping the author tests can be a problem with older gits, since you can end up with nonsense email addresses in the commits.

Also, I think a more general mechanism in t/TEST should be created to skip tests, so we might set​:

PERL_SKIP_TESTS='porting/authors.t io/eintr.t'

to skip those two tests, rather than modifying each test we want to skip.

Sounds great, I will do it instead of skipping the test separately.

This should probably be​:

- ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING && make -j4

so that the make is only run if the Configure is successful.

Actually Travis-CI will stop to run the reset commands if any command failed, separating them into a list improves the readibility and does the same thing. :)

Show quoted text

make test ignores TEST_JOBS, you need make test_harness for parallel testing.
OK

On Mar 5, 2015, at 11​:27, Yo-An Lin <yoanlin93@​gmail.com> wrote​:

Hi Tony,

Thanks! since we have the perl5 repository mirror on GitHub, there is a huge community using GitHub as their daily life platform, if we can help people who want to contribute to perl5 have their travis-ci support, then they can just fork from GitHub and use their repository to continuously test the changes and send back to upstream without the pain of running tests on their machine.

About the io/eintr.t failure, I guess maybe we can just skip this test by export PERLIO=stdio ? or add another environment variable to skip this test?

Cheers,
Yo-An

On Thu, Mar 5, 2015 at 11​:16 AM, Tony Cook via RT <perlbug-followup@​perl.org> wrote​:
On Wed Mar 04 00​:21​:41 2015, yoanlin93@​gmail.com wrote​:

This patch adds a simple .travis.yml config file

Summary​:

People want to contribute to perl don't have a machine for contiuous
integration, This patch adds a simple .travis.yml, this way people can
fork
perl on GitHub and see the building status directly on travis-ci
service
without waiting the time-consuming test process on local machine.

git complained that the patch was corrupted when I extracted it from your message.

I created the .travis.yml file and ran some tests and made some adjustments to produce the attached.

The changes​:

- perl's build process doesn't pay any attention to the CC environment variable,
so the build was always done with cc (probably gcc), I added -Dcc=... to each build

- run the test suite and install and test that with perlivp

- trim the installed dependencies, perl doesn't use the GNU auto* tools.

Unfortunatly io/eintr.t fails on the travis VMs.

The real question is whether we want this in the tree...

Tony

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=123981

From f8e9d3554ecf0d8542651c3e91a6102adf783990 Mon Sep 17 00​:00​:00 2001
From​: Tony Cook <tony@​develop-help.com>
Date​: Thu, 5 Mar 2015 14​:16​:10 +1100
Subject​: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

I didn't use test_harness and TEST_JOBS since the four jobs specified
are already run in parallel on the virtual host.

io/eintr.t fails on the travis VMs.
---
.travis.yml | 26 ++++++++++++++++++++++++++
MANIFEST | 1 +
2 files changed, 27 insertions(+)
create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f36617b
--- /dev/null
+++ b/.travis.yml
@​@​ -0,0 +1,26 @​@​
+language​: c
+
+compiler​:
+ - gcc
+
+matrix​:
+ include​:
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall'
+ - compiler​: gcc
+ env​: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+ - compiler​: clang
+
+install​:
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq build-essential libtool
+ - sudo apt-get build-dep perl perl-base
+
+before_script​:
+ - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING
+script​:
+ - make test && make install && $HOME/perl-blead/bin/perlivp
+after_script​:
+cache​:
+ apt​: true
+
diff --git a/MANIFEST b/MANIFEST
index aad1be4..5e0d672 100644
--- a/MANIFEST
+++ b/MANIFEST
@​@​ -5481,6 +5481,7 @​@​ t/porting/regen.t Check that regen.pl doesn't need running
t/porting/ss_dup.t Check that sv.c​:ss_dup handle everything
t/porting/test_bootstrap.t Test that the instructions for test bootstrapping aren't accidentally overlooked.
t/porting/utils.t Check that utility scripts still compile
+.travis.yml continuous integration on github (where enabled)
t/README Instructions for regression tests
t/re/charset.t See if regex modifiers like /d, /u work properly
t/re/fold_grind.t See if case folding works properly
--
1.7.10.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 12, 2015

From @jkeenan

On Sat Apr 04 04​:43​:59 2015, yoanlin93@​gmail.com wrote​:

I just updated the patch in the attachment. please take a look.

TonyC​: Could we get an update on this ticket (which is in the "consider for 5.23.1" meta ticket (https://rt-archive.perl.org/perl5/Ticket/Display.html?id=124092)?

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 12, 2015

From @rjbs

I am probably on board with this patch. I don't think it will hurt, and might help.

Why does it skip some porting tests? I thought they'd work with or without a git checkout present, and if possible I'd like to see people being told they didn't update AUTHORS, for example.

--
rjbs

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Sep 8, 2015

From @tonycoz

On Sat Apr 04 04​:31​:39 2015, yoanlin93@​gmail.com wrote​:

- ./Configure -des -Dusedevel -Uversiononly -Uoptimize -Dcc=$CC
$CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING && make -j4

so that the make is only run if the Configure is successful.

Actually Travis-CI will stop to run the reset commands if any command
failed, separating them into a list improves the readibility and does
the same thing. :)

Actually it continues to run, see

https://travis-ci.org/tonycoz/perl/jobs/79207906

where I deliberately failed, and the process continued to install and run perlivp.

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Sep 8, 2015

From @tonycoz

On Fri Jun 12 15​:12​:28 2015, rjbs wrote​:

I am probably on board with this patch. I don't think it will hurt,
and might help.

Why does it skip some porting tests? I thought they'd work with or
without a git checkout present, and if possible I'd like to see people
being told they didn't update AUTHORS, for example.

The attached updates the whole patch​:

- don't skip porting tests
  I just committed a separate patch to write the unknown author to STDERR
  so the user doesn't need to run authors.t separately to get the unknown author

- make the stages of the build require the previous stages success
  travis doesn't abort the build if one step fails

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Sep 8, 2015

From @tonycoz

0001-perl-123981-Travis-CI-support.patch
From 9bfad6c14935dd0be3c6d03cfe8ad60209b49b58 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Tue, 8 Sep 2015 15:40:54 +1000
Subject: [perl #123981] Travis-CI support

Build and test perl under four different configurations.

This isn't compatible with "container based infrastructure"

Skip io/eintr.t since it fails on the travis VMs.

make the build process depend on the previous steps, since travis does
NOT stop the build process if a step fails

This is largely based on work done by "c9s <yoanlin93@gmail.com>"
---
 .travis.yml  | 26 ++++++++++++++++++++++++++
 MANIFEST     |  1 +
 t/io/eintr.t |  3 +++
 3 files changed, 30 insertions(+)
 create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..842931e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,26 @@
+language: c
+
+compiler:
+  - gcc
+
+matrix:
+  include:
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duselongdouble'
+    - compiler: gcc
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+    - compiler: clang
+      env: CONFIGURE_OPTION='-Duselongdouble'
+    - compiler: clang
+      env: CONFIGURE_OPTION='-Duse64bitall -Dusethreads'
+
+install:
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq build-essential libtool
+
+script:
+  - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_OPTION -Dprefix=$HOME/perl-blead -DDEBUGGING && TEST_JOBS=2 make -j2 test_harness && make install && $HOME/perl-blead/bin/perlivp
+after_script:
+cache:
+  apt: true
+
diff --git a/MANIFEST b/MANIFEST
index 870d729..7ac09e9 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5420,6 +5420,7 @@ t/porting/regen.t		Check that regen.pl doesn't need running
 t/porting/ss_dup.t		Check that sv.c:ss_dup handle everything
 t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping aren't accidentally overlooked.
 t/porting/utils.t		Check that utility scripts still compile
+.travis.yml		continuous integration on github (where enabled)
 t/README			Instructions for regression tests
 t/re/charset.t			See if regex modifiers like /d, /u work properly
 t/re/fold_grind.t		See if case folding works properly
diff --git a/t/io/eintr.t b/t/io/eintr.t
index 1a81cdf..19527c2 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -11,6 +11,9 @@ BEGIN {
     @INC = '../lib';
     require './test.pl';
     skip_all_without_dynamic_extension('Fcntl');
+
+    # The environment variable is defined in http://docs.travis-ci.com/user/ci-environment/
+    skip_all("eintr tests can't be run inside travis-CI VMs") if $ENV{TRAVIS};
 }
 
 use warnings;
-- 
2.1.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 22, 2015

From dennis@kaarsemaker.net

On ma, 2015-09-07 at 22​:50 -0700, Tony Cook via RT wrote​:

On Fri Jun 12 15​:12​:28 2015, rjbs wrote​:

I am probably on board with this patch. I don't think it will
hurt,
and might help.

Why does it skip some porting tests? I thought they'd work with or
without a git checkout present, and if possible I'd like to see
people
being told they didn't update AUTHORS, for example.

The attached updates the whole patch​:

- don't skip porting tests
I just committed a separate patch to write the unknown author to
STDERR
so the user doesn't need to run authors.t separately to get the
unknown author

- make the stages of the build require the previous stages success
travis doesn't abort the build if one step fails

Having played a bit with travis, I think the patch could use some
improvement. Attached is a patch which imho is a bit better​:

- Uses the container based builds and better dependencies
- Doesn't skip eintr tests as it's not needed
- Let travis build the build matrix based on os/compiler/env (consensus
  needed on useful ./Configure arguments
- Set up notifications (definitely consensus needed before applying!)
- Build on osx and linux
- Only test blead/maint/smoke-me

--
Dennis Kaarsemaker
www.kaarsemaker.net

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 22, 2015

From dennis@kaarsemaker.net

0001-Travis-integration.patch
From 8ee8fa0918fa0bc1ec555ee7fd0f797167c05d23 Mon Sep 17 00:00:00 2001
From: Dennis Kaarsemaker <dennis@kaarsemaker.net>
Date: Thu, 22 Oct 2015 18:30:11 +0200
Subject: [PATCH] Travis integration

---
 .travis.yml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 MANIFEST    |  1 +
 2 files changed, 56 insertions(+)
 create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..721fa2c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,55 @@
+language: c
+
+# Here we build our build matrix
+os:
+    - linux
+    - osx
+
+compiler:
+    - clang
+    - gcc
+
+env:
+    - CONFIGURE_ARGS='-Uusethreads'
+    - CONFIGURE_ARGS='-Dusethreads'
+    - CONFIGURE_ARGS='-Duselongdouble'
+    - CONFIGURE_ARGS='-Duse64bitall'
+    - CONFIGURE_ARGS='-Dusethreads -Duselongdouble'
+    - CONFIGURE_ARGS='-Dusethreads -Duse64bitall'
+    - CONFIGURE_ARGS='-Dusethreads -Duse64bitall -Duselongdouble'
+
+script:
+    # CC is exported by travis based on compuler section above
+    # CONFIGURE_ARGS is set in the env section above
+    - ./Configure -de -Dusedevel -Dcc=$CC -Dld=$CC $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead && make -j4 && TEST_JOBS=4 make test_harness && make install && $HOME/perl-blead/bin/perlivp
+
+# No testing of random branches, just blead, maint and smoke-me/*
+branches:
+    only:
+        - blead
+        - /^maint-5.*$/
+        - /^smoke-me.*$/
+
+# Minimal notifications (well, almost: email: false and leaving out the irc
+# section would disable notifications completely)
+notifications:
+    email:
+        recipients:
+            - perl5-porters@perl.org
+        on_failure: change
+    irc:
+        channels:
+            - "irc.perl.org#p5p"
+        on_failure: change
+
+# The linux builds run on Ubuntu 12.04 docker instances and may need additional
+# packages installed.
+addons:
+    apt:
+        packages:
+            - file
+            - cpio
+            - libdb-dev
+            - libgdbm-dev
+            - zlib1g-dev
+            - libbz2-dev
diff --git a/MANIFEST b/MANIFEST
index 3c788d9..ff34eb5 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5438,6 +5438,7 @@ t/porting/regen.t		Check that regen.pl doesn't need running
 t/porting/ss_dup.t		Check that sv.c:ss_dup handle everything
 t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping aren't accidentally overlooked.
 t/porting/utils.t		Check that utility scripts still compile
+.travis.yml			Travis CI integration
 t/README			Instructions for regression tests
 t/re/charset.t			See if regex modifiers like /d, /u work properly
 t/re/fold_grind.t		See if case folding works properly
-- 
2.6.2-327-gb5fc588

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Dec 6, 2015

From @tonycoz

On Thu Oct 22 11​:30​:43 2015, dennis@​kaarsemaker.net wrote​:

Having played a bit with travis, I think the patch could use some
improvement. Attached is a patch which imho is a bit better​:

- Uses the container based builds and better dependencies
- Doesn't skip eintr tests as it's not needed
- Let travis build the build matrix based on os/compiler/env (consensus
needed on useful ./Configure arguments
- Set up notifications (definitely consensus needed before applying!)
- Build on osx and linux
- Only test blead/maint/smoke-me

+# No testing of random branches, just blead, maint and smoke-me/*
+branches​:
+ only​:
+ - blead
+ - /^maint-5.*$/
+ - /^smoke-me.*$/

This won't necessarily be used by perl5-porters members, it might be used by someone outside who's preparing a patch to be submitted.

I don't think we should expect such a user to name their branch to match the above to get travis coverage.

+# Minimal notifications (well, almost​: email​: false and leaving out the irc
+# section would disable notifications completely)
+notifications​:
+ email​:
+ recipients​:
+ - perl5-porters@​perl.org
+ on_failure​: change
+ irc​:
+ channels​:
+ - "irc.perl.org#p5p"
+ on_failure​: change

Similar to the above, the user might not know about the IRC channel and might not be a member of the list.

+ # CC is exported by travis based on compuler section above

"compiler".

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Aug 6, 2016

From @khwilliamson

On Sun Dec 06 15​:54​:29 2015, tonyc wrote​:

On Thu Oct 22 11​:30​:43 2015, dennis@​kaarsemaker.net wrote​:

Having played a bit with travis, I think the patch could use some
improvement. Attached is a patch which imho is a bit better​:

- Uses the container based builds and better dependencies
- Doesn't skip eintr tests as it's not needed
- Let travis build the build matrix based on os/compiler/env
(consensus
needed on useful ./Configure arguments
- Set up notifications (definitely consensus needed before applying!)
- Build on osx and linux
- Only test blead/maint/smoke-me

+# No testing of random branches, just blead, maint and smoke-me/*
+branches​:
+ only​:
+ - blead
+ - /^maint-5.*$/
+ - /^smoke-me.*$/

This won't necessarily be used by perl5-porters members, it might be
used by someone outside who's preparing a patch to be submitted.

I don't think we should expect such a user to name their branch to
match the above to get travis coverage.

+# Minimal notifications (well, almost​: email​: false and leaving out
the irc
+# section would disable notifications completely)
+notifications​:
+ email​:
+ recipients​:
+ - perl5-porters@​perl.org
+ on_failure​: change
+ irc​:
+ channels​:
+ - "irc.perl.org#p5p"
+ on_failure​: change

Similar to the above, the user might not know about the IRC channel
and might not be a member of the list.

+ # CC is exported by travis based on compuler section above

"compiler".

Tony

Any progress on this?
--
Karl Williamson

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Aug 8, 2016

From @tonycoz

On Sat Aug 06 16​:47​:46 2016, khw wrote​:

Any progress on this?

Here's a new patch.

One issue the restrictions in Seveas's patch brings up - if we add
this to blead, every new topic branch will have .travis.yml, every clone
of the perl repository will end up with copies of each of those
topic (and smoke-me branches).

Travis doesn't seem to be smart enough to avoid re-testing duplicate
copies of the same branch in the same repository (eg, https​://travis-ci.org/tonycoz/perl/builds/150542678 vs https://travis-ci.org/tonycoz/perl/builds/150533957)

So if we add this, and someone enables travis on their repository and does a mirror, it's going to start a ridiculous number of probably
duplicate travis jobs.

The restrictions from Seveas' patch limits that to blead/maint/smoke-me, but that last can be a fairly large list.

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Aug 8, 2016

From @tonycoz

0001-perl-123981-Travis-CI-support.patch
From 57e4d871864da993f757f3d6079c49793602d534 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Mon, 8 Aug 2016 15:11:55 +1000
Subject: [perl #123981] Travis-CI support

This is largely based on work done by "c9s <yoanlin93@gmail.com>" and
Dennis Kaarsemaker (Seveas)
---
 .travis.yml | 31 +++++++++++++++++++++++++++++++
 MANIFEST    |  1 +
 2 files changed, 32 insertions(+)
 create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..d1fdd23
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,31 @@
+language: c
+
+os:
+  - linux
+  - osx
+
+compiler:
+  - gcc
+  - clang
+
+env:
+    - CONFIGURE_ARGS='-Uusethreads'
+    - CONFIGURE_ARGS='-Dusethreads'
+    - CONFIGURE_ARGS='-Duselongdouble'
+    - CONFIGURE_ARGS='-Duse64bitall'
+    - CONFIGURE_ARGS='-Dusethreads -Duselongdouble'
+    - CONFIGURE_ARGS='-Dusethreads -Duse64bitall'
+    - CONFIGURE_ARGS='-Dusethreads -Duse64bitall -Duselongdouble'
+
+script:
+  - ./Configure -des -Dusedevel -Uversiononly -Dcc=$CC $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead -DDEBUGGING && TEST_JOBS=4 make -j4 test_harness && make install && $HOME/perl-blead/bin/perlivp
+
+addons:
+    apt:
+        packages:
+            - file
+            - cpio
+            - libdb-dev
+            - libgdbm-dev
+            - zlib1g-dev
+            - libbz2-dev
diff --git a/MANIFEST b/MANIFEST
index 4cec28b..ead1f9a 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,5 @@
 .dir-locals.el			Emacs control file
+.travis.yml		continuous integration on github (where enabled)
 amigaos4/amigaio.c	AmigaOS4 port
 amigaos4/amigaio.h	AmigaOS4 port
 amigaos4/amigaos.c	AmigaOS4 port
-- 
2.1.4

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 14, 2017

From @tonycoz

On Sun, 07 Aug 2016 23​:41​:27 -0700, tonyc wrote​:

On Sat Aug 06 16​:47​:46 2016, khw wrote​:

Any progress on this?

Here's a new patch.

One issue the restrictions in Seveas's patch brings up - if we add
this to blead, every new topic branch will have .travis.yml, every
clone
of the perl repository will end up with copies of each of those
topic (and smoke-me branches).

Travis doesn't seem to be smart enough to avoid re-testing duplicate
copies of the same branch in the same repository (eg, https://travis-
ci.org/tonycoz/perl/builds/150542678 vs https://travis-
ci.org/tonycoz/perl/builds/150533957)

So if we add this, and someone enables travis on their repository and
does a mirror, it's going to start a ridiculous number of probably
duplicate travis jobs.

This doesn't appear to be a problem unless maybe if you try to git push --mirror. Forking a repo using the github UI won't run travis (since you can't have travis enabled yet.)

I've pushed my patch as 3135e2b.

Tony

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 14, 2017

@tonycoz - Status changed from 'open' to 'pending release'

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 23, 2018

From @khwilliamson

Thank you for filing this report. You have helped make Perl better.

With the release yesterday of Perl 5.28.0, this and 185 other issues have been
resolved.

Perl 5.28.0 may be downloaded via​:
https://metacpan.org/release/XSAWYERX/perl-5.28.0

If you find that the problem persists, feel free to reopen this ticket.

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 23, 2018

@khwilliamson - Status changed from 'pending release' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.