One of the things I've found most gratifying while working on DBIx::Class::Migration is how in using the CPAN ecosystem I was able to engage many authors to solve bugs / issues I uncovered in shared code. For example, I noticed a edge case in the more recent versions of YAML that got solved rapidly. I also uncovered some issues with DBIx::Class::Schema::Loader that the author was willing to take on based on my test case. And in DBIx::Class::DeploymentHandler I worked with the author through several patch sets which solved bugs and improved the functionality.
In doing so the entire ecosystem was improved, not just the one project I am working on. Improvements to DBIx::Class::DeploymentHandler will benefit anyone using that code. The fixes to YAML are significant since that module is broadly uses. And DBIC::Schema::Loader is a core part of the DBIC ecosystem.
Sometimes when you go to work on a project it might feel simplier to say, "I'm going to roll it all myself." Or to just copy paste stuff. In some ways that can be faster. It can sometimes be a slower process to work with many authors to convince them to accept your patches. But it is always better for the community overall. I believe that this contract amongst CPAN authors is part of what is going to allow Perl to continue to grow and continue to be a top notch solution for application development.
Comments