Skip to content

Repository Guidelines

Project Structure

This repository contains two independent dbt editions. Keep all edition-specific code and documentation under its matching folder:

  • editions/Bigquery/: BigQuery online retail project, based on TheLook eCommerce public data.
  • editions/Snowflake/: Snowflake project, synthetic seeds, and setup/adaptation docs.
  • .github/workflows/: separate CI workflows for each edition.

Do not mix dbt profiles, dependencies, or generated artifacts between editions. Each edition has its own requirements.txt and dbt_project.yml.

Development Commands

Install dependencies from the edition directory with python -m pip install -r requirements.txt. Follow that edition's README for profile setup and run dbt commands from the same directory as its dbt_project.yml. BigQuery uses dbt debug and dbt build; Snowflake uses dbt debug, dbt seed, and dbt build from editions/Snowflake/kit/.

Style and Testing

Use two spaces for YAML indentation, descriptive lowercase snake_case names for SQL models, and concise Markdown instructions. Keep cleanup in staging/ and business logic in marts/. Add dbt schema tests for key constraints and relationships; dbt build runs models and tests in dependency order. BigQuery CI currently runs dbt parse without cloud credentials; a successful parse does not validate warehouse execution.

Commits and Pull Requests

Use concise imperative commit subjects (for example, Add BigQuery customer value mart). Pull requests should describe the user-facing change, identify which edition is affected, and state the validation performed. Include screenshots for dashboard or other visual changes.

Security and Data Handling

Never commit credentials, local profiles.yml files, or private customer data. Use environment variables and secret managers for credentials. Keep synthetic examples clearly labeled; review source dataset terms before redistributing public data. Exclude direct personal identifiers from curated example marts unless the use case requires them.