First of all, thanks for taking the time to try and make this project 
better!  Secondly this is an optional document, if you have a small fix, 
just submit as a pull request in GitHub, or send me a patch against the 
latest released version on the GitHub issue tracker here:

 https://github.com/plicease/Archive-Libarchive-XS/issues?state=open

I will most likely be able to shoehorn it into the idiosyncrasies of 
this project.

That being said, if you want to save me time, and speed the process, 
please do use dzil to help create and test your patch.

 - I use Dist::Zilla, so you will have to install it plus the plugins 
   that I am using, which may take a while if you aren't already using 
   it.
 
 - It isn't a pure-perl distribution, so you really do need dzil to 
   build and test (you can't just prove -l to run the tests).
   
 - To save time when I was developing this distribution, some code and 
   documentation is generated.  The templates are in the inc directory, 
   instead of making changes to lib/Archive/Libarchive/XS.pm you should 
   make changes to inc/XS.pm.template

 - Even weirder is that part of lib/Archive/Libarchive/XS.xs is 
   generated and part is human maintained.
 
 - Code generation is done by inc/run/before_build.pl and is run by dzil 
   when you do a build.
 
 - Some of the generated content is intended to be checked back into the 
   repository, which is probably a confusing and bad thing long term.

 - This distribution shares some code and most of its tests with 
   Archive::Libarchive::FFI and Archive::Libarchive::Any.  As part of 
   the build process for those distributions, these files get pulled in 
   from this distribution, usually changing olny XS to FFI or Any.

I hope to refactor some of this in the future so that it is easier for 
contributors.