It’s another monthly burst of news about bors, the bot that tests your code before it becomes the master.
In the last month, we landed 12 PRs in the bors-ng repository.
- notriddle switched to using the GitHub App login flow, instead of a separate OAuth App
- mmun configured bors to infer CircleCI configuration, in the absence of a bors.toml file
- notriddle made bors error out if it’s configured to block on nothing
- notriddle started bors testing with MySQL as well as PostgreSQL
- jniles updated the README to identify bors as a GitHub App
- notriddle fixed the add-reviewer flow in some cases
- notriddle cleaned up the Heroku setup instructions
Want to see your name in this newsletter? Look at bors starters, a curated list of issues that are good for new contributors!
Who’s using bors?
This month’s featured user is pint. Pint is a Python package for dimensional analysis, doing arithmetic on numbers with units (like mass in kilograms, length in astronomical units, and volume in pints).
Your arithmetic can be written in natural-looking Python, since Pint overrides the mathematical operators.
>>> import pint >>> ureg = pint.UnitRegistry() >>> 3 * ureg.meter + 4 * ureg.cm <Quantity(3.04, 'meter')>
Pint has built-in support for asserting dimension types, so that unit errors cause the program to crash instead of giving meaningless results:
>>> import pint >>> import numpy as np >>> ureg = pint.UnitRegistry() >>> G = ureg("9.8 m s^-2") >>> @ureg.check('[length]') ... def pendulum_period(length): ... return 2*np.pi*np.sqrt(length/G) ... >>> pendulum_period(5 * ureg.seconds) pint.errors.DimensionalityError: Cannot convert from '5 second' ([time]) to 'a quantity of' ([length]) >>> pendulum_period(5 * ureg.meters) <Quantity(4.48798950513, 'second')>
Also, Pint supports NumPy without wrapping or monkey-patching it.
Got any suggestions for next month? Post a comment on the June pull request.