From Zero to Tested, Automated & Documented Open Source Packages

Presented on2019-04-26

git push is only the start of publishing an open source software, and it takes a lot of personal and technical skills to create a successful open source project.
Tutorial Requirements:

If you would like to follow along (the presenter will also project to a screen), the following things will be necessary:

A Laptop, preferably with Git installed.
A Github account

If you have never published an open source project, or just starting out, you are the perfect fit! Knowing the very basics of Git version controlling system will help, but this talk is more about personal skills than the technical jargon, so feel free to attend!
What you'll learn from this tutorial:

Although you can freely distribute your code anyway you like, there are many established practices that can be overwhelming to newcomers. We will learn the workflow of an open source (PHP) software by creating a new package from scratch, all the way to publishing it for the world to see, including proper license, package meta data, Readme file, documentation, automated build process, package versioning, and everything that was once overwhelming to even to think about!
Version Controlling

Why we use a version controlling system
Basic Git setup.
Pushing and pulling code
Signing work
Branching, merging and rebasing
How to write proper commit messages.

Composer Packages

Composer setup
Create your first Composer package
Publishing packages on Packagist.
Dependencies and autoloading
Local composer packages


PHPDoc comments
Issue templates, Wiki articles, and documentation

Issues and Pull Requests

How to create an issue on a project
Pull requests
Contributing and collaborating with other open source projects

Code Security

Signing Git commits and tags
Trusting developers


PHPUnit 101
How to write proper tests
How to write testable code: Dependency injection, Mockups, etc


Continuously running tests
Building and testing on Travis CI

What you will leave with:

At the end of this tutorial, we will have basic skills with Git, the Composer/packagist ecosystem, using third party packages, automated tests, documentation, and other personal skills that would make you a responsible open source software maintainer!

You can download the slides from links below. Note that there are several animations in the slides, which won't appear in the PDF. If possible, use the PPTX version. You can alternately view it online from link below.

PPTX | PDF | View online