Work on Porter with us! 💖

✅ Are you interested in contributing to an open-source Go project?

🌈 Do you care about being in a welcoming, inclusive community?

🚀 Would you like to get into a project at the beginning and have an impact?

We are seeking out new contributors with the hopes of building up both casual contributors and enticing some of you into becoming reviewers and maintainers.

Carolyn Van Slyck
✨ Chief Emoji Offer
Co-creator of Porter

Getting Started

What is the project?

Porter is a command-line tool written in Go that implements the Cloud Native Application Bundle Specification. Bundles package up not just your application, but also the tools and logic needed to deploy and manage it.

There are a lot of ways to make a bundle. Porter is designed to make robust bundles with your existing tools and scripts from your pipeline. Already using helm, terraform and bash? Perfect! Porter glues that together for you into a CNAB bundle. Our goal is a great developer experience.

Porter uses the concept of mixins to build existing tools into bundles. Here is a demo that deploys to Digital Ocean and Kubernetes using the Terraform and Helm mixins.

Where should you start?

Every new contributor should read our Code of Conduct and use our Contributing Guide to understand what to expect when contributing to our repositories. The guide also covers the project’s code structure, makefile commands, how to preview documentation and other useful things to know.

There are good first issues for new contributors and help wanted issues for our other contributors.

  • good first issue has extra information to help you make your first contribution.
  • help wanted are issues suitable for someone who isn’t a maintainer and usually also has extra guidance.

What can you work on?

We need help with everything! 😊 Whether you are new to Go, or are a cloud-native gopher expert, we have stuff for you to do.

  • Add commands to the porter cli. This is work that never ends and is suitable for all levels of gophers.
  • Create a mixin! You can start use the Porter Skeletor repository as a template to start, along with the Mixin Developer Guide.
  • Coordinate between writing an upstream CNAB specification, such as security or dependencies, and implementing it in Porter.
  • Implement new runtimes so that Porter can work inside Kubernetes, and other virtualization providers.

The roadmap will give you a good idea of the larger features that we are working on right now. That may help you decide what you would like to work on after you have tackled an issue or two to learn how to contribute to Porter. If you would like to contribute regularly to a larger issue on the roadmap, reach out to a maintainer on Slack.

Who can be a maintainer?

Porter is not a Microsoft-only project. Anyone can not only contribute but work their way up the contribution ladder from contributor to maintainer to admin.

Sound like fun? 🙋🏽‍♀️ Join us!