CHANGELOG.md
# Changelog
## [Unreleased]
## [0.30.0] - 2023-12-08
## [0.29.0] - 2023-12-08
## [0.28.0] - 2023-12-08
## [0.27.0] - 2023-12-07
- Upgrade pyyaml to 6.0.1
## [0.26.0] - 2023-08-25
- Upgrade dbt to 1.5.4
- Upgrade acryl-datahub to 0.10.4
## [0.25.3] - 2023-07-04
- Pinned Pydantic's version (transient dependency from Copier) as new major version breaks our CLI.
## [0.25.2] - 2023-06-16
### Fixed
- AirbyteFactory creating duplicated connections
## [0.25.1] - 2023-05-16
### Fixed
- Failing readthedocs documentation build resulting in empty pages
## [0.25.0] - 2023-05-15
### Added
- Ability to apply `disable_bucket_sync` due to limitations of the fsspec package [#101](https://github.com/getindata/data-pipelines-cli/issues/101) using `--disable-bucket-sync` flag
## [0.24.2] - 2023-04-14
- Added Airbyte integration documentation
## [0.24.1] - 2023-03-15
### Fixed
- `dp` commands failing when BI config was missing.
## [0.24.0] - 2022-12-16
- Airbyte integration
- `dp deploy` is able to add / update connections on Airbyte instance
- `dp deploy` is able to create DAG at the beggining of dbt builds that will execute ingestion tasks
- `dp deploy` accept additional attribute `auth-token` that can be used to authorize access to cloud services
- Bump packages
## [0.23.0] - 2022-10-19
## [0.22.1] - 2022-10-11
- Looker integration
- `dp compile` is able generate lookML project for Looker
- `dp deploy` is able to publish lookML codes in Looker's repo and deploy project.
## [0.22.0] - 2022-08-22
- `dp compile` default environment hes been set to `local`
- GitPython is not required anymore
- Installation documentation upgrade
## [0.21.0] - 2022-07-19
- Documentation improvements
## [0.20.1] - 2022-06-17
### Fixed
- `dp seed`, `dp run` and `dp test` no longer fail when we are not using git repository.
## [0.20.0] - 2022-05-04
- `--docker-args` has been added to `dp compile`
## [0.19.0] - 2022-04-25
### Added
- `dp seed` command acting as a wrapper for `dbt seed`.
## [0.18.0] - 2022-04-19
### Added
- `dp docs-serve` command acting as a wrapper for `dbt docs serve`.
## [0.17.0] - 2022-04-11
### Added
- `pip install data-pipelines-cli[ADAPTER_PROVIDER]` installs adapter alongside **dbt-core**, e.g. `pip install data-pipelines-cli[bigquery]`.
### Changed
- `dp compile` accepts additional command line argument `--docker-tag`, allowing for custom Docker tag instead of relying on Git commit SHA. Moreover, if `--docker-tag` is not provided, **dp** searches for tag in `build/dag/config/<ENV>/execution_env.yml`. If it is present instead of `<IMAGE_TAG>` to be replaced, **dp** chooses it over Git commit SHA.
## [0.16.0] - 2022-03-24
### Added
- `dp generate source-yaml` and `dp generate model-yaml` commands that automatically generate YAML schema files for project's sources or models, respectively (using [dbt-codegen](https://hub.getdbt.com/dbt-labs/codegen/latest/) or [dbt-profiler](https://hub.getdbt.com/data-mie/dbt_profiler/latest/) under the hood).
- `dp generate source-sql` command that generates SQL representing sources listed in `source.yml` (or a similar file) (again, with the help of [dbt-codegen](https://hub.getdbt.com/dbt-labs/codegen/latest/)).
## [0.15.2] - 2022-02-28
### Changed
- Bumped `dbt` to 1.0.3.
## [0.15.1] - 2022-02-28
### Fixed
- Pinned `MarkupSafe==2.0.1` to ensure that Jinja works.
## [0.15.0] - 2022-02-11
- Migration to dbt 1.0.1
## [0.14.0] - 2022-02-02
## [0.13.0] - 2022-02-01
## [0.12.0] - 2022-01-31
- `dp publish` will push generated sources to external git repo
## [0.11.0] - 2022-01-18
### Added
- `dp update` command
- `dp publish` command for creation of dbt package out of the project.
### Changed
- Docker response in `deploy` and `compile` gets printed as processed strings instead of plain dictionaries.
- `dp compile` parses content of `datahub.yml` and replaces Jinja variables in the form of `var` or `env_var`.
- `dags_path` is read from an enved `airflow.yml` file.
## [0.10.0] - 2022-01-12
### Changed
- Run `dbt deps` at the end of `dp prepare-env`.
### Fixed
- `dp run` and `dp test` are no longer pointing to `profiles.yml` instead of the directory containing it.
## [0.9.0] - 2022-01-03
### Added
- `--env` flag to `dp deploy`.
### Changed
- Docker repository URI gets read out of `build/config/{env}/k8s.yml`.
### Removed
- `--docker-repository-uri` and `--datahub-gms-uri` from `dp compile` and `dp deploy` commands.
- `dp compile` no longer replaces `<INGEST_ENDPOINT>` in `datahub.yml`, or `<DOCKER_REPOSITORY_URL>` in `k8s.yml`
## [0.8.0] - 2021-12-31
### Changed
- `dp init` and `dp create` automatically adds `.git` suffix to given template paths, if necessary.
- When reading dbt variables, global-scoped variables take precedence over project-scoped ones (it was another way around before).
- Address argument for `dp deploy` is no longer mandatory. It should be either placed in `airflow.yml` file as value of `dags_path` key, or provided with `--dags-path` flag.
## [0.7.0] - 2021-12-29
### Added
- Add documentation in the style of [Read the Docs](https://readthedocs.org/).
- Exception classes in `errors.py`, deriving from `DataPipelinesError` base exception class.
- Unit tests to massively improve code coverage.
- `--version` flag to **dp** command.
- Add `dp prepare-env` command that prepares local environment for standalone **dbt** (right now, it only generates and saves `profiles.yml` in `$HOME/.dbt`).
### Changed
- `dp compile`:
- `--env` option has a default value: `base`,
- `--datahub` is changed to `--datahub-gms-uri`, `--repository` is changed to `--docker-repository-uri`.
- `dp deploy`'s `--docker-push` is not a flag anymore and requires a Docker repository URI parameter; `--repository` got removed then.
- `dp run` and `dp test` run `dp compile` before actual **dbt** command.
- Functions raise exceptions instead of exiting using `sys.exit(1)`; `cli.cli()` entrypoint is expecting exception and exits only there.
- `dp deploy` raises an exception if there is no Docker image to push or `build/config/dag` directory does not exist.
- Rename `gcp` to `gcs` in requirements (now one should run `pip install data-pipelines-cli[gcs]`).
## [0.6.0] - 2021-12-16
### Modified
- **dp** saves generated `profiles.yml` in either `build/local` or `build/env_execution` directories. **dbt** gets executed with `env_execution` as the target.
## [0.5.1] - 2021-12-14
### Fixed
- `_dbt_compile` is no longer removing replaced `<IMAGE_TAG>`.
## [0.5.0] - 2021-12-14
### Added
- `echo_warning` function prints warning messages in yellow/orange color.
### Modified
- Docker image gets built at the end of `compile` command.
- **dbt**-related commands do not fail if no `$HOME/.dp.yml` exists (e.g., `dp run`).
### Removed
- Dropped `dbt-airflow-manifest-parser` dependency.
## [0.4.0] - 2021-12-13
### Added
- `dp run` and `dp test` commands.
- `dp clean` command for removing `build` and `target` directories.
- File synchronization tests for Google Cloud Storage using `gcp-storage-emulator`.
- Read vars from config files (`$HOME/.dp.yml`, `config/$ENV/dbt.yml`) and pass to `dbt`.
### Modified
- `profiles.yml` gets generated and saved in `build` directory in `dp compile`, instead of relying on a local one in the
main project directory.
- `dp dbt <command>` generates `profiles.yml` in `build` directory by default.
- `dp init` is expecting `config_path` argument to download config template with the help of the `copier` and save it in `$HOME/.dp.yml`.
- `dp template list` is renamed as `dp template-list`.
- `dp create` allows for providing extra argument called `template-path`, being either name of one of templates defined
in `.dp.yml` config file or direct link to Git repository.
### Removed
- Support for manually created `profiles.yml` in main project directory.
- `dp template new` command.
- `username` field from `$HOME/.dp.yml` file.
## [0.3.0] - 2021-12-06
- Run `dbt deps` alongside rest of `dbt` commands in `dp compile`
## [0.2.0] - 2021-12-03
- Add support for GCP and S3 syncing in `dp deploy`
## [0.1.2] - 2021-12-02
- Fix: do not use styled `click.secho` for Docker push response, as it may not be a `str`
## [0.1.1] - 2021-12-01
- Fix Docker SDK for Python's bug related to tagging, which prevented Docker from pushing images.
## [0.1.0] - 2021-12-01
### Added
- Draft of `dp init`, `dp create`, `dp template new`, `dp template list` and `dp dbt`
- Draft of `dp compile` and `dp deploy`
[Unreleased]: https://github.com/getindata/data-pipelines-cli/compare/0.30.0...HEAD
[0.30.0]: https://github.com/getindata/data-pipelines-cli/compare/0.29.0...0.30.0
[0.29.0]: https://github.com/getindata/data-pipelines-cli/compare/0.28.0...0.29.0
[0.28.0]: https://github.com/getindata/data-pipelines-cli/compare/0.27.0...0.28.0
[0.27.0]: https://github.com/getindata/data-pipelines-cli/compare/0.26.0...0.27.0
[0.26.0]: https://github.com/getindata/data-pipelines-cli/compare/0.25.3...0.26.0
[0.25.3]: https://github.com/getindata/data-pipelines-cli/compare/0.25.2...0.25.3
[0.25.2]: https://github.com/getindata/data-pipelines-cli/compare/0.25.1...0.25.2
[0.25.1]: https://github.com/getindata/data-pipelines-cli/compare/0.25.0...0.25.1
[0.25.0]: https://github.com/getindata/data-pipelines-cli/compare/0.24.2...0.25.0
[0.24.2]: https://github.com/getindata/data-pipelines-cli/compare/0.24.1...0.24.2
[0.24.1]: https://github.com/getindata/data-pipelines-cli/compare/0.24.0...0.24.1
[0.24.0]: https://github.com/getindata/data-pipelines-cli/compare/0.24.0...0.24.0
[0.23.0]: https://github.com/getindata/data-pipelines-cli/compare/0.22.1...0.23.0
[0.22.1]: https://github.com/getindata/data-pipelines-cli/compare/0.22.1...0.22.1
[0.22.0]: https://github.com/getindata/data-pipelines-cli/compare/0.21.0...0.22.0
[0.21.0]: https://github.com/getindata/data-pipelines-cli/compare/0.20.1...0.21.0
[0.20.1]: https://github.com/getindata/data-pipelines-cli/compare/0.20.0...0.20.1
[0.20.0]: https://github.com/getindata/data-pipelines-cli/compare/0.19.0...0.20.0
[0.19.0]: https://github.com/getindata/data-pipelines-cli/compare/0.18.0...0.19.0
[0.18.0]: https://github.com/getindata/data-pipelines-cli/compare/0.17.0...0.18.0
[0.17.0]: https://github.com/getindata/data-pipelines-cli/compare/0.16.0...0.17.0
[0.16.0]: https://github.com/getindata/data-pipelines-cli/compare/0.15.2...0.16.0
[0.15.2]: https://github.com/getindata/data-pipelines-cli/compare/0.15.1...0.15.2
[0.15.1]: https://github.com/getindata/data-pipelines-cli/compare/0.15.0...0.15.1
[0.15.0]: https://github.com/getindata/data-pipelines-cli/compare/0.14.0...0.15.0
[0.14.0]: https://github.com/getindata/data-pipelines-cli/compare/0.13.0...0.14.0
[0.13.0]: https://github.com/getindata/data-pipelines-cli/compare/0.12.0...0.13.0
[0.12.0]: https://github.com/getindata/data-pipelines-cli/compare/0.11.0...0.12.0
[0.11.0]: https://github.com/getindata/data-pipelines-cli/compare/0.10.0...0.11.0
[0.10.0]: https://github.com/getindata/data-pipelines-cli/compare/0.9.0...0.10.0
[0.9.0]: https://github.com/getindata/data-pipelines-cli/compare/0.8.0...0.9.0
[0.8.0]: https://github.com/getindata/data-pipelines-cli/compare/0.7.0...0.8.0
[0.7.0]: https://github.com/getindata/data-pipelines-cli/compare/0.6.0...0.7.0
[0.6.0]: https://github.com/getindata/data-pipelines-cli/compare/0.5.1...0.6.0
[0.5.1]: https://github.com/getindata/data-pipelines-cli/compare/0.5.0...0.5.1
[0.5.0]: https://github.com/getindata/data-pipelines-cli/compare/0.4.0...0.5.0
[0.4.0]: https://github.com/getindata/data-pipelines-cli/compare/0.3.0...0.4.0
[0.3.0]: https://github.com/getindata/data-pipelines-cli/compare/0.2.0...0.3.0
[0.2.0]: https://github.com/getindata/data-pipelines-cli/compare/0.1.2...0.2.0
[0.1.2]: https://github.com/getindata/data-pipelines-cli/compare/0.1.1...0.1.2
[0.1.1]: https://github.com/getindata/data-pipelines-cli/compare/0.1.0...0.1.1
[0.1.0]: https://github.com/getindata/data-pipelines-cli/compare/5df87160e660d372a52a3665fe79be2029089613...0.1.0