- enh: prompt for email if user forgot to include it to share results by email
- enh: add `--verbose` flag
- enh: add a global progress bar, hide other progress bars unless `--verbose` or `--debug` requested
- enh: clean up usages of `logger.{info,warning,...}` and `click.echo`
- feat: merge displayed reports of ec2 and redshift `isitfit cost analyze` commands
- enh: move pipeline of `cost optimize` (ec2, redshift) from cli.cost to cost.service similar to pipeline of `cost analyze`
- feat: move the display step of `cost optimize` from 2 separate pipelines (ec2, redshift), to one aggregator pipeline
- enh: gather all `isitfit cost analyze` code related to `ec2` in a single file `ec2_analyze.py`
- enh: same for `optimize` and `ec2` in `ec2_optimize.py`
- bugfix: when no redshift clusters yield optimizations, had a bug in the display step
- enh: gather `ec2TagFilter` and `Ec2Common` into `ec2_common.py`
- enh: gather code for `redshift_analyze.py` and `redshift_common.py`
- enh: gather code for `redshift_optimize.py`
- enh: rename the cloudtrail iterator classes + add functional tests
- bugfix: cloudtrail data was missing the event name + had the wrong region field name
- feat: add option `isitfit cost --ndays {analyze,optimize}` for users who want to run the numbers on the most recent n days
- enh: when pinging matomo, send values of options like `ndays`
- bugfix: `save-details` option was using `logger.info` whereas it should use `click.echo`
- enh: cloudtrail empty dataframe from `all region` to not set index
- feat: add migrations module, which will take care of running maintenance tasks required between upgrades
- enh: usage stats, gather options passed to `isitfit cost`
- enh: do not check version upgrade if command is `isitfit version`
- bugfix: merged ec2-redshift pipeline to display "no optimizations from ec2" if not available
- enh: use `/tmp/isitfit/` for the iterator region cache instead of `~/.isitfit`, since it's an expirable piece of data anyway
- enh: use `/tmp/isitfit/` folder as temp dir instead of throwing everything in `/tmp` and cluttering it
- enh: use `/tmp/isitfit/` for the ec2instances.info cache
- bugfix: if pypi.python.org is unreachable, just skip it silently instead of throwing an exception
- bugfix: `isitfit cost analyze --help` was prompting for `ndays`. fixed
- enh: instead of prompting twice about sharing by email, just prompt once with blank to skip
- bugfix: upgrade `matomo_sdk_py` to set the visitor ID = user ID when tracking usage stats
- enh: ping matomo specifically on users sharing results by email