----------
New features
^^^^^^^^^^^^
- Now on PyPI! ``pip install boofuzz``
- API is now centralized so all classes are available at top level
``boofuzz.*``
- This makes it way easier to use. Everything can be used like
``boofuzz.MyClass`` instead of ``boofuzz.my_file.MyClass``.
- Added ``EzOutletReset`` class to support restarting devices using an
ezOutlet EZ-11b.
Backwards-incompatible
^^^^^^^^^^^^^^^^^^^^^^
- Target now only takes an ``ITargetConnection``. This separates
responsibilities and makes our code more flexible with different
kinds of connections.
Fixes
^^^^^
- Bugs fixed:
- ``helpers.udp_checksum`` was failing with oversized messages.
- Missing install requirements.
- Grammar and spelling.
- ``setup.py`` was previously installing around five mostly unwanted
packages. Fixed.
- Removed deprecated unit tests.
- Removed overly broad exception handling in Session.
- ``Checksum.render()`` for UDP was not handling dependencies
properly.
Back-end Improvements
^^^^^^^^^^^^^^^^^^^^^
This section took the most work. It has the least visible impact, but
all of the refactors enable new features, fixes, and unit tests.
- Primitives and Blocks:
- Created ``IFuzzable`` which properly defines interface for
``Block``, ``Request``, and all ``BasePrimitive`` classes.
- Made effectively private members actually private.
- Eliminated ``exhaust()`` function. It was used only once and was
primarily a convoluted break statement. Now it's gone. :)
- Split all block and primitive classes into separate files.
- Many Unit tests added.
Other
^^^^^
- Continuous integration with Travis is running!
- Doc organization improvements.
- Can now install with extras ``[dev]``