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.
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
Commits
Tagging
Signing work
Branching, merging and rebasing
How to write proper commit messages.
Composer Packages
Composer setup
Create your first Composer package
composer.json
Publishing packages on Packagist.
Dependencies and autoloading
Local composer packages
Documentation
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
Code Security
Signing Git commits and tags
Trusting developers
composer.lock
Testing
PHPUnit 101
How to write proper tests
How to write testable code: Dependency injection, Mockups, etc
Automation
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