From Zero to Tested, Automated & Documented Open Source Packages
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.
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!
Why we use a version controlling system Basic Git setup. Pushing and pulling code Commits Tagging Signing work Branching, merging and rebasing How to write proper commit messages.
Composer setup Create your first Composer package composer.json Publishing packages on Packagist. Dependencies and autoloading Local composer packages
PHPDoc comments README.md 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
Signing Git commits and tags Trusting developers composer.lock
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.