Re: Versioning depends or shared-lib style for a perl module
> I want to be able to install dgit (1.4) and dgit-infrastructure
> (2.0~~) at the same time so that I can use adt-run to test whether my
> update is properly compatible at the protocol level. Currently this
> doesn't work well because the perl module Debian::Dgit is not
> suitably compatible.
Here's another option: versioning your Perl module namespace.
* dgit (1.4) uses Debian::Dgit which defaults to Debian::Dgit::V1
(the current stable API). That means that Debian/Git.pm would
import Debian::Dgit::V1 symbols and export them again.
* dgit-infrastructure (2.0~~) uses Debian::Dgit::V2 directly.
* Eventually Debian::Dgit will default to V2 as the API becomes
* Old code can still use V1 if needed, stable can then use V2,
development can proceed to V3.
This idea came was inspired by reading the code of Net::GitHub.