Contribute

Snapcraft has a community from all over the world, and the Snapcraft team welcomes all contributions.

Contributing offers an opportunity to polish your technical skills, develop as a professional, and become involved in the growing open source community. Snapcraft contributors are also recognized in any releases that they work on.

All contributors should become familiar with these guides. They outline the expectations and practices for participating in the project.

Standards and expectations

The Starcraft team at Canonical sets the direction and priorities of Snapcraft. They take responsibility for its stewardship and health.

Before you contribute to Snapcraft, there are three documents for you to digest.

Ubuntu Code of Conduct

Projects governed by Canonical expect good conduct and excellence from every member. The specific principles are laid out in the Ubuntu Code of Conduct.

Canonical Contributor License Agreement

You retain your copyright and attribution rights of the code you contribute, provided you sign the Canonical Contributor License Agreement. Before committing any code, review its terms. If you agree and sign it, your code can be incorporated into the repository.

Open source license

Snapcraft is licensed under GPL-3.0.

Ways to contribute

Feedback and issues

If you find a bug or feature gap in Snapcraft, look for it in the project’s GitHub issues first. If you have fresh input, add your voice to the issue.

If the bug or feature doesn’t have an issue, we invite you to open one.

Test builds

Major features and bug fixes can take time to develop. We gladly invite you to test these builds.

Long-lived feature branches and PRs automatically create test builds of Snapcraft for the AMD64 and ARM64 platforms. The test builds are available as snaps in special test channels:

  • latest/edge/pr-<PR-number> for PR snaps

  • latest/edge/<branch-name> for feature branch snaps

To start, enable parallel snap instances on your host:

sudo snap set system experimental.parallel-instances=true

Once you have the PR or branch you’d like to test, download and run its build as an instance of Snapcraft:

snap install snapcraft_<instance> --channel <channel-name>
snapcraft_<instance>

Give the Snapcraft instance a unique name so that it doesn’t collide with any other instances on your host.

Canonical’s Open Documentation Academy

Canonical’s Open Documentation Academy (CODA) is a space where writers and developers give hands-on help and mentoring to anyone wanting to participate in open source. CODA coordinates documentation work for open-source projects from all over, including Snapcraft. It’s an initiative led by the documentation team at Canonical.

Joining the documentation efforts is an opportunity to grow and learn. You’ll practice technical writing and product testing, which are valuable personal and professional skills. You’ll have a chance to work very visibly with industry professionals and technical authors on interesting problems, and add to your professional portfolio.

If you’ve never contributed to open source, CODA is the best way to start. It provides:

  • A space to debut in the open source community

  • Guidance in choosing a first task in Snapcraft

  • Direct support for contributions in Snapcraft and other projects

  • Skill development in documentation and writing

To join, introduce yourself in the CODA Matrix channel or volunteer for a topic in the CODA task aggregator.