You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use [changie](https://changie.dev/) to automate `CHANGELOG` generation. For installation and format/command specifics, see the documentation.
4
+
5
+
### Quick Tour
6
+
7
+
- All new change entries get generated under `/.changes/unreleased` as a yaml file
8
+
-`header.tpl.md` contains the contents of the entire CHANGELOG file
9
+
-`.changie.yaml` contains the fields in a change, the format of a single change, as well as the format of the Contributors section for each version.
10
+
11
+
### Workflow
12
+
13
+
#### Daily workflow
14
+
Almost every code change we make associated with an issue will require a `CHANGELOG` entry. After you have created the PR in GitHub, run `changie new` and follow the command prompts to generate a yaml file with your change details. This only needs to be done once per PR.
15
+
16
+
The `changie new` command will ensure correct file format and file name. There is a one to one mapping of issues to changes. Multiple issues cannot be lumped into a single entry. If you make a mistake, the yaml file may be directly modified and saved as long as the format is preserved.
17
+
18
+
Note: If your PR has been cleared by the team as not needing a changelog entry, the `Skip Changelog - dbt-fusion` label may be put on the PR to bypass the GitHub action that blacks PRs from being merged when they are missing a `CHANGELOG` entry.
19
+
20
+
#### Prerelease Workflow
21
+
These commands batch up changes in `/.changes/unreleased` to be included in this prerelease and move those files to a directory named for the release version. The `--move-dir` will be created if it does not exist and is created in `/.changes`.
These commands batch up changes in `/.changes/unreleased` as well as `/.changes/<version>` to be included in this final release and delete all prereleases. This rolls all prereleases up into a single final release. All `yaml` files in `/unreleased` and `<version>` will be deleted at this point.
- Changie generates markdown files in the `.changes` directory that are parsed together with the `changie merge` command. Every time `changie merge` is run, it regenerates the entire file. For this reason, any changes made directly to `CHANGELOG.md` will be overwritten on the next run of `changie merge`.
50
+
- If changes need to be made to the `CHANGELOG.md`, make the changes to the relevant `<version>.md` file located in the `/.changes` directory. You will then run `changie merge` to regenerate the `CHANGELOG.MD`.
51
+
- Do not run `changie batch` again on released versions. Our final release workflow deletes all of the yaml files associated with individual changes. If for some reason modifications to the `CHANGELOG.md` are required after we've generated the final release `CHANGELOG.md`, the modifications need to be done manually to the `<version>.md` file in the `/.changes` directory.
52
+
- changie can modify, create and delete files depending on the command you run. This is expected. Be sure to commit everything that has been modified and deleted.
All notable changes to this project will be documented in this file.
3
+
4
+
- This file provides a full account of all changes to `dbt-fusion`
5
+
- Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
6
+
- "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
7
+
- Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie). For details on how to document a change, see [the contributing guide](../CONTRIBUTING.md#adding-a-changelog-entry)
All notable changes to this project will be documented in this file.
3
+
4
+
- This file provides a full account of all changes to `dbt-fusion`
5
+
- Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
6
+
- "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
7
+
- Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie). For details on how to document a change, see [the contributing guide](../CONTRIBUTING.md#adding-a-changelog-entry)
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+17-1Lines changed: 17 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,4 +33,20 @@ Code can be merged into the current development branch main by opening a pull re
33
33
34
34
Automated tests run via GitHub Actions. If you're a first-time contributor, all tests (including code checks and unit tests) will require a maintainer to approve. Changes in the dbt-fusion repository trigger integration tests against Postgres. dbt Labs also provides CI environments in which to test changes to other adapters, triggered by PRs in those adapters' repositories, as well as periodic maintenance checks of each adapter in concert with the latest dbt-fusion code changes.
35
35
36
-
Once all tests are passing and your PR has been approved, a dbt-fusion maintainer will merge your changes into the active development branch. And that's it! Happy developing 🎉
36
+
Once all tests are passing and your PR has been approved, a dbt-fusion maintainer will merge your changes into the active development branch. And that's it! Happy developing 🎉
37
+
38
+
## Adding a CHANGELOG Entry
39
+
40
+
We use [changie](https://changie.dev) to generate `CHANGELOG` entries. **Note:** Do not edit the `CHANGELOG.md` directly. Your modifications will be lost.
41
+
42
+
Follow the steps to [install `changie`](https://changie.dev/guide/installation/) for your system.
43
+
44
+
Once changie is installed and your PR is created for a new feature, simply run the following command and changie will walk you through the process of creating a changelog entry:
45
+
46
+
```shell
47
+
changie new
48
+
```
49
+
50
+
Commit the file that's created and your changelog entry is complete!
51
+
52
+
You don't need to worry about which `dbt-fusion` version your change will go into. Just create the changelog entry with `changie`, and open your PR against the `main` branch. All merged changes will be included in the next release of `dbt-fusion`. If a changelog is not required, a maintainer can add the label `Skip Changelog - dbt-fusion` to bypass this requirement.
Copy file name to clipboardExpand all lines: README.md
+23-25Lines changed: 23 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,34 +8,34 @@
8
8
9
9
This repo hosts components of the dbt Fusion engine, the foundation for future innovation in `dbt`. The dbt Fusion engine is written in Rust and is designed for speed, correctness, and has a native understanding of SQL across multiple data warehouse SQL dialects.
10
10
11
-
> [!IMPORTANT]
11
+
> [!IMPORTANT]
12
12
> **Note: the dbt Fusion Engine is in Beta!**
13
-
Bugs and missing functionality compared to dbt Core will be resolved continuously in the lead-up to a final release (see [this post](https://docs.getdbt.com/blog/dbt-fusion-engine-path-to-ga) for more details).
13
+
Bugs and missing functionality compared to dbt Core will be resolved continuously in the leadup to a final release (see [this post](https://docs.getdbt.com/blog/fusion-path-to-ga) for more details).
14
14
15
-
The dbt Fusion engine is a ground-up, first principles rewrite of the dbt Core execution engine, built to be interoperable with the standard dbt authoring layer. Fusion enforces some ambiguous areas of the authoring spec more strictly than dbt Core to ensure correctness (for example, dbt Core does not proactively validate most YAML configurations). Many of these discrepancies can be fixed automatically with the [dbt Autofix](https://github.com/dbt-labs/dbt-autofix) tool.
15
+
The dbt Fusion engine is a groundup, first principles rewrite of the dbt Core execution engine, built to be interoperable with the standard dbt authoring layer. Fusion enforces some ambiguous areas of the authoring spec more strictly than dbt Core to ensure correctness (for example, dbt Core does not proactively validate most YAML configurations). Many of these discrepancies can be fixed automatically with the [dbt Autofix](https://github.com/dbt-labs/dbt-autofix) tool.
16
16
17
17
Beyond conformance with dbt Core, Fusion also contains new SQL Comprehension capabilities, a language server, modern ADBC drivers for warehouse connections, and more. While dbt Core was written in Python, the dbt Fusion engine is written in Rust, and compiled to a single application binary.
18
18
19
-
You can install dbt-fusion onto your local machine, a docker container, or a machine in the cloud. It is designed for flexible installation, with no dependencies on other libraries. The only libraries that dbt Fusion will load are its corresponding database drivers.
19
+
You can install dbt-fusion onto your local machine, a docker container, or a machine in the cloud. It is designed for flexible installation, with no dependencies on other libraries. The only libraries that dbt Fusion will load are it's corresponding database drivers.
20
20
21
21
The dbt Fusion engine is being released to this repository incrementally, so, until this note is removed this repository contains only a subset of the crates that make the core of the engine work. These crates are published incrementally starting on May 28.
22
22
23
23
## Getting Started with the dbt Fusion engine
24
24
25
-
> [!TIP]
26
-
> You don't have to build this project from source to use the new dbt! We recommend using the precompiled binary with additional capabilities:
25
+
> [!TIP]
26
+
> You don't have to build this project from source to use the new dbt! We recommend using the precompiled binary with additional capabilities:
27
27
28
-
There are several ways to get started with Fusion (for more, see dbt Fusion's quickstart documentation [here](https://docs.getdbt.com/guides/fusion?step=1)):
29
-
1.**Download the dbt VS Code extension** - For most people the best experience. This will install the dbt fusion CLI and Language Server on your system - see the install guide [here](https://docs.getdbt.com/docs/install-dbt-extension).
30
-
2.**Install Fusion Directly**- Install just the fusion CLI with the command below or see dbt's documentation [here](https://docs.getdbt.com/docs/fusion/install-fusion)
28
+
There are several ways to get started with Fusion (for more, see dbt Fusion's quickstart documentation [here](https://docs.getdbt.com/guides/fusion?step=1))
29
+
1.**Download dbt the vs-code extension** - For most people the best experience. This will install the dbt fusion CLI and Language Server on your system - see the install guide [here](https://docs.getdbt.com/docs/install-dbt-extension).
30
+
2.**Install Fusion Directly** Install just the fusion CLI with the command below or see dbt's documentation [here](https://docs.getdbt.com/docs/fusion/install-fusion)
31
31
```bash
32
32
curl -fsSL https://public.cdn.getdbt.com/fs/install/install.sh | sh -s -- --update
33
33
```
34
34
3.**Build Fusion from Source** - See the *Compiling from Source* section below
35
35
36
36
37
37
### Supported Operating Systems and CPU Microarchitectures
38
-
Fusion & associated drivers are compiled for each CPU microarchitecture and operating system independently. This allows for hardware-level optimization.
38
+
Fusion & associated drivers are compiled for each CPU microarchitecture and operating system independently. This allows for hardwarelevel optimization.
39
39
40
40
Legend:
41
41
* 🟢 - Supported today
@@ -62,12 +62,12 @@ Legend:
62
62
### Top Level Components Released to Date
63
63
Releases of various Fusion components will be iterative as each component reaches maturity & readiness for contribution.
64
64
65
-
-[x]`dbt-jinja` - A Rust extension of mini-jinja to support dbt's jinja functions & other capabilities
65
+
-[x]`dbt-jinja` - All Rust extension of mini-jinja to support dbt's jinja functions & other capabilities
* Standalone distribution. No JVM, or Python required.
96
+
* Standalone distribution. No JVM, or python required.
99
97
* Automatic installation of dependencies, whether that's a dbt package, or database driver
100
98
* dbt code-signed & secure distributions
101
99
</details>
102
100
103
101
<details>
104
102
<summary><i>This repo doesn't have all of dbt's functionality, when will the rest come?</i></summary>
105
-
dbt Fusion's source code is being published as components are finalized. Please see the Timeline section above.
103
+
dbt Fusion's source code is being published as components are finalized. Please see the Timeline section above
106
104
</details>
107
105
108
106
<details>
@@ -119,7 +117,7 @@ Releases of various Fusion components will be iterative as each component reache
119
117
120
118
## Compiling from Source
121
119
122
-
The primary CLI in this repository is the `dbt-sa-cli`. To compile the CLI, you need the Rust toolchain.
120
+
The primary CLI in this repository is the `dbt-sa-cli`. To compile the CLI, you need the Rust toolchain.
123
121
124
122
Let's start with Rust, run the following command to install Rust on your machine:
125
123
@@ -153,9 +151,9 @@ Options:
153
151
...
154
152
```
155
153
156
-
Cargo is Rust's build system and package manager. If you're familiar with Python, pip would be a sufficient comparison. We'll use cargo to run commands to build the local `dbt-sa-cli` binary and run helper scripts via `cargo xtask`. More on that later.
154
+
Cargo is Rust's build system and package manager. If you're familiar with Python, pip would be a sufficient comparison. We'll use cargo to run command to build the local `dbt-sa-cli` binary and run helper scripts via `cargo xtask`. More on that later.
157
155
158
-
To build the binary locally, `cd` to this repo's directory and run:
156
+
To build the binary locally, `cd` to the this repo's directory and run:
159
157
160
158
```shell
161
159
cargo build
@@ -190,14 +188,14 @@ cd target/debug && pwd
190
188
To run tests, increase the stack size and use nextest.
191
189
192
190
```
193
-
RUST_MIN_STACK=8388608 cargo nextest run --no-fail-fast
191
+
RUST_MIN_STACK=8388608 cargo nextest run --no-fail-fast
194
192
```
195
193
196
194
# License
197
-
The dbt Fusion engine is a monorepo and contains more than one license. Most code is licensed under ELv2. For more, please see our [licenses](LICENSES.md) section.
195
+
The dbt Fusion engine is a monorepo and contains more than one License. Most code is licensed under ELv2. For more, please see our [licenses](LICENSES.md) section.
198
196
199
197
# Acknowledgments
200
-
*To the dbt community:* dbt the tool & dbt Labs the company would not be here without the incredible community of authors, contributors, practitioners, and enthusiasts. dbt Fusion is an evolution of that work & stands on the shoulders of what has come before.
198
+
*To the dbt community:* dbt the tool & dbt Labs the company would not be here without the incredible community of authors, contributors, practitioners, and enthusiasts. dbt Fusion is an evolution of that work & stands on the shoulders of what has come before.
201
199
202
200
*To the Arrow Community:* dbt Labs is committing fully to the Arrow ecosystem. Fusion exclusively uses the Arrow type system from drivers through adapters into the internals of the compiler & runtime.
0 commit comments