Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(prqlc)!: preprocess Jinja templates #1722

Merged
merged 5 commits into from
Feb 19, 2023
Merged

feat(prqlc)!: preprocess Jinja templates #1722

merged 5 commits into from
Feb 19, 2023

Conversation

aljazerzen
Copy link
Member

See demo repo: https://github.com/aljazerzen/jaffle_shop

Method

We start with Jinja-PRQL:

from {{ ref('my_model') }}

... parse Jinja and extract interpolations:

from _jinja_0

... compile PRQL:

SELECT * FROM _jinja_0

... replace anchor with original Jinja expressions:

SELECT * FROM {{ ref('my_model') }}

Minijinja

I used minijinja to lex the input into tokens. For that I had to fork the project so it exposes the lexer.

Problems

This approach does not work any jinja expression that would not produce exactly one output token. This includes for loops and if statements.

We could do full Jinja evaluation and provide all functions that are available in dbt, but set them to evaluate to anchor tokens just as I do now. This would make for loops work, but could not fully emulate evaluation that depends on any state that is provided by dbt.

I don't know much about dbt, should I'd ask for people to check it out and try to translate a few dbt projects.

Ideal solution

Have access to dbt state, i.e. compile PRQL after dbt evaluates the Jinja template.

@aljazerzen
Copy link
Member Author

Because of mentioned limitations, I'm leaning toward not merging this. If anyone does find any value in using this workflow on dbt projects, we can merge.

@max-sixty
Copy link
Member

I admittedly share your perspective re jinja.

Ideally we won't need jinja, because we have a structured language. That's also the perspective of the dbt folks.

Maybe this could be an advanced feature of s-strings? But outside of that, I think we should hold the language itself to the standard of producing the abstractions...

@aljazerzen
Copy link
Member Author

But because prql-compiler does not (and should not) know how to handle Jinja, ...

With this I meant not only for-loops and other evaluation, but even parsing Jinja templates.

from {{ ref('table') }}

... should be syntactically invalid PRQL code

@max-sixty
Copy link
Member

... should be syntactically invalid PRQL code

Oh yes I agree; we can remove Jinja, either now or when we get the proper dbt plugin up.

IIRC, in the end we don't even use it in dbt-prql — PRQL actually gets called after dbt has processed the jinja (which is why it doesn't work with all DBs). Though my memory is hazy and I'd need to confirm, depending on how quickly you think we should remove it!

@max-sixty
Copy link
Member

Let's discuss this on the next dev call. In some ways I think this is a very clever implementation. OTOH it does require everyone using it to have prqlc, which is a big disadvantage for teams, and have prqlc watch running.

It is also quite a nice demo of prqlc watch!

@max-sixty
Copy link
Member

Should we remove it from the pest grammar?

@aljazerzen aljazerzen enabled auto-merge (squash) February 19, 2023 20:24
@aljazerzen aljazerzen merged commit 9bd27f1 into main Feb 19, 2023
@aljazerzen aljazerzen deleted the prqlc-jinja branch February 19, 2023 20:27
@@ -18,9 +18,12 @@ color-eyre = "0.6.1"
env_logger = {version = "0.9.1", features = ["termcolor"]}
itertools = "0.10.3"
notify = "^5.1.0"
prql-compiler = {path = '..', version = "0.5.2" }
minijinja = {git = "https://github.com/aljazerzen/minijinja"}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aljazerzen we should release this as soon as possible; as at the moment we can't release PRQL...

max-sixty added a commit that referenced this pull request Mar 8, 2023
* chore: Add changelog template for 0.5.3 (#1892)

* feat!: loop (#1642)

* feat: Generate C header file for prql-lib (#1879)

* fix: website tests (#1894)

* feat(prqlc)!: preprocess Jinja templates (#1722)

* docs: Fix "LSP server" (#1896)

Fix "LSP server"

* docs: Added C header file (#1898)

Added C header file

* revert: "feat!: loop" (#1899)

Revert "feat!: loop (#1642)"

This reverts commit c79c5f1.

* revert: #1894 (#1901)

(Possibly fixing would have been easier, sorry if this is creating more work. I do think running all tests is worthwhile with this sort of wide-ranging change...)

* test: Refactor book snapshot tests (#1900)

* tests: Refactor book snapshot tests

Modularizes these tests, potentially in preparation for #1895

* revert: test: Refactor book snapshot tests (#1903)

Revert "test: Refactor book snapshot tests (#1900)"

This reverts commit abc61ff.

* build: Disable prql-elixir on Mac (#1902)

* build: Disable prql-elixir on Mac

A temporary pause on building `prql-elixir` on Mac, as it's causing some build caching issues, as described in the Readme

There are lots of ways to re-enable when we're ready.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* test: Refactor book snapshot tests (#1904)

* test: Refactor book snapshot tests

Re-reverting #1900

* build: use released minijinja (#1906)

* refactor: Options as &Options (#1905)

* refactor: Options as &Options

Not sure if this is worthwhile — I started in one function and then kept on replacing. Fine to close if not an improvement.

* .

* chore: pre-commit autoupdate (#1908)

updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.246 → v0.0.248](astral-sh/ruff-pre-commit@v0.0.246...v0.0.248)
- [github.com/pre-commit/mirrors-mypy: v1.0.0 → v1.0.1](pre-commit/mirrors-mypy@v1.0.0...v1.0.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* docs: Add a doc on `prql-elixir` on Mac (#1909)

* docs: Add a doc on `prql-elixir` on Mac

* ci: Run non-core tests through `test-all.yaml` (#1911)

* ci: Run non-core tests through `test-all.yaml`

As pointed out in https://github.com/PRQL/prql/pull/1860/files#r1112279486, we're currently running these tests twice — once because they're in the `test-all.yaml` workflow, which is called on `main` commits, and once because they're called on `main` themselves.

This disables them being called by `main` commits.

It's possible the existing mode is required to generate caches; let's try disabling and assess, though.

* build: Add PHP binding (#1860)

* Update README.md

* Create php.md

* Create .gitignore

* Add files via upload

* Update composer.json

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update composer.json

* Update Compiler.php

* Update prql-php/.gitignore

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Add composer lock file

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Create test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update composer.json

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update composer.json

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Uncomment unit tests

* Pass test dir as args

* Bootstrap the autoloader

* Build library and copy library file

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Update test-php.yaml

* Add more unit tests

* Update CompilerTest.php

* Update test-php.yaml

* Update CompilerTest.php

* Update test-php.yaml

* Add test-php

* Add concurrency thing

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Remove php-actions/phpunit

* Update .github/workflows/test-php.yaml

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: Maximilian Roos <m@maxroos.com>

* chore: Add PHP bindings changelog (#1914)

Add PHP bindings

* build: Package prqlc as .deb package (#1883)

* Create create-deb.yaml

* Update create-deb.yaml

* Update create-deb.yaml

* Update create-deb.yaml

* Add build-deb-package job

* Delete create-deb.yaml

* Update .github/workflows/release.yaml

* Update .github/workflows/release.yaml

* Update .github/workflows/release.yaml

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: Maximilian Roos <m@maxroos.com>

* test: Add `--quiet` to fast-loop taskfile command (#1916)

Otherwise cargo lists the name of every test; very verbose IMO.

* build: Package`prqlc` as Snap (#1881)

* Create snapcraft.yaml

* Update snapcraft.yaml

* Create publish-snap.yaml

* Update publish-snap.yaml

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update prql-compiler/snap/snapcraft.yaml

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update publish-snap.yaml

* Update snapcraft.yaml

* Update and rename prql-compiler/snap/snapcraft.yaml to snap/snapcraft.yaml

* Update publish-snap.yaml

* Update snap/snapcraft.yaml

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Add step to build and publish Snap

* Delete publish-snap.yaml

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* chore: Add changelog for #1883 (#1920)

As requested by @vanillajonathan.

@vanillajonathan one thing we could add for all these is to upload them as artifacts, as an easy way to have them published, using something like #1883 (comment).

It's less permanent than publishing them as release assets, but we can do the artifact upload now without changing our release process.

* chore: Add Snap package changelog (#1921)

* Add Snap package

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: Package prqlc as .rpm package (#1918)

* Create create-rpm.yaml

* Update create-rpm.yaml

* Add job for building .rpm package

* Delete create-rpm.yaml

* Update .github/workflows/release.yaml

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update .github/workflows/release.yaml

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update release.yaml

* Update .github/workflows/release.yaml

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update .github/workflows/release.yaml

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: Maximilian Roos <m@maxroos.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: Add .NET bindings (#1917)

* fix: Return a non-zero exit code for `prqlc compile` errors (#1924)

* fix: Return a non-zero exit code for `prqlc compile` errors

* .

* ci: Add `internal` & `devops` to semantic commit options (#1926)

* ci: Add `internal` & `devops` to semantic commit options

* internal: Enable auto-conversion of anyhow's error to `ErrorMessages` (#1913)

* internal: Implement std::error::Error for ErrorMessages (#1925)

* build: Bump dependencies (#1927)

* docs: Embolden `prqlc` description (#1919)

* revert: "build: Bump dependencies (#1927)" (#1935)

Revert "build: Bump dependencies (#1927)"

This reverts commit 7c317ad.

* devops: Add `web` to semantic commit categories (#1938)

* build: Re-revert #1935 (#1937)

Locked wasm-bindgen, I think because of a wasm-pack problem

* refactor: remove trailing whitespace (#1943)

* build: update prql-lib API (#1941)

* docs: prql-lib docs (#1945)

* fix: Panic with multiple terms after a `from` transform (#1928)

* chore: bump chumsky from 0.8.0 to 0.9.0 (#1723)

* build: Fix .NET bindings (#1946)

* Update CompilerTest.cs

* Update README.md

* Update PrqlCompilerOptions.cs

* Update PrqlCompiler.cs

* test: Disable PHP tests until aligned with `prql-lib` (#1947)

Just to ensure the build stays green as discussed in https://discord.com/channels/936728116712316989/1078360136978022510.

Thanks to @aljazerzen & @vanillajonathan for the changes.

* chore: Add `testng` to typos exclusion (#1948)

Required in #1929 (comment)

* docs: Add a note re reverting (#1952)

* revert: re-revert loop (#1951)

* revert: re-revert loop

Re-reverts #1899 & #1901

* fix book link

* ci: Only cache docker on main branch (#1953)

* revert: #1953 (#1954)

Revert "ci: Only cache docker on main branch (#1953)"

This reverts commit 5a382e7.

* refactor: Improve PHP bindings (#1949)

* chore: bump monaco-editor from 0.35.0 to 0.36.0 in /playground (#1955)

Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.35.0 to 0.36.0.
- [Release notes](https://github.com/microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](microsoft/monaco-editor@v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: monaco-editor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* internal: Defer to auto-conversion of some errors (#1931)

Follow-up to #1914

* web: Attempt to default to the SQL view in playground (#1939)

web: Default to the SQL view in playground

* feat: Add a `--format=yaml` option to `prqlc parse` (#1962)

* refactor: Refactor CLI arg handling (#1963)

* feat: Add a `--format=yaml` option to `prqlc parse`

* refactor: Refactor CLI arg handling

Based of #1912

* Update prql-compiler/prqlc/src/cli.rs

Co-authored-by: Aljaž Mur Eržen <aljazerzen@users.noreply.github.com>

* .

---------

Co-authored-by: Aljaž Mur Eržen <aljazerzen@users.noreply.github.com>

* chore: Add changelog for `--format` (#1968)

* chore: pre-commit autoupdate (#1975)

updates:
- [github.com/crate-ci/typos: typos-dict-v0.9.16 → v1.13.12](crate-ci/typos@typos-dict-v0.9.16...v1.13.12)
- [github.com/charliermarsh/ruff-pre-commit: v0.0.248 → v0.0.252](astral-sh/ruff-pre-commit@v0.0.248...v0.0.252)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: rewrite parser with chumsky (#1818)

* feat: parse and compile params (#1957)

* chore: Remove reference to pest grammar (#1977)

This was causing a build failure on main

* docs: update tree-sitter information (#1976)

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* ci: Move to `baptiste0928/cargo-install` for CI (#1979)

We were getting 404s on the existing action, and this is also faster once it's cached

* test: repro timestamp parsing issue (#1980)

* test: repro timestamp parsing issue

* Update prql-compiler/src/test.rs

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update prql-compiler/src/test.rs

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* chore: Fix typo (#1981)

* chore: Remove extraneous file (#1984)

I must have committed this by mistake

* fix: Attempt to fix the chumsky break on MacOS (#1978)

* fix: Attempt to fix the chumsky break on MacOS

* Re-enable workflows

* Excluding features from macos vs. wasm

* ci: Reset cache (#1986)

* test: Add test for query which blocks on chumsky (#1982)

* test: Add test for query which blocks on chumsky

Based on #1978.

It will block tests, probably until timeout

* Add a very minimal test

* chore: fix typo (#1988)

* refactor: Attempt to replace our `IntoOnly` with `ExactlyOne` (#1915)

* refactor: Attempt to replace our `IntoOnly` with `ExactlyOne`

Since I originally wrote this (and others have iterated on it), Itertools released `ExactlyOne`, which has better errors and reduces our custom code.

Unfortunately, I couldn't fix a rust type error, and spent too long on it already. So pushing what I have in case anyone wants to take a look.

There's also a decent chance that we replace the `parser.rs` code, in which case this type error becomes moot, and we can merge this anyway.

* remove IntoOnly completely - even from public API

* Allow multiple ErrorMessages in prql-python

---------

Co-authored-by: Aljaž Mur Eržen <aljaz.erzen@gmail.com>

* devops: Add `bacon` config file (#1989)

* devops: Add `bacon` config file

I recently discovered `bacon`, which is great (thanks to @snth for the link), and replaces some of the `watchexec` and `task` watch tasks.

This is an initial config file; it'll get some updates as folks use it more. I'll also update `development.md` once I've used it more (unless anyone gets there first...).

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix: Allow no `:` in timezones (#1991)

feat: Allow no `:` in timezones

Fixes issue in #1818

* fix: Fix sqlite datetime output (#1970)

* test: add test case for sqlite datetime

* feat: implement `is` helper for DialectHandler

* fix: use datetime functions for sqlite dialect

* style: fix lint issues

* Update prql-compiler/src/sql/gen_expr.rs

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update prql-compiler/src/sql/gen_expr.rs

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* Update prql-compiler/src/sql/gen_expr.rs

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* test: move tests to test.rs

* style: lint fix

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* feat: adjust panic to Java Exception (#1971)

* build: update to version 0.5.2

* feat: add Exception for method signature

* chore: add Exception for test method

* feat: adjust panic to Java Exception and add format method

* chore: use implicit return

* test: add compileWithError() to test compile with error

* feat: add dialect, format and signature parameters for toSql method

* chore: update toSql method signature

* lint: code polishing reported by clippy

* chore: code format

* docs: adjust signature for toSQL()

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* docs: format

* chore: introduce target dialect from https://github.com/PRQL/prql/blob/main/book/src/language-features/target.md

* chore: rename dialect to target

* Use target rather than dialect

* lint

* docs: add javadoc for toSql()

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Roos <m@maxroos.com>

* build: add very experimental MegaLinter config files (#1974)

* build: add MegaLinter config files

* build: disable errors of some linters

* chore: temporarily enable linting for all codes

* build: disable stylelint because of looong time required in CI

* chore: auto formatting

* build: disable all Linter errors that are currently causing errors

* build: disable markdown-link-chack's error

* build: disable megalinter's GitHub comment reporter

* chore: add comments in megalinter config files

* docs: add note about MegaLinter

* Revert "chore: temporarily enable linting for all codes"

This reverts commit a665b2d.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* build: fix workflow trigger not to run twice in PR from other branch

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: error code (#1993)

* feat: validate Options.target and allow sql.any (#1995)

* test: Fix Elixir test from #1995 (#1999)

* chore: bump @duckdb/duckdb-wasm from 1.21.0 to 1.24.0 in /playground (#2000)

Bumps [@duckdb/duckdb-wasm](https://github.com/duckdb/duckdb-wasm) from 1.21.0 to 1.24.0.
- [Release notes](https://github.com/duckdb/duckdb-wasm/releases)
- [Commits](duckdb/duckdb-wasm@v1.21.0...v1.24.0)

---
updated-dependencies:
- dependency-name: "@duckdb/duckdb-wasm"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: Allow unicode in identifiers (#2005)

* fix: Allow unicode in identifiers

Closes #2003. Thanks to @vanillajonathan for the report.

* test: convert a few unit tests to integration (#2006)

* feat: Improve lexer error recovery (#2002)

* feat: Improve lexer error recovery

Upgrade to Chumsky 0.9.2 and add back recovery

* feat: Improve error messages on EOI (#2008)

* feat: Improve lexer error recovery

Upgrade to Chumsky 0.9.2 and add back recovery

* feat: Improve error messages on EOI

Based on #2002 (comment)

Also simplifies a code block

* .

* devops: Adjust gitignore so `bacon` works with `insta` (#2011)

* feat: Improve error messages for EOI more (#2012)

Follow-up to #2008

* fix: Fix regression in @2012 (#2013)

Demonstrates we don't have enough tests for error messages! (And that I was not conscientious...)

* chore: bump sqlparser from 0.30.0 to 0.31.0 (#2001)

* chore: bump sqlparser from 0.30.0 to 0.31.0

Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs) from 0.30.0 to 0.31.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases)
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md)
- [Commits](apache/datafusion-sqlparser-rs@v0.30.0...v0.31.0)

---
updated-dependencies:
- dependency-name: sqlparser
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* .

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Roos <m@maxroos.com>
Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>

* docs: Add error messages to the book (#2015)

* docs: Add error messages to the book

This allows us to show and test error messages in the book, and adds an initial example.

Unfortunately the initial example doesn't have a great error message! So that's something we could work on.

It also updates the docs to add late binding — now functions support that!

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* .

* .

* .

* .

* .

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: Remove double-negatives (#2007)

* docs: update changelog about sql.any (#2017)

* feat: upper and lower function (#2019)

* docs: fix website landing page (#2021)

* chore: Fix typo in changelog (#2023)

* test: Test formatted examples can compile (#2016)

* docs: Add error messages to the book

This allows us to show and test error messages in the book, and adds an initial example.

Unfortunately the initial example doesn't have a great error message! So that's something we could work on.

It also updates the docs to add late binding — now functions support that!

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* .

* .

* .

* .

* .

* test: Test formatted examples can compile

We remove the snapshot output of them all -- even having written these, I was getting confused what all the snapshots were. And we don't use them at all. I added a TODO in the code for a good design if we could make progress on the autoformatter.

* Revert ""

This reverts commit 1937692.

* clean up merge diff

* .

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: add definitions for devcontainer base image (#2025)

* build: add definitions for devcontainer base image

* build: split install-cargo-tools task to another Taskfile

* build: fix concurrency of devcontainer.yaml (#2027)

* build: fix docker build workflows (#2028)

* build: always build amd64 and arm64

* build: fix copying Taskfile

* chore: bump base image version and pin to bullseye

* build: try only build arm64

* build: build amd64 only for now

* chore: pre-commit autoupdate (#2032)

updates:
- [github.com/crate-ci/typos: v1.13.12 → v1.13.18](crate-ci/typos@v1.13.12...v1.13.18)
- [github.com/pre-commit/mirrors-prettier: v3.0.0-alpha.4 → v3.0.0-alpha.6](pre-commit/mirrors-prettier@v3.0.0-alpha.4...v3.0.0-alpha.6)
- [github.com/charliermarsh/ruff-pre-commit: v0.0.252 → v0.0.254](astral-sh/ruff-pre-commit@v0.0.252...v0.0.254)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* devops: Add shortcuts for insta in `bacon` (#2037)

* devops: Add shortcuts for insta in `bacon`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* devops: Sync bacon command with `test-rust` (#2038)

* devops: Sync bacon command with `test-rust`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat!: Rename `switch` to `case` (#2036)

* feat: Rename `switch` to `case`

In case `switch` is confusing, this switches `switch` for `case`. Hopefully the switch won't lead to a case of confusion; or we can case the decision again.

* build: add basic devcontainer.json (for Rust, JavaScript, Python) (#1893)

* chore: add devcontainer config file

* build: add base devcontainer definition and build workflow file

* First cut, very low-quality draft for Dev Containers

I have written about 98% of what I know. Let's all contribute to strengthen this document. Thanks.

* Remove "will" in favor of direct action words.

It's almost always better to write documentation saying "thing X _does_ action Y" instead of "thing X will do action Y".

* Update using-dev-container.md

* Update using-dev-container.md

* Final editorial tweak for first-cut description

* Update to reflect @eitsupi's comments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* docs: some updates about VS Code Dev Containers

* docs: update title and add note

* docs: add a link to containers.dev

* docs: formatting lists

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* build: use only Dockerfile for base pre-built image

* ci: update workflow to use docker/build-push-action

* chore: autoformatting

* build: fix workflow trigger

* chore: fix path

* fix: fix GHA syntax

* fix: fix typo

* ci: use docker/metadata-action to prepare tags

* build: use pre-built image as devcontainer base image

* build: remove task for devcontainer setup for now

* chore: sync vscode extensions in devcontainer.json

* docs: some document update and install zsh completion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* docs: add the page about devcontainers to the book

* build: set postCreateCommand

* chore: fix version of go-task Dev Container Feature

* docs: remove superfluous comment

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: Rich Brown <richb.hanover@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* docs: Wordsmith #1893 (#2045)

* docs: Wordsmith #1893

* docs: Move task docs out of devcontainers (#2046)

These are good docs, but there's no reason for them to be here. They'd be good in the Taskfile, or very open to other suggestions

While I _really_ appreciate docs that we write (CC @richbhanover), it's important that they're focused, concise, and close to the code that they document -- because they also need to be maintained, and the project takes on that responsibility.

I really don't want to lose folks' generosity and ideas, but I'm going to start being a bit firmer on these sorts of things, because we're already starting to see some stale docs (#2044). There are other ways of writing things that have fewer guarantees of continued support -- blog posts, gists, etc.

* chore: Fix footnote in a doc (#2047)

* chore: Redirect case.html

This will fix the tests in #2040

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Aljaž Mur Eržen <aljazerzen@users.noreply.github.com>
Co-authored-by: Jonathan <vanillajonathan@users.noreply.github.com>
Co-authored-by: Rich Brown <richb.hanover@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Q <35303817+matthias-Q@users.noreply.github.com>
Co-authored-by: hbc <me@hbc.rocks>
Co-authored-by: eitsupi <50911393+eitsupi@users.noreply.github.com>
Co-authored-by: Aljaž Mur Eržen <aljaz.erzen@gmail.com>
Co-authored-by: Libing Chen <libing.chen@gmail.com>
Co-authored-by: Jelenkee <59470612+Jelenkee@users.noreply.github.com>
eitsupi added a commit to eitsupi/prql that referenced this pull request Apr 2, 2023
eitsupi added a commit to eitsupi/prql that referenced this pull request Apr 2, 2023
@eitsupi eitsupi mentioned this pull request May 26, 2024
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants