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.