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

build: Add PHP binding #1860

Merged
merged 46 commits into from
Feb 20, 2023
Merged

build: Add PHP binding #1860

merged 46 commits into from
Feb 20, 2023

Conversation

vanillajonathan
Copy link
Collaborator

@vanillajonathan vanillajonathan commented Feb 17, 2023

This patch adds a PHP binding that uses the libprql_lib through PHP's Foreign Function Interface (FFI) extension.

Closes #1844

@vanillajonathan vanillajonathan changed the title Add PHP binding feat: Add PHP binding Feb 17, 2023
@vanillajonathan vanillajonathan mentioned this pull request Feb 17, 2023
Copy link
Member

@max-sixty max-sixty left a comment

Choose a reason for hiding this comment

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

Overall this looks great, thanks a lot @vanillajonathan !

We do need to add a test which runs in GitHub Actions, we add that for everything now. Would you be able to do that? We can use something like test-python.yaml as an example.

prql-php/.gitignore Outdated Show resolved Hide resolved
prql-php/README.md Show resolved Hide resolved
@vanillajonathan
Copy link
Collaborator Author

Overall this looks great, thanks a lot @vanillajonathan !

We do need to add a test which runs in GitHub Actions, we add that for everything now. Would you be able to do that? We can use something like test-python.yaml as an example.

I don't know how to do this, but it needs to run Composer which is a package manager for PHP which will install the the PHPUnit test framework which can be ran as ./vendor/bin/phpunit tests.

@max-sixty
Copy link
Member

OK. It does look like there lots of examples out there — e.g. https://github.com/php-actions/example-phpunit/blob/master/.github/workflows/ci.yml — does that help?

I appreciate that it might seem less fun than the code (?) But it does mean your contribution will live on forever! Whenever something changes in PRQL, the test confirms that this code still works. If you can run the test locally, getting it to run in GHA should be 10-15 mins maximum, and happy to help with questions if that's helpful.

@max-sixty
Copy link
Member

FYI looks like this might be causing the failure: php-actions/composer#95

We can run on just ubuntu in the meantime if that helps

@vanillajonathan
Copy link
Collaborator Author

vanillajonathan commented Feb 17, 2023

Thanks! I changed to only run on Ubuntu now and this seems to work a little better, it still fails, but at least now I get a better error message.

Building PHP latest with extensions: FFI ...
Composer could not find a composer.json file in /app
To initialize a project, please create a composer.json file. See https://getcomposer.org/basic-usage
Error: Process completed with exit code 1.

Okay now I managed to get Composer (package manager) working. Now for the unit tests...

@vanillajonathan
Copy link
Collaborator Author

Then I don't know how to get it inside there.

mkdir -p /app/prql-php will fix this error

It's unclear why it's looking for /app/prql-php/, I'm not sure that's a total solution...

Just tried that.

mkdir: cannot create directory ‘/app’: Permission denied

@max-sixty
Copy link
Member

max-sixty commented Feb 19, 2023

mkdir: cannot create directory ‘/app’: Permission denied

We need to create the app directory first! e.g. mkdir /app. Does that make sense?

It looks like we're still seeing errors because of the /app path. I'm not sure why it always goes to the /app path. Is this something to do with PHP? Do we see this behavior locally?

We could ask at https://github.com/php-actions/phpunit/issues if we can't figure it out.

@max-sixty
Copy link
Member

@vanillajonathan do I see it working? Great job!!

Let me know when you're ready and I'll have a final look over

@aljazerzen aljazerzen changed the title feat: Add PHP binding build: Add PHP binding Feb 20, 2023
@vanillajonathan
Copy link
Collaborator Author

Yes, it is working.

I had some problems, I used the php-actions/phpunit@v3 and when the unit tests ran it would complain that it couldn't find the library file even though I had confirmed that it indeed existed by running ls in the pipeline. It seems php-actions/phpunit@v3 was executing with the project root directory as context, so it would look for the library in src/ instead of prql-php/src/. So instead of using the php-actions/phpunit@v3 GitHub Action I now just run the unit tests via the shell instead just as I do on my local machine. This works. The php-actions/phpunit@v3 would probably work too if prql-php was in a separate repository like the demo-c-program repository.

Copy link
Member

@max-sixty max-sixty left a comment

Choose a reason for hiding this comment

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

Excellent! A couple of final clean-ups and then we can merge.

I know this has been quite the journey, thanks @vanillajonathan !

prql-php/tests/CompilerTest.php Show resolved Hide resolved
.github/workflows/test-php.yaml Outdated Show resolved Hide resolved
.github/workflows/test-php.yaml Outdated Show resolved Hide resolved
@vanillajonathan
Copy link
Collaborator Author

Excellent! A couple of final clean-ups and then we can merge.

I know this has been quite the journey, thanks @vanillajonathan !

Yeah, writing the PHP code was quick, fun and easy. The CI stuff, not so much. 😅️

@max-sixty
Copy link
Member

Yeah, writing the PHP code was quick, fun and easy. The CI stuff, not so much. 😅️

Yeah, this did end up being quite laborious for that. I'm surprised PHP isn't better supported by the ecosystem — generally these are as easy as adding an action and it works. But here it the action was worse than running a single command...

From our perspective, without the tests, it's very difficult to manage the project, particularly for things we're not familiar with, like PHP. So really appreciate your patience in pushing through.

@max-sixty
Copy link
Member

Merging! Further work could be to update prql-lib to use the latest API, and pushing that change through here.

@max-sixty max-sixty enabled auto-merge (squash) February 20, 2023 21:37
@max-sixty max-sixty merged commit 4a8b915 into PRQL:main Feb 20, 2023
@vanillajonathan vanillajonathan deleted the patch-1 branch February 20, 2023 21:47
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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>
Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Update .github/workflows/release.yaml

Co-authored-by: Maximilian Roos <[email protected]>

* Update release.yaml

* Update .github/workflows/release.yaml

Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>
Co-authored-by: Maximilian Roos <[email protected]>
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] <[email protected]>
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 <[email protected]>

* .

---------

Co-authored-by: Aljaž Mur Eržen <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Update prql-compiler/src/test.rs

Co-authored-by: Maximilian Roos <[email protected]>

---------

Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Maximilian Roos <[email protected]>

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

Co-authored-by: Maximilian Roos <[email protected]>

* test: move tests to test.rs

* style: lint fix

---------

Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Roos <[email protected]>

* 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 <[email protected]>
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] <[email protected]>
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] <[email protected]>

* .

---------

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

* 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 <[email protected]>
Co-authored-by: Rich Brown <[email protected]>
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] <[email protected]>
Co-authored-by: Aljaž Mur Eržen <[email protected]>
Co-authored-by: Jonathan <[email protected]>
Co-authored-by: Rich Brown <[email protected]>
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 <[email protected]>
Co-authored-by: hbc <[email protected]>
Co-authored-by: eitsupi <[email protected]>
Co-authored-by: Aljaž Mur Eržen <[email protected]>
Co-authored-by: Libing Chen <[email protected]>
Co-authored-by: Jelenkee <[email protected]>
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.

PHP bindings
2 participants