Skip to content

Latest commit

 

History

History
57 lines (49 loc) · 2.45 KB

CONTRIBUTING.md

File metadata and controls

57 lines (49 loc) · 2.45 KB

Thank you for considering contributing to this distribution. This file contains instructions that will help you work with the source code.

Because the objective of Devel-Git-MultiBisect is to assist you in diagnosing problems with Perl libraries which use git as their version control systems, this distribution's test suite of necessity entails using real git repositories.

Up through version 0.15, we bundled two such repositories within the distribution as git submodules. This enabled us to compose test files based on real-world uses of this library. But this approach came with two costs:

  • The tarball shipped to CPAN was massive: around 2.24 megabytes.

  • A few CPANtesters rigs repeatedly failed for reasons not well understood -- even though other CPANtesters rigs run by the same individuals gave the distribution repeated PASSes.

Beginning with version 0.16 we are taking a different approach. Instead of bundling other GitHub repositories as submodules within this distribution, we now ask potential developers to do git clones of two CPAN distributions and do git checkouts of them on the same machine where you are working on Devel-Git-MultiBisect. Specifically:

  • Let's assume that you have an environmental variable which holds the path to the directory into which you git clone repositories from GitHub.
$ mkdir -p $HOMEDIR/gitwork
$ export GIT_WORKDIR=$HOMEDIR/gitwork
$ cd $GIT_WORKDIR
  • At this point you would usually proceed via:
$ git clone [email protected]:jkeenan/devel-git-multibisect.git
$ cd devel-git-multibisect
$ perl Makefile.PL && make

... and then proceed to hack on the codebase.

  • However, if you want to give Devel-Git-MultiBisect a thorough inspection before installing from CPAN, or if you want to run a thorough set of tests during development, you should now do this:
$ git clone [email protected]:jkeenan/devel-git-multibisect.git
$ git clone [email protected]:jkeenan/list-compare.git
$ git clone [email protected]:jkeenan/dummyrepo.git
$ export PERL_LIST_COMPARE_GIT_CHECKOUT_DIR=$GIT_WORKDIR/list-compare
$ export PERL_DUMMYREPO_GIT_CHECKOUT_DIR=$GIT_WORKDIR/dummyrepo
$ cd devel-git-multibisect
$ perl Makefile.PL && make
$ make test

Certain files in the test suite will seek out files in the directories pointed to by $PERL_LIST_COMPARE_GIT_CHECKOUT_DIR and $PERL_DUMMYREPO_GIT_CHECKOUT_DIR. The coverage provided by those tests will match or exceed that provided by the test suite in versions earlier than 0.16.