Makemaker: fare test vs make dist
Domanda
Diciamo che ho creato una directory usando module-starter
, e da allora ho scritto diversi moduli e test aggiuntivi.
make test
sarebbe quindi corretto tutto test in t/
Su tutto moduli in lib/
, però make dist
Paccheggerà solo i file menzionati in MANIFEST
in tar.gz.
Quindi sono stato bruciato di recente correndo make test && make dist
E ancora ottenere un pacchetto rotto.
La mia domanda è: mi manca qualcosa o questo può essere riportato come un bug minore nel makemaker? (Su cui makefile.pl sembra fare affidamento).
Soluzione
Puoi usare make disttest
che creerà una directory di distribuzione dal manifest (equivalente a make distdir
) e corri make test
In ciò. Ciò garantisce che stai eseguendo contro gli stessi file che verranno spediti.
Ho anche ricostruito il mio manifesto come parte della pubblicazione, che richiede di mantenere aggiornato il tuo manifest.
Tutto sommato, il mio script di rilascio di base è:
perl Makefile.PL
make manifest
make disttest
make dist
Altri suggerimenti
Correre make distcheck
Prima di rilasciare il pacchetto. Questo ti avvertirà di qualcosa che potenzialmente manca dal tuo MANIFEST
.
Alcuni moduli generano file durante il processo di build (incluso sotto lib/
), quindi file mancanti nel MANIFEST
non dovrebbe necessariamente causare make dist
fallire.