• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

paylogic / pip-accel / 55
92%

Build:
DEFAULT BRANCH: master
Ran 16 Nov 2014 06:08PM UTC
Jobs 3
Files 12
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
55

push

travis-ci

xolox
Refactor all the things!

On a more serious note:

* I originally wrote pip-accel as a collection of functions that took
  their configuration defaults from environment variables interpreted at
  module import time (yes, I know, very ugly, I learned my lesson on
  that one!)

* Then pip-accel became more and more complex and soon I was passing
  huge blobs of state back and forth between these "standalone"
  functions. Passing all of that state back and forth quickly became
  unwieldy but fixing it would require a big rewrite of pip-accel.

* I didn't feel up to the task of a big rewrite without more test
  coverage but I also didn't feel like extending the test suite because
  that had become a very ugly affair because of the environment
  variables.

* Given the points above you can see how I very uncomfortably painted
  myself into a corner on this one :-)

The solution was to sit down for a very long weekend and, well, refactor
all the things! (based on an actual planning, believe it or not :-)

The result:

* The "new" pip-accel is written in OOP and uses dependency injection to
  make sure that testers/embedders/extenders can comfortably inject
  their customized configuration into pip-accel without ugly tricks.

* Because pip-accel mirrors pip's command line interface there isn't any
  room to add custom command line options (a bit awkward). This explains
  why environment variables were used until now (a bit awkward as well
  :-). I've long wanted to add support for configuration files (as
  requested in issue #41) but that was non trivial to add before this
  refactoring. Based on the new pip-accel it should be more or less
  trivial to add support for configuration files! :-)

  See also issue #41 on GitHub:
  https://github.com/paylogic/pip-accel/issues/41

* I tried to improve the documentation as I went along because my goal
  is for pip-accel to be an easy to use API for pip and the binary
  distribution aspect that pip-accel adds to the mix.

* Based on the new OOP API I extended the test suite's coverage to
  include more error checking and the system package dependency
  handling. I will be improving the coverage further because it should
  be above 90% (in my local tests I now get a coverage of 84%).

* As a first (small) step towards solving issues like #38 pip-accel now
  includes more checks to verify whether `python setup.py bdist_dumb`
  properly generates the expected binary distribution archive. The new
  version will still report an error but that error should clearly
  explain what is going on. The next step is of course to see if we can
  prevent that error from occurring in the first place :-)

  See also issue #38 on GitHub:
  https://github.com/paylogic/pip-accel/issues/38

(end of biggest commit message ever)

687 of 798 relevant lines covered (86.09%)

2.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 55.1 16 Nov 2014 06:08PM UTC 0
85.46
Travis Job 55.1
2 55.2 16 Nov 2014 06:09PM UTC 0
85.46
Travis Job 55.2
3 55.3 16 Nov 2014 06:10PM UTC 0
85.96
Travis Job 55.3
Source Files on build 55
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #55
  • ffe1f19e on github
  • Prev Build on master (#53)
  • Next Build on master (#62)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc