Having a fine-tuned continuous integration environment is extremely valuable, even for small projects. Today, there is a wide variety of standalone projects and online Software-As-A-Service offerings that can super-streamline your everyday development tasks that can help you get your projects up and running like a pro. In this session, we'll look at how you can get the most out of:
* GitHub source code repository
* Packagist package manager for Composer
* Travis CI continuous integration service
* Coveralls code coverage service
* Scrutinizer static analysis service
* Box2 phar builder
* Sami api documentation generator
* ReadTheDocs online documentation reader service
* Composer scripts and projects for running local tests and builds After mastering these tools, you will be able to quickly set up a new php library project and use it in your Drupal modules.
Session presented at Stanford Drupal Camp: https://drupalcamp.stanford.edu/development-workflow-tools-open-source-php-libraries
6. HOWEVER, we also need:
● Collaboration
● Reproducibility
● Analysis of
○ Test coverage
○ Code Quality
○ Open Source License Compliance
● Documentation
10. Collaborate with other engineers across multiple branches.
Keep a record of all work done.
Integrate With All Of The Things.
Run tests and
other tasks.
Calculate test
coverage.
Analyze code
complexity.
Track dependency
versions and licenses.
Package manager
for composer.
Publish documentation
site from markdown.
19. ### Steps to reproduce
What did you do?
### Expected behavior
Tell us what should happen
### Actual behavior
Tell us what happens instead
### Overview
This pull request:
- [ ] Fixes a bug
- [ ] Adds a feature
- [ ] Breaks backwards compat
- [ ] Has tests covering changes
### Description
Any additional information.
.github/pull_request_template.md.github/issue_template.md
68. $ composer licenses
Name: consolidation/robo
Version: 1.x-dev
Licenses: MIT
Dependencies:
Name Version License
consolidation/annotated-command 2.4.3 MIT
consolidation/log 1.0.3 MIT
consolidation/output-formatters 3.1.7 MIT
container-interop/container-interop 1.2.0 MIT
guzzle/guzzle v3.8.1 MIT
guzzlehttp/psr7 1.4.1 MIT
jakubledl/dissect v1.0.1 unlicense
league/container 2.3.0 MIT
myclabs/deep-copy 1.6.0 MIT
patchwork/jsqueeze v2.0.5 (Apache-2.0 or GPL-2.0)
78. $ composer require victorjonsson/markdowndocs
$ vendor/bin/phpdoc-md phpdoc-md generate src > docs/api.md
$ git add docs/api.md
$ git commit -m "Add API documentation."
OH NO! It’s not automated!
● ReadTheDocs is a python service; it can’t run php.
● Can’t easily build from Travis and commit back to the
repository, as that would create a separate commit (not
part of the release, might cause another test run, etc.)