From 67b8b8944c47b0eb0c50a248d456755e53d38cd8 Mon Sep 17 00:00:00 2001 From: Emily Rockman Date: Tue, 16 Jan 2024 11:49:20 -0600 Subject: [PATCH] remove ard in favor of #28 --- docs/arch/ard-0001-build-tool.md | 78 -------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 docs/arch/ard-0001-build-tool.md diff --git a/docs/arch/ard-0001-build-tool.md b/docs/arch/ard-0001-build-tool.md deleted file mode 100644 index d8037df5..00000000 --- a/docs/arch/ard-0001-build-tool.md +++ /dev/null @@ -1,78 +0,0 @@ -# Build Tool - - -## Context - -We need to select a build tool for managing dependencies for, building, and distributing `dbt-common`. While tooling can vary, this repo can serve as an OSS template for other OSS at dbt Labs and beyond. - - -## Options - -- `setuptools` (`twine`, `build`) -- `hatch` -- `poetry` - - -### setuptools - -#### Pro's - -- most popular option -- supported by Python Packaging Authority -- build tool of record for existing internal adapters - -#### Con's - -- less flexible; forced to support backwards compatibility more so than other options -- no dependency management (manually add to `pyproject.toml`) - - -### hatch - -#### Pro's - -- supported by Python Packaging Authority -- already used by `dbt-semantic-layer` and `internal-actions` -- supports running tests against multiple versions of python locally (same functionality as `tox`) -- supports configuring workflows in `pyproject.toml` (same functionality as `make`) -- incorporates new PEP's quickly -- Manages python distributions itself without need of pyenv. This allows Windows and non-Windows users to both work locally in the same way. -- used by black, tox, pipx, Jupyter Notebook, Datadog - -#### Con's - -- far less popular than other options -- no dependency management (manually add to `pyproject.toml`) -- only one maintainer -- Hatch does not allow for the installation of specific patch release versions but rather only uses minor release granularity that tracks the latest patch release - - -### poetry - -#### Pro's - -- second most popular option, similar in popularity to `setuptools` -- dependency management (`poetry add "my-dependency"`) -- provides a lock file -- more than one maintainer - -#### Con's - -- incorporates new PEP's slowly - - -## Decision - -#### Selected: `hatch` - -This option aligns with `dbt-adapter` and `dbt-semantic-layer`, which minimizes confusion -for anyone working in multiple repositories. -`hatch` also replaces `tox` and `make`, which consolidates our toolset to make working locally and with CI more consistant. - - -## Consequences - -- [+] retire `tox` -- [+] retire `make` -- [-] write more detailed docs given lower familiarity -- [-] learning curve