Something came up on the SVK list that eventually boiled down to a problem with how new_from_file() handles $VERSION resolution. I'm not sure yet how to fix it, but I wanted to document it first, so maybe someone else will have a good idea how to fix it for good.
For example, create these three modules (each package in a different file): -------------------------------- package My::MainModule::Version; use version; our $VERSION = qv('2.0.0'); -------------------------------- package My::MainModule; use My::Deep::Version; our $VERSION = $My::Deep::Version::VERSION; -------------------------------- package My::MainModule::Other; use My::Deep::Version; our $VERSION = $My::Deep::Version::VERSION; -------------------------------- What happens is that when generating the META.yml for My::MainModule, the provides hash will display module versions: 1) as empty values iif the My::MainModule::Version has never been installed; 2) as the currently installed $VERSION if My::MainModule::Version _has_ been installed in the past. The problem is that new_from_file is too careful and doesn't load the new My::MainModule::Version while eval'ing the other modules which depend on it. This is, to say the least, counter-intuitive. The workaround for module authors is to install the new release, then regenerate the META.yml, which will now contain the "new" $VERSION (which is to say the installed one)... John