release v0.26.0 (dbt package v0.26.0) (#2347) - #2348
Open
github-actions[bot] wants to merge 857 commits into
Open
release v0.26.0 (dbt package v0.26.0) (#2347)#2348github-actions[bot] wants to merge 857 commits into
github-actions[bot] wants to merge 857 commits into
Conversation
This commit introduces HTML formatting for messages, including support for various blocks like headers, text, lists, tables, and expandable sections. It also adds comprehensive unit tests with corresponding HTML fixtures to ensure correct rendering. Co-authored-by: mika <mika@elementary-data.com>
- Added comprehensive test coverage for all block types (TableBlock, CodeBlock, DividerBlock, ActionsBlock) - Improved fact list styling: removed backgrounds/borders, added max-width:200px on labels - Standardized font-size to 14px across all blocks (fact lists, tables, expandable) - Removed ActionsBlock rendering (not supported in HTML emails, matches adaptive cards) - Made expandable blocks actually expandable using HTML5 details/summary elements - Added visual arrow indicators (▶/▼) to expandable blocks, properly hiding native browser triangles - Enhanced bullet lists with proper semantic HTML (ul/li elements) and automatic pattern detection - All 36 HTML formatter tests passing
CSS property syntax (colons and semicolons in style strings) triggers false positive flake8 E231 and E702 errors. Added noqa comments to suppress these warnings for legitimate CSS syntax within Python string literals.
- Add 800px max-width to main container for better readability - Update container padding to 24px top, 32px left/right, 32px bottom - Match all borders to status color (red/yellow/green) when color is set - Adjust left padding to 28px when colored border is applied (to account for 4px thicker left border) - Set fact list (questions/answers) left column to fixed 160px width - Add 8px extra top and bottom margin to fact list blocks - Add max-height (400px) and scroll to code blocks to prevent excessive vertical space - Fix expandable block arrow to rotate 90° when opened (▶ → ▼) with smooth transition - Update test fixtures to reflect all design changes - Add code_block_long.html fixture to demonstrate scrollable code blocks These changes only affect HTML email formatting and do not impact Slack (Block Kit) or Teams (Adaptive Cards) integrations.
- Corrected string formatting for CSS styles in HTML output - Simplified inline space handling logic in bullet lists - Added flake8 noqa comments to suppress style warnings for CSS syntax These changes enhance the maintainability of the HTML formatter without altering its functionality.
- Update fixtures for all formats (HTML, Adaptive Cards, Block Kit, Markdown, Text) - Reflects enhanced base test suite with additional blocks: - CodeBlock with multi-line code samples - DividerBlock for visual separation - TableBlock with headers and multiple columns - ActionsBlock with dropdown and user select components - Additional inline blocks (MentionBlock, InlineCodeBlock) - All 198 message format tests passing
- Extract all inline CSS styles to named class constants - Split large methods into smaller, focused helper methods - Add reusable helper methods for common patterns: - _skip_whitespace() for navigating inline blocks - _is_bullet_marker() for identifying bullet markers - _extract_bullet_parts() for parsing bullet list lines - _format_bullet_list_item() for formatting list items - Split block formatting into dedicated methods: - _format_header_block(), _format_code_block(), _format_divider_block() - _format_link_block(), _format_inline_code_block(), _format_mention_block() - _format_table_header(), _format_table_body(), _format_table_row() - _build_expandable_summary() for expandable block arrows No functional changes - all 36 HTML format tests passing All pre-commit checks passing (black, isort, flake8, mypy)
…l-formatter-81ef Create html email formatter
…ore-113-remove-deprecated-dags
…ted-dags Remove deprecated test recommendations macro
…th-single-quotes Fix: Properly quote database and schema identifiers for SQL compatibility
Added introductory section about Elementary OSS and its features.
Updated README to include a new image format and alignment.
…1.10.1 dbt-dremio 1.10.1 changed TABLE schema resolution to use +root_path instead of +schema. Without +root_path set, tables fall back to target.root_path directly, landing at 'elementary_tests' instead of 'elementary_tests.elementary'. The CLI profile hardcodes 'elementary_tests.elementary', causing 'object not found' errors. Adding +root_path: elementary makes tables land at the same path in both 1.10.0 and 1.10.1. Co-authored-by: Cursor <cursoragent@cursor.com>
fix(dremio): add +root_path to e2e project to fix CI with dbt-dremio 1.10.1
Co-authored-by: Cursor <cursoragent@cursor.com>
…d-report-bundle chore: update report bundle to v1.0.35
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Release v0.25.0 (dbt package v0.25.0)
* Replace sed with ruamel.yaml for packages.yml version bumps The sed-based version replacement in bump-version.yml had two issues: 1. It only matched 'version: X.Y.Z' patterns, missing the case where master has a git hash reference for dbt-data-reliability 2. It also matched commented-out version lines Replace the sed command for packages.yml with a Python script using ruamel.yaml (round-trip YAML parser) that preserves comments, quotes, flow-style, and indentation. The script handles both cases: - Updates an existing package version reference (one-line diff) - Replaces a git hash reference with a proper package version Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Remove comment-preservation logic from git-hash swap Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Itamar Hartstein <haritamar@gmail.com>
* Add Dependency Review GitHub Action Adds the dependency-review-action workflow to scan PRs for dependency changes that introduce known vulnerabilities. Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Set persist-credentials: false on checkout step Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Add workflow_dispatch trigger to dependency review Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Add license enforcement via allow-licenses Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Wire workflow_dispatch with base-ref/head-ref inputs Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Add fail-on-severity: high to dependency review workflow Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Expand license allowlist to handle compound SPDX expressions Add deny-licenses for AGPL, SSPL, BUSL, Elastic. Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Remove deny-licenses (cannot use both allow and deny) Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Block GPL, exempt specific packages with compound licenses Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Organize allow-licenses into commented sections Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Move license config to separate file with categorized comments Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Add license exceptions for new uv.lock dependencies Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Trim license exceptions to only packages in this repo's dependency tree Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…-file Create SECURITY.md
* Pin PyAthena below 3.35 for Athena CI compatibility. dbt-athena 1.10.x is incompatible with PyAthena 3.35's ExecuteOptions refactor; keep CI on 3.34 until dbt-athena ships the boto3 connection manager. Co-authored-by: Cursor <cursoragent@cursor.com> * Pin PyAthena via pyproject and shared CI constraints. Declare pyathena<3.35 in the athena extra instead of ad-hoc workflow pip installs, and reuse tests/ci/athena-constraints.txt for dbt-only jobs. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop redundant Athena constraints from test-warehouse CI. The pyproject.toml athena extra already pins pyathena when installing .[athena]; keep athena-constraints.txt for cleanup-stale-schemas only. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: arbiv <12132333+arbiv@users.noreply.github.com>
…-severity Dependabot alerts (#2310) * chore(deps): pin pyasn1 >=0.6.4 to fix high-severity Dependabot alerts Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * chore(deps): pin cryptography >=50.0.0 to fix high-severity Dependabot alert Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * chore(deps): drop upper caps on transitive security pins (idna, pyasn1, cryptography, urllib3) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * chore(deps): correct idna advisory reference to CVE-2026-45409 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…l-the-message-formats Add NEW icon to all message formats
…2324) * ci: set allow-unsafe-pr-checkout on fork PR checkout in test-warehouse Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * ci: don't persist git credentials for fork PR checkouts Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ps (#2305) * fix: interpret naive detected_at as UTC when rendering alert timestamps detected_at values loaded from the alerts table are naive datetimes stored in UTC. Passing them directly to datetime.astimezone() interprets them as local time, so on non-UTC hosts the alert "Time:" field showed the UTC value labeled with the local timezone, inconsistent with max_loaded_at in the same message which is correctly converted via convert_datetime_utc_str_to_timezone_str(). Attach UTC tzinfo to naive detected_at before converting; detected_at_utc is now always timezone-aware UTC. Timezone-aware inputs behave as before. Fixes #2304 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: use tz-aware fallback in BaseAlertsGroup.detected_at for alerts with missing timestamps Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * bugfix to _normalize_timezone_offset (fixes a broken test --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Itamar Hartstein <haritamar@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* Support dbt 2.0 / Fusion in the edr CLI - Auto-detect the installed dbt flavor (dbt-core 1.x / dbt-core 2.x / binary-only Fusion) via package metadata instead of importing dbt.version - Rename DbtFusionRunner to Dbt2Runner (dbt 2.0 is the Fusion engine); keep 'fusion' as a backward-compatible runner-method alias - Widen dbt-core constraint to <3.0.0 - Migrate the e2e dbt project to dbt 2.0-compatible syntax (dbt-autofix) - Add fusion + dbt-core 2.x CI targets on Fusion-supported warehouses Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Fix CI for dbt 2.x targets: jinja2 dep, config-strip ordering, API test skip Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Document E2E project's minimum dbt-core version Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Make e2e run validation status-based (dbt 2.0 reports ephemeral models as no-op) Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * CI: render e2e package path for dbt 2.x, surface run validation failures Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Add job timeout to warehouse test workflow Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Use a per-dbt-version seeds schema to avoid concurrent CI conflicts Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Read the seeds schema from TEST_SEEDS_SCHEMA in the Spark external seeder Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Pin dbt Fusion to 2.0.0rc205 in CI to avoid Snowflake hangs in rc212 Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Reject dbt 2.x/fusion with vertica in CI; quote seed schema in Spark seeder Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Repin fusion to rc212; use threads=1 for fusion/snowflake to avoid driver hang Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Apply snowflake threads=1 mitigation to dbt-core 2.x jobs too Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Support generic '2.x' dbt version that tracks the latest dbt-core 2.x release Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Fix 2.x version spec: prereleases order below 2.0.0 under PEP 440 Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Pass --threads 1 explicitly for dbt 2.x snowflake jobs (dbt-core 2.0.0b2 ignores profile threads) Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Exclude dbt-core 2.x snowflake job: 2.0.0b2 engine hangs even with threads 1 Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Retrigger CI (transient databricks connectivity timeout in send-report) Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Address review: unpin fusion, Python 3.11 globally, profile-level snowflake threads, drop redundant comments Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Remove custom seeds schema so seeds land in the target schema; fix fabric auth method Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Pin dbt-fabric<1.11 in CI Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Revert fabric authentication value to ServicePrincipal Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Remove leftover target-path comment Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> * Note v1-only runner methods; deprecation warning for DbtFusionRunner Co-Authored-By: Itamar Hartstein <haritamar@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
edr looks for profiles.yml in HOME/.dbt/ only, not in the current working directory first. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Itamar Hartstein <haritamar@gmail.com>
Co-authored-by: haritamar <11314965+haritamar@users.noreply.github.com>
| @staticmethod | ||
| def run(cmd: list[str], check: bool = True, **kw: object) -> subprocess.CompletedProcess: # type: ignore[type-arg] | ||
| """Run a command, printing it first.""" | ||
| print(f" -> {shlex.join(cmd)}") |
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Co-authored-by: haritamar 11314965+haritamar@users.noreply.github.com