Contributing to Alien::Xmake
Thanks for your interest in contributing! This guide covers how to set up a development environment, run the test suite, and submit changes.
Getting started
Prerequisites
- Perl 5.40+ (the code uses native
class/methodsyntax) - xmake and/or xrepo available, or a network connection so the build can fetch the latest xmake release
- Recommended:
cpanm(orcpan) to install development dependencies
Install
From a clone of the repository:
cpanm --installdeps .
perl Build.PL
./Build
This builds Alien::Xmake and installs a local xmake into blib/.
Running the tests
./Build test
The suite exercises the real xmake/xrepo binaries, so it requires a working xmake (or the ability to fetch one). Tests build and install a small package (zlib) and a binary (ninja) into a temporary, isolated store.
Development workflow
This project uses native Perl class syntax (use v5.40). Please keep that style and avoid adding comments unless they clarify non-obvious behavior.
We use Test2::V0 for tests. Follow the existing test structure when adding coverage.
Before submitting, please:
- Run the full suite and confirm it passes.
- Format your code so it matches the surrounding style (the repo has a
[Code::TidyAll](https://metacpan.org/pod/Code::TidyAll)configuration in.tidyallrc). - Add a changelog entry under
## [Unreleased]inChanges.md.
If you change the public API of a class, update the corresponding .pod and any example distributions under eg/examples/.
Submitting changes
- Fork the repository on GitHub.
- Create a feature branch:
git checkout -b my-change - Commit your changes with a clear, concise message (see the existing
git logfor style). - Push your branch and open a Pull Request against
main(previouslymaster).
Please make sure your PR:
- Describes the problem being solved
- References any related issue
- Includes tests for any new behavior
- Does not push version-number bumps or changelog edits unless they are part of the change (maintainers handle release versions).
Reporting bugs
Open a GitHub issue with:
- Perl version (
perl -V,$^O) - xmake version (
xmake --version) - A minimal, reproducible example
- The output you saw (and what you expected)
Security issues should be reported privately. See SECURITY.md.
Contact
- Maintainer: Sanko Robinson - https://github.com/sanko
- Repository: https://github.com/sanko/Alien-Xmake