<commit_before># 1.0 - WIP

- **BREAKING CHANGE** Internal code for reporting status via Redis pub/sub has been removed, since it wasn't used for a long time.
- Greatly **increased performance** by avoiding redundant calls to Redis storage. Should help a lot with huge workflows spawning thousands of jobs. Previously each job loaded whole workflow instance when executed.
-  **BREAKING CHANGE** Gush is now based on ActiveJob instead of directly on Sidekiq, this allows programmers to use multiple backends, instead of just one. Including in-process or even synchronous backends. This implies following changes:
  - `Gushfile.rb` is now renamed to `Gushfile`
  - `gush` no longer knows or provides a way for starting background processes in its CLI (the `gush workers` command is now gone). This is now up to the developer.
  - `environment` option in configuration is no longer needed so was removed (it was Sidekiq specific)
-  **BREAKING CHANGE** - jobs are expected to have a `perform` method instead of `work` like in < 1.0.0 versions.
-  **BREAKING CHANGE** - `payloads` available for jobs is now an array of hashes, instead of a hash, this allows for a more flexible approach to reusing a single job in many situations. Previously payloads were grouped by predecessor's class name, so you were forced to hardcode that class name in its descendants' code.

# 0.4

- remove hard dependency on Yajl, so Gush can work with non-MRI Rubies ([#31](https://github.com/chaps-io/gush/pull/31) by [<NAME>](https://github.com/chaps-io/gush/pull/31))
<commit_msg>Rewrite CHANGELOG to be better<commit_after># Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 1.0.0 - [Unreleased]

### Added

-  **BREAKING CHANGE** Gush now uses ActiveJob instead of directly Sidekiq, this allows programmers to use multiple backends, instead of just one. Including in-process or even synchronous backends. See http://guides.rubyonrails.org/active_job_basics.html

### Fixed

- Fixed performance problems with unserializing jobs. This greatly **increased performance** by avoiding redundant calls to Redis storage. Should help a lot with huge workflows spawning thousands of jobs. Previously each job loaded whole workflow instance when executed.

### Changed

- **BREAKING CHANGE** `Gushfile.rb` is now renamed to `Gushfile`
- **BREAKING CHANGE** Internal code for reporting status via Redis pub/sub has been removed, since it wasn't used for a long time.
-  **BREAKING CHANGE** - jobs are expected to have a `perform` method instead of `work` like in < 1.0.0 versions.
-  **BREAKING CHANGE** - `payloads` method available inside jobs is now an array of hashes, instead of a hash, this allows for a more flexible approach to reusing a single job in many situations. Previously payloads were grouped by predecessor's class name, so you were forced to hardcode that class name in its descendants' code.

### Removed

- `gush workers` command is now removed. This is now up to the developer to start background processes depending on chosen ActiveJob adapter.
- `environment` was removed since it was no longer needed (it was Sidekiq specific)


## 0.4.0

### Removed

- remove hard dependency on Yajl, so Gush can work with non-MRI Rubies ([#31](https://github.com/chaps-io/gush/pull/31) by [<NAME>](https://github.com/chaps-io/gush/pull/31))

{'fraction_non_alphanumeric': 0.08380681818181818, 'fraction_numerical': 0.009659090909090909, 'mean_word_length': 4.302710843373494, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2297940', 'n_tokens_mistral': 1045, 'n_tokens_neox': 969, 'n_words': 479}