Changelong — mode-ng 0.4.0 documentation

# Changelong

## 0.4.0 - 2022-07-04

release-by: Lanqing Huang (@lqhuang)

This version is still major in refactoring and tuning. There are serveral breaking changes. Some notable changes including:

1. `on_init` method of `Service` is removed from this version.

2. `want_seconds` function do not accept `None` as input.

3. This may most influenced changes: args `loglevel`, `logfile`, `loghandlers` of `Worker` has been renamed to `log_level`, `log_file` and `log_handlers` in order to follow `PEP8` style.

4. `annotations` function which is conflicting to same value in `__future__` is renamed to `reveal_annotations`.

And after updates of Python version and `mode-ng` itself, `ThreadService` is probably not stable yet for now. Please carefully test your codes, if you’re using it in production.

### Commits history

- [breaking] Update logging time format to timezone aware and format `extra` field in logger

- Make `want_seconds` raise `TypeError` when input is `None`

- Reorg cases for unit tests

- Update CoC guidelines and README

- [breaking] Improve logging module and setup args `loglevel` has been rename to `log_level`

- Improve implementations of singledispatch function

- Improve type hints for `signals.py` and reformat for `proxy.py`

- Fix circular imports and remove lazy importer

- Improve type hints for worker, services, etc

- [breaking] Remove `on_init` from now

- Improve notes for lazy loading

- Reconfig `.bumpversion.cfg`

- Tune flake8 config and adjust requirements content

- [breaking] Rename `annotations` to `reveal_annotations` due to conflict

- [breaking] Replace `Event` lock to std (asyncio) version. Need more tests in async tasks running in multiple threads.

- Remove `contexts.py` and improve type hints

- Adjust docs location about installation

## 0.3.1 - 2022-06-27

release-by: Lanqing Huang (@lqhuang)

No features and bugs updates, only project scaffold is improved.

- tests: Fix logging tests and simplified test requirements

- chore: Use `pyproject.toml` to declare metadata

- chore: Switch to `src` layout

## 0.3.0 - 2022-06-21

release-by: Lanqing Huang (@lqhuang)

Now you can output log to file and console simultaneously.

- Remove redundant config files

- Improve type hints

- Cleanup asyncio future utilities

- Improve code style and add an assertion

- Fix `logfile` only accepts `str` type and deprecate `sys.version` < (3, 8)

- Tune config for mypy and flake8

- Unify `setup.cfg` and `setup.py`

## 0.2.0 - 2021-11-21

release-by: Lanqing Huang (@lqhuang)

- Tune bumpversion config

- Add more readme content

- Deprecate custom `cached_property`

- (1) Fix timer wait twice before execution; (2) Add optional arg to exectue immediately

- Deprecate `mode.utils.compat` and `mode.utils.contexts`

- Deprecate `mode.utils.typing`

## 0.1.0 - 2021-11-16

release-by: Lanqing Huang (@lqhuang)

- Support python-3.10

- Friendly fork of `faust-streaming/mode`: Initial release

- Nothing changes yet

## Previous release - 2021-10-14

release-by: Taybin Rutkin (@taybin), Thomas Sarboni (@max-k)

- Support python-3.10

- Format with black and isort

- Add crontab timer from Faust (@lqhuang)

- Friendly fork of `ask/mode`: Initial release

- Move to new travis-ci.com domain

- Add tests on Python 3.8.1-3.8.6

- Fix broken tests

- Add Python 3.9 support