This is a "how do others do this?" post. In your large (or even not so large) apps I assume at times you experience dependency regressions. My question is do you manage it on a case-by-case basis (simply install an older version or fix internally) or is it such a significant issue that you have a system for managing modules outside of CPAN?
The reason I ask is because at work we are considering managing different stacks of CPAN and in-house dependencies -- so maybe "dev", "testing", and "production/staging" stacks all in separate private CPAN mirrors. And now multiply that times the number of different apps we work on. My experience is that even with the very large number of dependencies in a Catalyst app that it's pretty rare to have a regression. It happens, sure, and when it happens just deal with it. (And thinking of our own code it's typically not a regression in a module but a fix in a module where our code was depending on some broken behavior). So, the question is: does anyone else find it necessary to manage dependencies as I described above? And if so, what is your process? My opinion is versions don't really matter much -- install the app in a "QA" or "testing", bringing in dependencies as needed from CPAN or local repo, and run the unit tests. If they pass then I'm happy (until QA finds a bug). Managing multiple stacks of modules adds complexity -- and bugs favor complexity. Another argument that is floated around is we don't want to upgrade dependencies often because of potential *new* bugs. That seems a bit silly to me because it's ignoring *known* bug fixes for the chance that there might some unknown new bug. (Yes, we have apps running Catalyst from 2010!) Thanks for the feedback, -- Bill Moseley [email protected]
_______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
