GitHub user Kami opened a pull request:
https://github.com/apache/libcloud/pull/774
[WIP] Lint script for checking driver compliance to the base / standard
Libcloud API and quality checking
This pull request works on the great initial work and idea from @Jc2k
(#211).
## Background
I've talked with @tonybaloney the other day on how we could make the
library better and more user-friendly. Usually the biggest problem and
"unfriendliness" is when the driver doesn't fully comply to the base API. From
a high level perspective those small things (e.g. argument is missing an `ex_`
prefix, etc.) don't seen like a big deal, but they actually are (death by the
thousand cuts).
This causes problems because it makes building truly provider agnostic
applications harder and means that user needs to build another layer on top of
Libcloud which handles those differences and this makes the library less
attracting (hey, Libcloud is supposed to abstract those differences away!).
As of now, we do this "compliance against the base / standard API" checking
manually during code reviews. Obviously manual process is error prone and
wastes a tons of time which could be spend on reviewing things which actually
add value.
I think the first step for improving the quality is having a script and
automated check (linter or whatever you might call it) which runs on every
commit and reports all the violations.
## TODO
- [ ] Finish it up (still tons of work and refactoring to be done)
- [ ] Hook it up to the CI (start with the existing warnings not being
fatal)
- [ ] Start fixing and improving the existing code (not part of this PR)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/libcloud
api_compliance_and_quality_checking_script
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/libcloud/pull/774.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #774
----
commit 67fded3c1acc01b87e4f1b214dfbe40bc9b0249d
Author: John Carr <[email protected]>
Date: 2013-12-27T17:17:04Z
Proof of concept
commit 1f14cf58c9fb40bdc418badc6e1db4f98f3d5e4e
Author: Tomaz Muraus <[email protected]>
Date: 2016-04-23T13:38:53Z
Refactor script so it supports generating reports per driver, etc.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---