Peter Rabbitson [Sat, 16 Jul 2016 11:29:40 +0000]
Work around the FIXME in the previous commit
Based on @haarg's excellent detective work: https://is.gd/perl_mro_taint_wtf
Peter Rabbitson [Thu, 14 Jul 2016 13:20:03 +0000]
Get rid of Package::Stash \o/
Internal tooling advanced sufficiently without planning for any of that:
a good indicator things are on the right track!
Read under -w
Peter Rabbitson [Thu, 14 Jul 2016 12:50:02 +0000]
Add a get_subname to _Util
Peter Rabbitson [Wed, 13 Jul 2016 16:28:23 +0000]
Insulate DBIC::Carp from rogue can() overrides
Peter Rabbitson [Thu, 14 Jul 2016 11:03:26 +0000]
Add more forceful (STDERR-direct) warning emitter
Switch some of the most critical announements to it
Peter Rabbitson [Thu, 30 Jun 2016 19:55:55 +0000]
Fix POISON_ENV warning missed in both
5c33c8be and 44c1a75d
Peter Rabbitson [Wed, 13 Jul 2016 15:51:00 +0000]
Silence inactionable warning (mainly on travis)
Peter Rabbitson [Wed, 13 Jul 2016 15:57:18 +0000]
(travis) Switch to our own copy of the Firebird ODBC driver
Sourceforge is just way too unstable
Peter Rabbitson [Sun, 3 Jul 2016 08:43:20 +0000]
(travis) Properly diagnose potential OOM in 50_after_success.bash
Idea originally introduced in
ac4e80df
Peter Rabbitson [Wed, 29 Jun 2016 17:29:27 +0000]
(travis) Add poisoning to the base non-clean build run
Peter Rabbitson [Fri, 24 Jun 2016 16:31:01 +0000]
Fill in missing documentation in ::Schema / ::ResultSource
Peter Rabbitson [Fri, 1 Jul 2016 10:22:48 +0000]
Audit all local() calls within lib/ and t/lib
Correct some of them to fire less frequently (local is *expensive*)
Peter Rabbitson [Mon, 27 Jun 2016 08:29:27 +0000]
Expand describe_class_methods testing yet again
This should be the end of adjustments, so many corner cases...
Peter Rabbitson [Wed, 29 Jun 2016 22:49:39 +0000]
Use a single cache struct for entirety of describe_class_methods
This will allow influencing the cache from outside like shown below, (but
please, DO NOT DO SO), and in turn will make sanity checks on 5.8 somewhat
acceptable *by default* \o/
$...::__describe_class_query_cache->{"!internal!"} = {};
Peter Rabbitson [Wed, 29 Jun 2016 22:40:15 +0000]
Add hash-based ISA lookup to RV of describe_class_methods
Peter Rabbitson [Wed, 29 Jun 2016 13:32:00 +0000]
Expand signature of describe_class_methods for forward compat
It is likely extra options/attrs will need to be passed down the road -
hence do not lock ourselves into positional args
Peter Rabbitson [Sat, 4 Jun 2016 09:23:17 +0000]
Raise the global lock timeouts
15 minutes on my laptop on battery with all assertions no longer cuts it :(
Peter Rabbitson [Fri, 3 Jun 2016 14:12:32 +0000]
Add true/false non-singleton boolean objects
This will be needed for the sanitychecker on OLD_MRO
Peter Rabbitson [Thu, 23 Jun 2016 12:18:06 +0000]
Extra test of UNIVERSAL handling in describe_class_methods
While parents of UNIVERSAL *do* "inherit" some of UNIVERSAL's methods, making
this circularity apparent is out of scope for this tool. Doing otherwise will
complicate consumer code for no apparent benefit. Thus add an explicit test
that "this is how it is".
Peter Rabbitson [Tue, 21 Jun 2016 14:34:14 +0000]
Revert TempExtlib (
b46b85376 ) - new Sub::Quote shipped
Peter Rabbitson [Tue, 21 Jun 2016 14:24:29 +0000]
Bring out the big-paranoia-harness - make describe_env infallible
As desmonstrated by the previous commit: testing is no substitute for proper
defensive programs. Stop-gap until this is spun off on its own
Peter Rabbitson [Tue, 21 Jun 2016 06:41:10 +0000]
Fix describe_env failure on nonexistent @INC on Win32
Despite this code undergoing wide CPAN testing last year, and having zero
functional changes since, there were *still* bugs lurking inside :/
Peter Rabbitson [Tue, 21 Jun 2016 09:07:45 +0000]
Minor cosmetic fix of describe_environment
Peter Rabbitson [Tue, 21 Jun 2016 12:46:25 +0000]
Fix false-positives in the no-external-evals assert (
ddcc02d14 )
If there is no eval frame above the exception action - there is nothing to
report to the user
Peter Rabbitson [Mon, 20 Jun 2016 20:58:32 +0000]
Add 'PERL_VERSION' foldable constant, switch lib-ish things over
No point changing the many $] references in .t's themselves
Peter Rabbitson [Mon, 20 Jun 2016 17:00:09 +0000]
Minor improvements to the maint helper scripts
Dagfinn Ilmari Mannsåker [Sat, 18 Jun 2016 11:37:10 +0000]
Restore 'timezone' field in column info ( extends
eef9b484 )
The keys in the column info hash are semi-public API, and 'timezone' in
particular is used by DBIx::Class::InflateColumn::DateTime::WithTimeZone.
Keep documenting time_zone as the main name, but note that it's stored
under both keys.
Peter Rabbitson [Mon, 20 Jun 2016 07:21:50 +0000]
Proper changelog after I bothced it in
e400c82d
Peter Rabbitson [Sun, 19 Jun 2016 05:48:27 +0000]
Ensure describe_environment does not break its output in half
Peter Rabbitson [Sat, 18 Jun 2016 09:51:10 +0000]
Slight POD correction
Peter Rabbitson [Wed, 4 Nov 2015 03:18:01 +0000]
Add changelog entry on
90c9dd1d, 757891ed and 89203568
Sample (not ideal - could be *SO* much better ) timings from included bencher:
Before (0.0828xx):
62951 byte-long query generated (via as_query()) in: 4.975237 seconds (take 1)
62951 byte-long query generated (via as_query()) in: 4.995723 seconds (take 2)
62951 byte-long query generated (via as_query()) in: 4.964793 seconds (take 3)
62951 byte-long query generated (via as_query()) in: 4.96168 seconds (take 4)
62951 byte-long query generated (via as_query()) in: 4.991396 seconds (take 5)
62951 byte-long query generated (via as_query()) in: 4.988478 seconds (take 6)
62951 byte-long query generated (via as_query()) in: 4.977612 seconds (take 7)
62951 byte-long query generated (via as_query()) in: 4.98648 seconds (take 8)
62951 byte-long query generated (via as_query()) in: 4.999984 seconds (take 9)
After:
62951 byte-long query generated (via as_query()) in: 0.429634 seconds (take 1)
62951 byte-long query generated (via as_query()) in: 0.416169 seconds (take 2)
62951 byte-long query generated (via as_query()) in: 0.430782 seconds (take 3)
62951 byte-long query generated (via as_query()) in: 0.416879 seconds (take 4)
62951 byte-long query generated (via as_query()) in: 0.426492 seconds (take 5)
62951 byte-long query generated (via as_query()) in: 0.428975 seconds (take 6)
62951 byte-long query generated (via as_query()) in: 0.413018 seconds (take 7)
62951 byte-long query generated (via as_query()) in: 0.428731 seconds (take 8)
62951 byte-long query generated (via as_query()) in: 0.413206 seconds (take 9)
Peter Rabbitson [Fri, 17 Jun 2016 14:06:55 +0000]
Remove changelog entries included in 0.082830
Peter Rabbitson [Wed, 15 Jun 2016 10:31:53 +0000]
Simplify our quote_sub override: Sub::Quote now has native attr support
Peter Rabbitson [Thu, 16 Jun 2016 15:40:44 +0000]
Change the leaktracer to no longer rely on %Sub::Quote::QUOTED
Frees up @haarg to do as he sees fit in the future
Peter Rabbitson [Thu, 16 Jun 2016 22:21:23 +0000]
Remove useless eval in the leaktracer on 5.8.3+
As a bonus fix a subtle bug where the very first ref encountered was never
traced, as the postincrement caused its slot to be deleted - ARGH!
Peter Rabbitson [Thu, 16 Jun 2016 15:01:02 +0000]
Remove code forgotten in
085dbdd69
Peter Rabbitson [Tue, 14 Jun 2016 10:32:34 +0000]
Remove preemptive DESTROY guard from
87f4bab0 / d63c9e64
It has been on CPAN sufficiently long, and would be needlesly pessimizing
the upcoming sanity check framework.
Peter Rabbitson [Tue, 14 Jun 2016 08:35:50 +0000]
Allow alternative mro-type specification on method listing
This is needed for the mro sanity check further up
Peter Rabbitson [Tue, 14 Jun 2016 06:18:35 +0000]
Account for 'poor man role application' method plumbing on 5.8
This also has the effect of greatly simplifying the OLD_MRO case
Peter Rabbitson [Mon, 13 Jun 2016 16:43:31 +0000]
Properly handle UNIVERSAL ancestry in describe_class_methods
Obscure but possible nevertheless.
Peter Rabbitson [Tue, 14 Jun 2016 16:05:51 +0000]
Fix describe_class_methods on non-mergeable DFS mro
Instead of trying to deduplicate - simply track which methods are locally
defined, and use that info combined with a reverse ISA-per-select-MRO to
build the final stack.
As a result the code is even more efficient and can now deal with real-life
insane hierarchies like:
https://metacpan.org/source/MJFLICK/DBIx-Class-Bootstrap-Simple-0.03/lib/DBIx/Class/Bootstrap/Simple.pm#L93
Peter Rabbitson [Tue, 14 Jun 2016 07:18:48 +0000]
Name describe_class_methods arguments earlier
The attribute::get() caching seems to only add noise in benchmarks,
so remove that. Same for the pre-check on recursion - remove that as well
Peter Rabbitson [Fri, 10 Jun 2016 06:22:38 +0000]
Fix m2m regression from
8a67d9cf (simple but deadly)
Peter Rabbitson [Thu, 9 Jun 2016 09:06:39 +0000]
Add extra maint tooling - got tired of writing this smoke cmd by hand
Peter Rabbitson [Fri, 10 Jun 2016 06:31:56 +0000]
(travis) Temporarily disable {halt_on_failure} for cperl
It is not clear whether there is a way around the root cause:
https://github.com/rurban/distroprefs/commit/
30792f7e95ca76ac1c1e73d0662dce22168c9df9#commitcomment-17817389
Peter Rabbitson [Fri, 10 Jun 2016 06:13:30 +0000]
(travis) Revert parts of
e66f0ee0 and ee3a37d3
The typing of @array * $int got relaxed, and it turns out c5.22.2 worked
just fine *without* distroprefs, so I never noticed them being ignored
Peter Rabbitson [Wed, 8 Jun 2016 07:47:56 +0000]
(travis) Work around a bad tradeoff in cperl-5.24-to-be
https://github.com/perl11/cperl/issues/153#issuecomment-
224515895
http://irclog.perlgeek.de/perl11/2016-06-08#i_
12624951
Peter Rabbitson [Thu, 2 Jun 2016 17:55:31 +0000]
(travis) Add cperl master to the smoke roster, bump to 5.22.3
Peter Rabbitson [Tue, 7 Jun 2016 17:21:54 +0000]
(travis) Report the perl (and vm state) early before deps can fail
Peter Rabbitson [Tue, 7 Jun 2016 15:22:11 +0000]
(travis) Mini-utility to download travis reports
I've had enough waiting for their shit site :/
Peter Rabbitson [Sun, 5 Jun 2016 10:00:43 +0000]
Base more tests on DBICTest::BaseSchema (needed further up)
Peter Rabbitson [Mon, 6 Jun 2016 12:59:44 +0000]
And yet another INDIRECT guard missed in both
e5053694 and d99f2db7
Peter Rabbitson [Wed, 1 Jun 2016 08:46:28 +0000]
Introduce the describe_class_methods() utility function
This code will be needed several commits later to tie together the hierarchy
validation work.
Returns a comprehensive list of methods and related trivia. This required
way more code than one would hope, this part of perl is *really* hateful.
Read test changes under -w
Everything is implemented on "bare metal" (no Package::Stash, very aggressive
caching) as this needs to be as efficient as possible. Currently timings on
old and new MRO are roughly such on a downclocked X201 / M540:
~/devel/dbic$ perlbrew exec --with 5.8.5,5.16.2,5.24.0_rc1 \
perl -T -Ilib -It/lib -MDBICTest -MTime::HiRes=time -e '
my $t0 = time;
sub tstamp {
printf "%.6f\n", time - $t0;
$t0 = time;
}
tstamp();
for ( (qw(
DBICTest::Schema::Artist
DBICTest::Schema::CD
DBICTest::Schema::Track
main
)) x 2 ) {
print "describing $_\n";
DBIx::Class::_Util::describe_class_methods($_);
tstamp();
}
'
5.8.5
==========
0.000005
describing DBICTest::Schema::Artist
0.224748
describing DBICTest::Schema::CD
0.066118
describing DBICTest::Schema::Track
0.090433
describing main
0.003152
describing DBICTest::Schema::Artist
0.038846
describing DBICTest::Schema::CD
0.038390
describing DBICTest::Schema::Track
0.043453
describing main
0.002128
5.16.2
==========
0.000005
describing DBICTest::Schema::Artist
0.077804
describing DBICTest::Schema::CD
0.007684
describing DBICTest::Schema::Track
0.013071
describing main
0.001073
describing DBICTest::Schema::Artist
0.000109
describing DBICTest::Schema::CD
0.000096
describing DBICTest::Schema::Track
0.000098
describing main
0.000041
5.24.0_rc1
==========
0.000005
describing DBICTest::Schema::Artist
0.044058
describing DBICTest::Schema::CD
0.006093
describing DBICTest::Schema::Track
0.011004
describing main
0.000735
describing DBICTest::Schema::Artist
0.000118
describing DBICTest::Schema::CD
0.000114
describing DBICTest::Schema::Track
0.000113
describing main
0.000059
Additional sanity-checking of this deceptively simple code was performed by
sad brute-forcing of the entire test schema set ( at the time of this commit
the cumulative sum output was 0x
1a65e78e316348104ab9cdc3e474c79096 )
perlbrew exec --with 5.8.5,5.10.0,5.16.2,5.18.0,5.20.0,5.24.0_rc1 \
perl -T -Ilib -It/lib -MDBICTest -e '
use Math::BigInt;
use Digest::MD5 "md5_hex";
use List::Util 'shuffle';
use Data::Dumper::Concise;
use DBIx::Class::_Util qw( describe_class_methods uniq );
my $sum = Math::BigInt->new(0);
for ( shuffle uniq sort map { ( defined Scalar::Util::blessed $_ ) ? ref $_ : $_ } (
qw(
DBIx::Class::ResultSource
DBIx::Class::Core
DBIx::Class::ResultSet
DBICTest::Schema
),
( map {
$_,
$_->result_class,
$_->resultset_class,
} map { DBICTest::Schema->source($_) } DBICTest::Schema->sources ),
) ) {
my $desc = describe_class_methods($_);
# unstable between invocations
delete $desc->{cumulative_gen};
# only available on 5.10+
delete $desc->{methods}{DOES};
# only available on 5.18+
delete $desc->{methods}{"(("};
$sum += Math::BigInt->new( "0x" . md5_hex(Dumper($desc)) );
}
print $sum->as_hex;
'
Peter Rabbitson [Wed, 25 May 2016 09:44:20 +0000]
Introduce DBIC-specific method attribute support
When attribute support was added back in
ed28f830 it was done in a weird
roundabout manner, with the only way to access the attributes via a chained
class accessor __attr_cache hidden behind a cascading method _attr_cache.
This is wasteful and rather inelegant. To mitigate this, and the propensity
of DBIC to eat any attribute it can lay its hands on, introduce special
handling for attributes prefixed with DBIC_
Any such attributes are handled by a much simpler storage system, and are
not made available to the legacy _attr_cache interface.
Peter Rabbitson [Sun, 29 May 2016 14:50:02 +0000]
Attribute handling got too complex - move it into a component
No functional changes, just c/p code around
For some reason git diff -C -C -M doesn't work here...
Peter Rabbitson [Sun, 29 May 2016 14:00:22 +0000]
Proper attribute support under ithreads (fix
7bd921c0)
The previous implementation was rushed (for decidedly non-technical reasons)
and is predictably completely wrong :/
Properly fix renumbering of the registry, and add a double-thread test to
catch future problems
Read under --color-words
Peter Rabbitson [Mon, 30 May 2016 09:04:54 +0000]
Expand the c3 mro test from
d009cb7d
No functional changes
Peter Rabbitson [Mon, 30 May 2016 14:44:05 +0000]
Correct mistake in t/00describe_environment.t reporting of _TempExtlib
This isn't actually correct, but is a reasonable approximation. The entire
thing needs to be rewritten, but that's another fight
Peter Rabbitson [Thu, 26 May 2016 19:21:05 +0000]
Revert
c9f4555e - I did not see a mistake I made in the skip-regex
ribasushi-- # get your fucking act together...
Peter Rabbitson [Wed, 25 May 2016 08:00:58 +0000]
Expand/fortify the handling of attributes
Now works properly under ithreads, and allows multiple attributes->import()
calls to be made on the same cref
Peter Rabbitson [Wed, 25 May 2016 12:19:13 +0000]
Move even more utils into DBIC::_Util (see next commit)
Zero functional changes
Peter Rabbitson [Thu, 26 May 2016 15:02:06 +0000]
Prevent CLONE from potentially running more than once
Argh, another thing I didn't know about iThreads: CLONE will run for every
package defining *or inheriting* it. Sigh...
Peter Rabbitson [Wed, 25 May 2016 15:14:23 +0000]
Fix more taint.t failures under local::lib
Add a CI run under l::l (when POISON_ENV is set) to weed this problem out
once and for all
Also relegate the test to xt/ - it will still run on smokers given
554484cb
and has no value failing on an end-user system (CI runs the entire suite
under prove -T anyhow)
Peter Rabbitson [Thu, 26 May 2016 11:51:57 +0000]
Skip lean_startup.t entirely on cperl for now
Peter Rabbitson [Wed, 25 May 2016 10:54:31 +0000]
Couple things forgotten during
399b9455/b46b8537
Peter Rabbitson [Thu, 26 May 2016 10:17:29 +0000]
Better lean startup skip in require override
ribasushi-- # didn't think through this kind of thing can happen more widely
Peter Rabbitson [Tue, 24 May 2016 10:38:16 +0000]
Add preliminary non-core attribute support
This is done in such a "cargocult" way to unblock the rsrc work.
Will be gutted out once Moo 2.002 ships
Peter Rabbitson [Mon, 23 May 2016 17:42:56 +0000]
Force no_defer on DBIC-internal quote_sub() invocations
Peter Rabbitson [Tue, 24 May 2016 11:16:34 +0000]
Bring back _TempExtlib (
d0435d75), this time for Sub::Quote
And this is the part that brings back the to-be-removed portion (unlike the
previous
399b9455 which is here to stay)
See next commit for why we need this, to be removed once Moo $next ships
Peter Rabbitson [Tue, 24 May 2016 12:36:41 +0000]
Add permanent plumbing for _TempExtlib (
d0435d75)
Since this is the second time we need this, there likely will be more down the
road. Split the permanenet and temporary parts into two commits so reverting
is less of a PITA.
This commit contains the pieces that are perfectly fine to lay dormant until
times we need _TempExtlib
Peter Rabbitson [Tue, 24 May 2016 08:40:12 +0000]
Remove last active reference to List::Util from lib/
This makes zero difference right now that List::Util/Scalar::Util/Sub::Util
are one disgusting ball of mud, but hopefully it will make sense soon after
@haarg's refactor finally ships
Peter Rabbitson [Sun, 28 Feb 2016 12:27:25 +0000]
Better lean startup check
Instead of stupidly loading DBICTest right away, delay to examine the actual
bare DBIC startup
Peter Rabbitson [Tue, 24 May 2016 06:54:18 +0000]
Simplify the find-test-temp-dir codepath a bit
Peter Rabbitson [Tue, 24 May 2016 11:55:31 +0000]
Fix incorrect whitespace test outside of checkouts
I stupidly broke it in
1fb834df
Peter Rabbitson [Tue, 24 May 2016 08:43:18 +0000]
This piece of doc has been incorrect since
c354902c
Dagfinn Ilmari Mannsåker [Tue, 17 May 2016 15:33:27 +0000]
Harmonize time zone spelling in InflateColumn::DateTime
The rest of the DateTime ecosystem consistently uses "time zone" and
"time_zone", so use that in InflateColumn::DateTime too
"timezone" is still accepted for backwards compatibility
Peter Rabbitson [Thu, 19 May 2016 18:49:55 +0000]
Properly fix corner case of non-comparing overload
Back in
096ab902a I stupidly introduced a distinction between blessed and
non-blessed structures in store_column. In retrospect this makes absolutely
no sense. It took me an embarrasingly long time to get my clue on, including
sending a bogus bugrport (with a patch FFS!!!) and wasting SYBER's time:
https://rt.cpan.org/Ticket/Display.html?id=114424
At least that shit never shipped :/
Peter Rabbitson [Thu, 19 May 2016 14:49:41 +0000]
(travis) Bump to Cperl 5.22.2
@miyagawa++ # YAML api - allows for trivial grep/sed slicing and dicing
Read under -w
Peter Rabbitson [Thu, 19 May 2016 08:25:36 +0000]
(travis) Test::Strict needs Devel::Cover which fails on blead
To work around https://github.com/pjcj/Devel--Cover/issues/161 provide a fake
Devel::Cover satisfying https://github.com/Manwar/Test-Strict/issues/17
Peter Rabbitson [Thu, 19 May 2016 07:23:55 +0000]
(travis) Clear out some resolved FIXMEs
Peter Rabbitson [Thu, 19 May 2016 07:19:00 +0000]
(travis) Poorman updated their offerings
As a bonus sidesteps https://github.com/travis-ci/travis-ci/issues/5944
Peter Rabbitson [Sun, 15 May 2016 20:52:18 +0000]
Start known issues changelog section - place it on top for clarity
Aside from the 3 pieces listed in Changes, everything else tested on the list
below passes on 5.16.2 as of the date of this commit
Note: slight nudging (cpanm -n) was necessary to get some intra-deps
reset; set -o pipefail; for d in \
RapidApp \
App::DBCritic \
App::DH \
Catalyst::Controller::DBIC::API \
Catalyst::Model::DBIC::Schema \
Catalyst::Model::DBIC::Schema::PerRequest \
Catalyst::Plugin::Authorization::RoleAbilities \
Catalyst::TraitFor::Model::DBIC::Schema::Result \
Catalyst::TraitFor::Model::DBIC::Shortcut \
CatalystX::CRUD::ModelAdapter::DBIC \
CatalystX::Eta \
CatalystX::Resource \
CatalystX::SimpleLogin \
Dancer2::Plugin::DBIC \
Dancer2::Session::DBIC \
Dancer::Plugin::DBIC \
Dancer::Session::DBIC \
DBICx::Modeler \
DBICx::Sugar \
DBIx::Class::AlwaysUpdate \
DBIx::Class::AuditAny \
DBIx::Class::AuditLog \
DBIx::Class::BatchUpdate \
DBIx::Class::Candy \
DBIx::Class::DeploymentHandler \
DBIx::Class::DynamicDefault \
DBIx::Class::DynamicSubclass \
DBIx::Class::EasyFixture \
DBIx::Class::Fixtures \
DBIx::Class::Helpers \
DBIx::Class::HTMLWidget \
DBIx::Class::InflateColumn::Boolean \
DBIx::Class::InflateColumn::DateTimeX::Immutable \
DBIx::Class::InflateColumn::Math::Currency \
DBIx::Class::InflateColumn::Serializer::Role::HashContentAccessor \
DBIx::Class::InflateColumn::Time \
DBIx::Class::InflateColumn::TimeMoment \
DBIx::Class::Journal \
DBIx::Class::Migration \
DBIx::Class::MooseColumns \
DBIx::Class::Objects \
DBIx::Class::ParameterizedJoinHack \
DBIx::Class::PgLog \
DBIx::Class::QueryLog \
DBIx::Class::RandomColumns \
DBIx::Class::Result::ColumnData \
DBIx::Class::ResultSet::AccessorsEverywhere \
DBIx::Class::ResultSet::AuditLog \
DBIx::Class::ResultSet::RecursiveUpdate \
DBIx::Class::ResultSource::MultipleTableInheritance \
DBIx::Class::Result::Validation \
DBIx::Class::Schema::Config \
DBIx::Class::Schema::Diff \
DBIx::Class::Schema::Loader \
DBIx::Class::Schema::Loader::Dynamic \
DBIx::Class::Schema::PopulateMore \
DBIx::Class::Schema::RestrictWithObject \
DBIx::Class::Schema::TxnEndHook \
DBIx::Class::Schema::Versioned::Inline \
DBIx::Class::Sims \
DBIx::Class::TimeStamp \
DBIx::Class::TopoSort \
DBIx::Class::Tree \
DBIx::Class::Tree::Mobius \
DBIx::Class::UnicornLogger \
DBIx::Class::UserStamp \
DBIx::Class::Validation \
DBIx::Class::Validation::Structure \
DBIx::Class::VirtualColumns \
DBIx::Class::Wrapper \
DBIx::Schema::Changelog \
DBIx::Table::TestDataGenerator \
Galileo \
HTML::FormHandler::Model::DBIC \
HTML::FormHandler::TraitFor::Model::DBIC \
Interchange6::Schema \
KiokuDB::Backend::DBI \
MooseX::Meta::Method::Transactional \
MooseX::Role::DBIC \
MooseX::Storage::DBIC \
MooseX::Types::DBIx::Class \
Reaction \
Tapper::Schema \
Test::DBIC::Schema::Connector \
Test::DBIC::Versioned \
Test::DBIx::Class \
WebAPI::DBIC \
Yeb::Plugin::DBIC \
"DBD::SQLite@1.35 Handel Catalyst::ActionRole::BuildDBICResult" \
; do \
PERL5LIB=/home/rabbit/devel/dbic/lib \
DBIC_ASSERT_NO_ERRONEOUS_METAINSTANCE_USAGE=1 \
cpanm -v --reinstall $d 2>&1 \
| tee -a /dev/shm/umpfh \
| grep -P -B1 '^(Building and testing|Result:)' || break \
; done
Peter Rabbitson [Tue, 17 May 2016 15:43:30 +0000]
Add a few more indirect call guards missed in
e5053694
No notable code changes were required as a result
Peter Rabbitson [Sun, 15 May 2016 20:52:18 +0000]
Rollback some mistaken indirect-call-elisions from
e5053694
The ::Realtionship::Base calls perform result-instance adjustments, thus
they CAN NOT be omitted
That would have been *really* embarrassing, good thing dependent smoking
caught this crap. Not adding an extra test at this point, but probably
should :/
Audit was performed by scrutinizing each line of:
grep -- '->' \
<(git diff -U0
e50536940^..e50536940) \
<(git diff -U0
77c3a5dca^..77c3a5dca) \
> argh.log
Peter Rabbitson [Sun, 15 May 2016 15:01:32 +0000]
Ensure the component_class override require()s its value in a pipeline
Peter Rabbitson [Sun, 15 May 2016 13:54:30 +0000]
Streamline ::ResultSource::* inheritance, similar to
d009cb7d
There should be zero functional changes
Peter Rabbitson [Sun, 15 May 2016 14:38:59 +0000]
Clean up the mess around $rsrc->sqlt_deploy_callback
Back in
f89bb832 nothingmuch introduced a hook point used to better integrate
with KiokuDB::Backend::DBI. It was properly implemented as a $rsrc instance
attribute, though somewhat undocmented.
Then in
880c075b castaway came along and incorrectly documented the attribute
as settable from a class, without it ever becoming a member of the list in
DBIC::ResultSourceProxy.
Then in
3b4e619d1 yours truly came along and (either misled by the docs, or
by drugs, or both) switched the accessor to classdata (CAG inherited) even
though rsrc-class-level operations were never a thing.
Revert part of
3b4e619d1 and fix the documentation to properly reflect the
state of affairs
Peter Rabbitson [Mon, 2 May 2016 11:35:40 +0000]
Explicit exception clarifying that $rsrc->from() is not a setter
This has always been the case, but previously from('foo') would just eat the
arguments silently
Peter Rabbitson [Fri, 29 Apr 2016 11:00:35 +0000]
Pull apart a test section (no functional changes)
Peter Rabbitson [Wed, 4 May 2016 16:10:33 +0000]
In
d009cb7d I stupidly created a "double around()"
Consolidate all the logic in DBIC::Componentised instead
Peter Rabbitson [Fri, 29 Apr 2016 16:00:03 +0000]
Bump Sub::Uplevel dep - too much breaks on <= 0.18
Note that this is a kludge - the guts of ::Carp need to be protected much
better by a faulty caller() override (as was the case in RT#32640)
An attempt to do so in
821edc09 turned out insufficient - everything still
fails on `DBIC_TRACE=1 prove ...` if the older Sub::Uplevel is installed :(
Peter Rabbitson [Fri, 15 Apr 2016 14:24:33 +0000]
More indirect call removals: the second part of
77c3a5dc
This may see like a random thing to do, especially given the late dev stage,
but it is needed for the clean fix of rsrc duality several commits later.
The spots were audited via "list all subs 10 lines or less":
~/devel/dbic$ find lib \
-name '*.pod' -prune \
-o -path lib/DBIx/Class/CDBICompat -prune \
-o -path lib/DBIx/Class/Admin -prune \
-o -path lib/DBIx/Class/Storage -prune \
-o -path lib/DBIx/Class/SQLMaker -prune \
-o -type f -exec perl -0777 -e '
$_ =~ /\S/
and
$_ !~ /ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call/
and
print "\n=====\n$ARGV\n=====\n\n$_\n\n\n"
for (<> =~ / (
^ (\s*) sub \s+ \w+ \s* \{ (?:
[^\n]+? \} \s*? \n
|
(?: [^\n]* \n ){0,10}? ^ \2 \}
)
) /xmg)
' {} \; \
| less
Peter Rabbitson [Wed, 27 Apr 2016 12:57:40 +0000]
Centralize remaining uses of Sub::Name within _Util
No functional changes
Peter Rabbitson [Thu, 28 Apr 2016 07:07:08 +0000]
Missed test spewing odd debug after
fd2c6658f (slave-less replication)
Disabling VIA_REPLICATED as it makes no sense here anyway
Sebastian Riedel [Tue, 26 Apr 2016 22:04:38 +0000]
Silly GitHub, Perl6 is not a real language :trollface:
Port of https://github.com/kraih/mojo/commit/
19cdf772
Before this clarification the project listed as 7% Perl6 code >.<
The explicit listing is needed, as there apparently won't be a fix
within Github itself any time soon:
https://github.com/github/linguist/issues/2149#issuecomment-
108954064
https://github.com/github/linguist/issues/2781#issuecomment-
167095903
https://github.com/github/linguist/issues/2074#issue-
56431157
Language names sourced from:
https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
Peter Rabbitson [Sun, 24 Apr 2016 16:49:46 +0000]
(travis) Work around RT#113740
Peter Rabbitson [Sun, 24 Apr 2016 11:36:47 +0000]
(travis) Make more helper functions available to subexecs
Peter Rabbitson [Sun, 24 Apr 2016 13:49:30 +0000]
Fix last remaining tests with -T under < 5.10
Model on https://github.com/p5sagit/namespace-clean/commit/
acb1d694, this is
still a mega-kludge, as the FIXME in the file says
Dagfinn Ilmari Mannsåker [Wed, 10 Dec 2014 18:04:06 +0000]
Fix ordering by 1:M prefetched boolean columns in Pg
PostgreSQL doesn't have min/max aggregates for the boolean type, but
it has and/or, which are equivalent. So, allow the storage to override
the aggregate used for constructing the order by clause based on the
column info.
Dagfinn Ilmari Mannsåker [Wed, 20 Apr 2016 16:23:46 +0000]
Use prepared statement from the start for populate on PostgreSQL
DBD::Pg since version 3.0.0 by default only starts using server-side
prepared statements the second time ->execute is called on a given
statement handle.
Unless server-side prepared statements have been disabled (by setting
the threshold to zero), make it use them immediately to avoid parsing
the statement twice.