Contributing to PyOxidizer

This page documents how to contribute to PyOxidizer.

As a User

PyOxidizer is currently a relative young project and could substantially benefit from reports from its users.

Try to package applications with PyOxidizer. If things break or are hard to learn, file an issue on GitHub.

You can also join the pyoxidizer-users mailing list to report your experience, get in touch with other users, etc.

As a Developer

If you would like to contribute to the code behind PyOxidizer, you can do so using a standard GitHub workflow through the canonical project home at https://github.com/indygreg/PyOxidizer.

Please note that PyOxidizer’s maintainer can be quite busy from time to time. So please be patient. He will be patient with you.

The documentation around how to hack on the PyOxidizer codebase is a bit lacking. Sorry for that!

The most important command for contributors to know how to run is cargo run --bin pyoxidizer. This will compile the pyoxidizer executable program and run it. Use it like cargo run --bin pyoxidizer -- init ~/tmp/myapp to run pyoxidizer init ~/tmp/myapp for example.

The Cargo.toml in the root of the repository defines a Cargo workspace containing many crates. If you attempt to cargo build or cargo test, you will likely get errors, as different crates have different, conflicting build requirements. The oxidized-importer crate is particularly troublesome.

Try building/testing everything with cargo build --workspace --exclude oxidized-importer or cargo test --workspace --exclude oxidized-importer. Or just target the crate you want by adding the -p argument. e.g. cargo build -p pyembed or cargo test -p pyoxidizer.

Financial Contributions

If you would like to thank the PyOxidizer maintainer via a financial contribution, you can do so via GitHub Sponsors on his Patreon or via PayPal.

Financial contributions of any amount are appreciated. Please do not feel obligated to donate money: only donate if you are financially able and feel the maintainer deserves the reward for a job well done.