This release changes a couples defaults to be more sensible, which is the only reason it is considered backward-incompatible. Otherwise, it has a couple handy logging-related features.
:warning: API Breaking Changes :warning:
- `need_task_ids` defaults to `False` instead of `True` in all `emit()` method calls. If you were previously storing the task IDs that your tuples were emitted to (which is pretty rare), then you must pass `need_task_ids=True` in your `emit()` calls. This should provide a little speed boost to most users, because we do not need to wait on a return message from Storm for every emitted tuple.
- Instead of having `pystorm.log.level` influence the root logger's level, only your component (and its `StormHandler` if you haven't set `pystorm.log.path`)'s levels will be set.
- When `pystorm.log.path` is not set, pystorm will no longer issue warning about how you should set it; instead, it will automatically set up a `StormHandler` and log everything directly to your Storm logs. This is really handy as in Storm 1.0 there's support through the UI for searching logs.
Features
- Added support for custom log filenames via `pystorm.log.file` (PR 25 — thanks kalmanolah)
- Added support for custom log format strings via `pystorm.log.format` (PR 33)
- Automatically log to Storm when `pystorm.log.path` is not set (PR 32)
- `__version__` is directly available under the `pystorm` namespace instead of just in `pystorm.version`
- `need_task_ids` defaults to `False`, which should provide a speed boost, as discussed above (Issue 29, PR 31)
Fixes
- Add missing `_reader_lock` in `msgpack_serializer`. This could have caused task IDs to not match with emits if using `need_task_ids`, multithreading, and the msgpack serializer. (PR 28)
- Simplified `emit` logic, so that we only request `_reader_lock` if `need_task_ids` is `True` (PR 23)
- Added missing `TicklessBatchingBolt` to `__all__` in `__init__.py`.