Advanced

How to Manage an Open Source Project

Managing a popular open source project can be daunting at first. How do we maintain all these issues, or automatically trigger our test suite for incoming PRs? And what's a useful workflow for brainstorming and adding new features?

In this series, together, we'll manage and maintain an open source forum, called Council, that we originally built from scratch here at Laracasts.

Start Series

Share this series on:

  • 01

    Episode 1 Run Time 5:18

    The GitHub Repository Free

    To begin this series, let's push our project to GitHub, so that anyone can install it - and even contribute to make it better.

  • 02

    Episode 2 Run Time 14:05

    Installation Instructions

    Our project will be of little use, if the general public doesn't know how to install it. Let's work through that entire process, while making installation notes for the project's readme file.

  • 03

    Episode 3 Run Time 2:52

    Resolving Our First Issue

    In the previous issue, we created our first GitHub issue: "Unconfirmed users should not be given the opportunity to prepare create forum threads." Let's resolve that very issue in this episode.

  • 04

    Episode 4 Run Time 16:09

    The Issue and PR Grind

    We already have a number of issues and pull requests up on GitHub. Let's get to work on these, as we learn the basic day-to-day workflow for maintaining any open source project.

  • 05

    Episode 5 Run Time 10:56

    Feature: Forum Reputation

    Naturally, a core component to managing any open source project is integrating new features and functionality. With that in mind, let's extend our forum with "user reputation." This way, for each participant in the forum, a number that indicates their participation and experience level may be assigned to them.

  • 06

    Episode 6 Run Time 8:23

    Feature: Forum Reputation Refactoring

    We now have a basic reputation system in place, but I think it could use some refactoring. At the moment, if somebody joined your team, how would they know where, and on what conditions, reputation is awarded to a user? It's not easy at that moment. Instead, let's elevate this concept of "reputation" to a first class citizen.

  • 07

    Episode 7 Run Time 3:57

    Feature: Displaying Reputation

    Now that our tests are returning green, let's display each user's reputation on the page, next to their respective usernames.

  • 08

    Episode 8 Run Time 15:54

    Feature: Reducing Reputation

    At the moment, any user can "game the system" by rapidly creating and deleting threads or replies. We must ensure that, if a user's thread or reply is deleted, we reduce their reputation to match.

  • 09

    Episode 9 Run Time 7:59

    Licensing and Code of Conducts

    Yeah, yeah, this one will be a little on the mundane side. Nonetheless, it needs to be addressed. Most successful open source projects will include, within the root of the project, the following three documents; LICENSE, CODE_OF_CONDUCT, and CONTRIBUTING. Let's do a quick overview in this episode.

  • 10

    Episode 10 Run Time 16:14

    Merging and Tweaking a Large PR

    Not all PRs amount to simple formatting and bug fixes. Often, you'll receive significant feature additions that affect dozens of files. In these cases, it's important to fully review, test, and even tweak the code before merging it into your codebase. Let's work through that process together.

  • 11

    Episode 11 Run Time 8:16

    Continuous Integration Free

    Let's set up a continuous integration server with Travis CI. This way, we can automate the process of building and testing our project each time a new commit is made, or a PR is presented.

  • 12

    Episode 12 Run Time 8:32

    StyleCI Free

    StyleCI is an excellent service for automating the process of analyzing and performing style-guide fixes. As an example, if your project conforms to PSR-2, but a pull request is submitted that doesn't adhere to that standard, wouldn't it be great if we could automatically fix those issues without nagging the contributor to do it manually?

*Series still in development. Check back often for updates.

You May Also Enjoy...

Here are some additional series that may be up your alley.