Jeffrey Thalhammer wrote:
> At my current $job, the Perl code is organized into a handful of
> cpan-style distros.  We use Module::Build to build each distro, and then
> use CPAN.pm to orchestrate the deployment of the application from a
> local CPAN repository.  This all works like a charm.
> 
> But there is some debate about whether the MANIFEST and other metafiles
> should be put in the source code repository.  My gut feeling is that
> MANIFEST is a generated file, therefore it does not go in the
> repository.  Instead, the MANIFEST.SKIP file should be carefully crafted
> to ensure that the MANIFEST is correct.  However, this raises a
> question: How do you ensure that *unexpected* cruft files don't end up
> in the MANIFEST?

This seems to be a subset of the "should the repository contain all the
release files?" argument.  Should the repo contain just the files which build
a release, or should they contain all the files that go into a release?

One side would argue that everything should be in version control so you can
track down bugs.  The other side argues that keeping generated files up to
date is annoying.

The pragmatic answer to this question depends largely on your release process
and how much stuff you generate.


> My colleagues prefer to have the MANIFEST file in the repository so they
> can run distcheck to see what's been added or removed before committing
> some work.  And then they manually edit MANIFEST or just run "./Build
> manifest" whenever MANIFEST gets out of sync.  But we frequently forget
> to do this and it results in build failures in our continuous
> integration system.

Regardless of whether it's checked in, you should not be updating MANIFEST by
hand.  It's rote work better done by the monkeys inside your computer.  Keep a
properly maintained MANIFEST.SKIP and generate MANIFEST.

Also, there is a "disttest" target which will simulate testing a distribution
by copying all the files in MANIFEST to a subdir and run tests in that.  I run
it as part of my release process.


-- 
Look at me talking when there's science to do.
When I look out there it makes me glad I'm not you.
I've experiments to be run.
There is research to be done
On the people who are still alive.
    -- Jonathan Coulton, "Still Alive"

Reply via email to