language: perl
perl:
+ - "5.8"
- "5.20-extras"
env:
matrix:
fast_finish: true
include:
- # this particular perl is quite widespread
- - perl: 5.8.8_thr_mb
+ # CLEANTEST of minimum supported with non-tracing poisoning
+ - perl: 5.8.3_nt_mb
env:
- CLEANTEST=true
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=5.8.8
+ - DBIC_TRACE_PROFILE=console_monochrome
+ - BREWVER=5.8.3
+ - BREWOPTS="-Dusemorebits"
- # so is this one (test a sane CPAN.pm)
- - perl: 5.12.4_thr_mb
+ # Full Test of minimum supported without threads with non-tracing poisoning
+ - perl: 5.8.3_nt
env:
- - CLEANTEST=true
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=5.12.4
+ - CLEANTEST=false
+ - POISON_ENV=true
+ - BREWVER=5.8.3
- # this is the perl suse ships
- - perl: 5.10.0_thr_dbg
+ # Full Test of minimum supported with threads with non-tracing poisoning
+ - perl: 5.8.5_thr
+ env:
+ - CLEANTEST=false
+ - POISON_ENV=true
+ - DBIC_TRACE_PROFILE=console
+ - BREWVER=5.8.5
+ - BREWOPTS="-Duseithreads"
+
+ # CLEANTEST of solaris-like perl with non-tracing poisoning
+ - perl: 5.8.4_nt
env:
- CLEANTEST=true
- - BREWOPTS="-DDEBUGGING -Duseithreads"
- - BREWVER=5.10.0
+ - POISON_ENV=true
+ - DBIC_TRACE_PROFILE=console
+ - BREWVER=5.8.4
- # CLEANTEST of minimum supported
- - perl: 5.8.3_nt_mb
+ # CLEANTEST: this particular perl is quite widespread
+ - perl: 5.8.8_thr_mb
env:
- CLEANTEST=true
- - BREWOPTS="-Dusemorebits"
- - BREWVER=5.8.3
+ - BREWVER=5.8.8
+ - BREWOPTS="-Duseithreads -Dusemorebits"
- # Full Test of minimum supported with threads
- - perl: 5.8.5_thr
+ # CLEANTEST: this is the perl suse ships
+ - perl: 5.10.0_thr_dbg
env:
- - CLEANTEST=false
- - BREWOPTS="-Duseithreads"
- - BREWVER=5.8.5
- - DBIC_TRACE_PROFILE=console
+ - CLEANTEST=true
+ - BREWVER=5.10.0
+ - BREWOPTS="-DDEBUGGING -Duseithreads"
- # Full Test of minimum supported without threads
- - perl: 5.8.3_nt
+ # CLEANTEST: this one is in a number of debian-based LTS (test a sane CPAN.pm)
+ - perl: 5.14.2_thr_mb
env:
- - CLEANTEST=false
- - BREWOPTS=""
- - BREWVER=5.8.3
- - DBIC_TRACE_PROFILE=console_monochrome
+ - CLEANTEST=true
+ - BREWVER=5.14.2
+ - BREWOPTS="-Duseithreads -Dusemorebits"
###
# some permutations of tracing and envvar poisoning
- - perl: 5.16.3_thr_mb
+ - perl: 5.12.3_thr
env:
- - CLEANTEST=false
- - POISON_ENV=true
+ - CLEANTEST=true
- DBIC_TRACE=1
- - DBIC_MULTICREATE_DEBUG=0
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=5.16.3
-
- - perl: 5.20-extras
- env:
- - CLEANTEST=false
+ - DBIC_MULTICREATE_DEBUG=1
+ - DBIC_STORAGE_RETRY_DEBUG=1
- POISON_ENV=true
- DBIC_TRACE_PROFILE=console
+ - BREWVER=5.12.3
+ - BREWOPTS="-Duseithreads"
- - perl: 5.8
+ - perl: 5.16.3_thr_mb
env:
- - CLEANTEST=true
- - POISON_ENV=true
+ - CLEANTEST=false
- DBIC_TRACE=1
- - DBIC_TRACE_PROFILE=console
+ - POISON_ENV=true
+ - BREWVER=5.16.3
+ - BREWOPTS="-Duseithreads -Dusemorebits"
- perl: 5.18-extras
env:
- CLEANTEST=false
- - POISON_ENV=true
- DBIC_TRACE=1
+ - POISON_ENV=true
- DBIC_TRACE_PROFILE=console_monochrome
- - DBIC_MULTICREATE_DEBUG=0
###
# Start of the allow_failures block
- # old threaded with blead CPAN
- - perl: devcpan_5.8.7_thr
+ # 5.8.4 threaded with blead CPAN with non-tracing poisoning
+ - perl: devcpan_5.8.4_thr
env:
- CLEANTEST=true
- - BREWOPTS="-Duseithreads"
- - BREWVER=5.8.7
- DEVREL_DEPS=true
+ - POISON_ENV=true
+ - BREWVER=5.8.4
+ - BREWOPTS="-Duseithreads"
# 5.10.0 threaded with blead CPAN
- perl: devcpan_5.10.0_thr_mb
env:
- CLEANTEST=true
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=5.10.0
- DEVREL_DEPS=true
+ - BREWVER=5.10.0
+ - BREWOPTS="-Duseithreads -Dusemorebits"
- # 5.12.2 with blead CPAN
- - perl: devcpan_5.12.2_thr
+ # 5.12.1 with blead CPAN
+ - perl: devcpan_5.12.1_thr
env:
- CLEANTEST=true
- - BREWOPTS="-Duseithreads"
- - BREWVER=5.12.2
- - DEVREL_DEPS=true
-
- # recentish threaded stable with blead CPAN
- - perl: devcpan_5.18.2_thr_mb
- env:
- - CLEANTEST=false
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=5.18.2
- DEVREL_DEPS=true
+ - BREWVER=5.12.1
+ - BREWOPTS="-Duseithreads"
- # bleadperl with stock CPAN, full depchain test
+ # bleadperl with stock CPAN, full depchain test with non-tracing poisoning
- perl: bleadperl
env:
- CLEANTEST=true
+ - POISON_ENV=true
- BREWVER=blead
- # bleadperl with blead CPAN
+ # bleadperl with blead CPAN with non-tracing poisoning
- perl: devcpan_bleadperl_thr_mb
env:
- CLEANTEST=false
- - BREWOPTS="-Duseithreads -Dusemorebits"
- - BREWVER=blead
- DEVREL_DEPS=true
+ - POISON_ENV=true
+ - BREWVER=blead
+ - BREWOPTS="-Duseithreads -Dusemorebits"
# which ones of the above can fail
allow_failures:
# these run with various dev snapshots - allowed to fail
- - perl: devcpan_5.8.7_thr
+ - perl: devcpan_5.8.4_thr
- perl: devcpan_5.10.0_thr_mb
- - perl: devcpan_5.12.2_thr
- - perl: devcpan_5.18.2_thr_mb
+ - perl: devcpan_5.12.1_thr
- perl: bleadperl
- perl: devcpan_bleadperl_thr_mb
# the presently installed libs
# Idea stolen from
# https://github.com/kentfredric/Dist-Zilla-Plugin-Prereqs-MatchInstalled-All/blob/master/maint-travis-ci/sterilize_env.pl
-elif [[ "$CLEANTEST" == "true" ]] && [[ "$POISON_ENV" != "true" ]] ; then
+# Only works on 5.12+ (where sitlib was finally properly fixed)
+elif [[ "$CLEANTEST" == "true" ]] && [[ "$POISON_ENV" != "true" ]] && perl -M5.012 -e 1 &>/dev/null ; then
echo_err "$(tstamp) Cleaning precompiled Travis-Perl"
- perl -MConfig -MFile::Find -e '
+ perl -M5.012 -MConfig -MFile::Find -e '
my $sitedirs = {
map { $Config{$_} => 1 }
grep { $_ =~ /site(lib|arch)exp$/ }
# set them to true and see if anything explodes
for var in \
DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER \
- $(grep -P '\$ENV\{' -r lib/ --exclude-dir Optional | grep -oP '\bDBIC\w+' | sort -u | grep -v DBIC_TRACE)
+ $( grep -P '\$ENV\{' -r lib/ --exclude-dir Optional | grep -oP '\bDBIC\w+' | sort -u | grep -vP '^(DBIC_TRACE(_PROFILE)?|DBIC_.+_DEBUG)$' )
do
if [[ -z "${!var}" ]] ; then
export $var=1
export DBI_DRIVER="ADO"
# some people do in fact set this - boggle!!!
- export PERL_STRICTURES_EXTRA=1
+ # it of course won't work before 5.8.4
+ if perl -M5.008004 -e 1 &>/dev/null ; then
+ export PERL_STRICTURES_EXTRA=1
+ fi
# emulate a local::lib-like env
# trick cpanm into executing true as shell - we just need the find+unpack
# FIXME - this is a kludge in place of proper MDV testing. For the time
# being simply use the minimum versions of our DBI/DBDstack, to avoid
# fuckups like 0.08260 (went unnoticed for 5 months)
-if [[ "$POISON_ENV" = "true" ]] ; then
+if [[ "$DEVREL_DEPS" != "true" ]] && [[ "$POISON_ENV" = "true" ]] ; then
# use url-spec for DBI due to https://github.com/miyagawa/cpanminus/issues/328
- if perl -M5.013003 -e1 &>/dev/null ; then
+ if [[ "$CLEANTEST" != "true" ]] || perl -M5.013003 -e1 &>/dev/null ; then
+ # the fulltest may re-upgrade DBI, be conservative only on cleantests
# earlier DBI will not compile without PERL_POLLUTE which was gone in 5.14
parallel_installdeps_notest T/TI/TIMB/DBI-1.614.tar.gz
else
fi
# Test both minimum DBD::SQLite and minimum BigInt SQLite
+ # reverse the logic from above for this (low on full, higher on clean)
if [[ "$CLEANTEST" = "true" ]]; then
parallel_installdeps_notest DBD::SQLite@1.37
else
parallel_installdeps_notest YAML LWP Class::Trigger JSON::XS DateTime::Format::Builder Class::Accessor::Grouped Package::Variant
parallel_installdeps_notest SQL::Abstract Moose Module::Install JSON SQL::Translator File::Which
+ # Neither DBD::Interbase nor DBD::Firebird compile on DBI < 1.611, so when
+ # we POISON_ENV - nothing will work on 1.57
+ if ( perl -MDBI -e 1 && ! perl -MDBI\ 1.611 -e 1 )&>/dev/null ; then
+ unset DBICTEST_FIREBIRD_DSN DBICTEST_FIREBIRD_INTERBASE_DSN
+ fi
+
+ # the official version is very much outdated and does not compile on 5.14+
+ # use this rather updated source tree (needs to go to PAUSE):
+ # https://github.com/pilcrow/perl-dbd-interbase
if [[ -n "$DBICTEST_FIREBIRD_INTERBASE_DSN" ]] ; then
- # the official version is very much outdated and does not compile on 5.14+
- # use this rather updated source tree (needs to go to PAUSE):
- # https://github.com/pilcrow/perl-dbd-interbase
parallel_installdeps_notest git://github.com/dbsrgits/perl-dbd-interbase.git
fi