Skip to main content

Contributing

Getting involved in Open Source​

With <3 to all our contributors and maintainers, Pact is the success it is today because of the hard work of many people.

Why get involved in Open Source anyway?​

Companies delivering closed source software, use staff from multiple disciplines in order to deliver a polished quality product. It may not seem like there is a natural fit in the open source scene, however I believe multi-disciplines are in short supply in OSS, and there are a number of areas where people can contribute and deliver benefits to open source, including to yourself, to the project, and to others.

The vision is to have a compatible Pact implementation in all the commonly used languages, and to raise the awareness of contract testing, empowering teams to deploy with confidence. Your help would be greatly appreciated!

Where can I add value in Open Source?​

Let me take you through a few ways you can get involved in Open Source more generally, before diving into how you can help in the Pact ecosystem:

  • User Support
  • Documentation
  • Translation and localisation
  • User experience design
  • Testing & QA
  • Development
  • Infrastructure
  • Advocacy
  • Marketing

So let's dive a little bit into each one of those

  • User Support – Being there to help users solve problems is something you may have already encountered with Stack Overflow, Slack/Discord/Gitter groups, and GitHub discussions. Get involved in more general groups like https://apisyouwonthate.com/ or https://www.ministryoftesting.com/ where you can talk about or just listen in to some of the organic conversations that happen around code, as it is all built by people, for people.
  • Documentation - The primary way to communicate with users, you can help out with small changes like a typo, help rewrite larger pieces, or add new content. Think of it as an open source wiki, and you are all the curators.
  • Translation and localisation – Just knowing a different language, even if you know nothing about the tool, can be incredibly valuable. Creating translations and localisation can rapidly increase the inclusivity and diversity of your project.
  • User experience design – Often the users of open source software are opaque to the creators of the projects, and the only avenue for conversation is usually via GitHub issues. We have seen human-centric and UX design principles play a pivotal role in improving user experiences in commercial projects, and helping feed that mindset into OSS projects can massively increase and broaden their appeal, and make the experience better for everyone.
  • Testing & QA – Tests provide some of the best living documentation, OSS code without good tests is a red-flag, but you might find the code/project incredibly useful. Adding tests, or even reviewing the existing and making sure they are fit for purpose is also valuable. You can get involved in beta testing, or early release programmes where you can try out new features before others and provide feedback, forming the projects development and helping build the tool you want.
  • Development – As Pact is a code first tool, I assume you all know how to code, but what about the architectural diagrams, the vision, the engineering principles? You can help instil order in the chaos by providing those who do want to code a path of least resistance. Developer experience is not just the users of the tools, but the makers as well.
  • Infrastructure – Open source projects are often more than code. The code may need to be hosted somewhere or have specific release pipelines to build systems. Thinking about how we monitor these systems usage and leverage multiple open source tools to help provide a unified view aids the maintainers of a project in helping it become more effective.
  • Advocacy – Maybe you think an open source tool is the best thing since sliced bread and you can’t stop yakking on about it? Tell someone, your friends, your colleagues, write a blog post, or do a 99-second talk at a conference. Get in touch with the authors of your tool and see how you can help them. You might have had success in implementing the tool/product and want to provide coaching and support. Some OSS programs have advocacy schemes where you can get some cool swag and help in all kinds of different areas.
  • Marketing – Let's face it, developers aren’t always the greatest marketers. We might have made the coolest tool known to man, but we silently stick it in a GitHub Gist. If it’s great, lets shout about it, but sometimes you just want to have your head down in the code. Open the doors to people with marketing backgrounds, help them build empathy with your developers, and understand their wants and needs. Maybe do a little pair programming with them. 😊 Bringing users to your OSS will lead to improvements in your code given Linus’ law is correct β€œgiven enough eyeballs, all bugs are shallow.”

If you are an engineer who writes open source software, some of this list may seem like extra work, which removes you from the dopamine hit of writing code. A good support network of multi-disciplined contributors and well-formed goals will aid in bringing in extra help and improve each of these areas, allowing individuals to concentrate on the part of open source that really matters to them, giving the platform the best chance of success.

As we see the proliferation of OSS bleed into our daily lives, I implore you to find the OS tools that you love, appreciate the amazing people you have met in your career from all walks of life, while improving the landscape. After all, we are all standing on the shoulders of giants. If you want to spread some of that hopefully new found enthusiasm for collaboration towards the Pact project, then read on.

Pact - How you can help​

There are a multitude of ways, and you don't need to be a code wizard to start, these are just a few, so if you don't see something you want to do, talk to us:

  • πŸ“™ Docs - Our documentation is the primary way to communicate to our users, you can help out with small changes like a typo, help rewrite larger pieces, or add new content. Think of it as a open source contract testing wiki, and you are all the curators.
  • πŸš€ Code - We have implementations across multiple languages, and not all of them are at feature parity. Sometimes you might need that feature, or you've found a bug. Every pact-foundation repository is open-source, and contains a contributing guide to help you get started. Maybe you are building your own Pact tooling, let us know, we would love to shout about it.
  • Roadmap / Feature Requests - The Pact roadmap is available on Canny, where you can see some of the teams current and upcoming priorities in the OSS space. You can request new features, or browse the list and vote/comment on ones you would love to see. See one that particularly resonates? You could help work on it, reach out via Slack and we can help guide you through your contribution.
  • Recipes - The community use our tools in a variety of different ways, and solve various challenges that others could benefit. Got something to share? Why not add a new recipe to the site?
  • Workshops - We created a number of workshops, across several languages. Is there a language implementation not covered in the workshop? Maybe you've created or seen some amazing workshops out there in the wild? Add it to the list, or if you are the author, you can discuss bringing your workshop under the Pact-foundation, if you feel all Pact users could benefit
  • Blogs, Videos & Articles - Articles about contract testing are appearing left, right and centre, I can't keep up. Make sure our reading list doesn't get dry, by adding your favourite content to the list
  • Events - Meetups, in person, it feels like a distant memory, but as the doors start opening again, and dinner is provided, people are beginning to flock outdoors. Have you got a meetup or event planned? Already had one and recorded it? You can add them to the list, and let us and the community know about it on Slack.
  • Helping those in the community - We know many of you in the community love sharing your contract testing knowledge with others, you can see the various places our users land for help, sometimes in GitHub issues, Stack overflow, or Slack. You are welcome to help them out whether you are new to Pact, or a seasoned pro, all questions, opinions and thoughts are welcome.
  • Pact champions - Are you like our co-founder Beth Skurrie, who decided that Pact idea was the best thing since sliced bread, and she hasn't stopped yacking on about it since. Want to share your knowledge, and build your social profile in the world of tech with a global platform? Please get in touch with me on Slack, we want to support the amazing work you do! If you love Pact, and want to help the world worry less about micro-service deployment, why not join us on our journey. Who knows where it might lead.

Summary​

As you can see from the above list, there are lots of areas that warrant attention. It’s like a garden, unless all the areas are tended too, it can quickly become unwieldly. Don’t worry though, no matter what your role is in your day-to-day job, you can add value to the Pact ecosystem and if you want to step outside of your comfort zone and try something new, then you will struggle to find a more welcoming group, you will shepherd you along the way. After all, we all started somewhere 😊

Read all this and still don't know where you go? Try out help section for some great steps to work through