-
Notifications
You must be signed in to change notification settings - Fork 550
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
Update CHANGELOG.md for 0.52.0
release, add scripts/ instructions for ASF releases
#1479
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -85,38 +85,3 @@ jobs: | |
use-tool-cache: true | ||
- name: Test | ||
run: cargo test --all-features | ||
|
||
test-coverage: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Setup Rust Toolchain | ||
uses: ./.github/actions/setup-builder | ||
with: | ||
rust-version: stable | ||
- name: Install Tarpaulin | ||
uses: actions-rs/[email protected] | ||
with: | ||
crate: cargo-tarpaulin | ||
version: 0.14.2 | ||
use-tool-cache: true | ||
- name: Coverage | ||
run: cargo tarpaulin -o Lcov --output-dir ./coverage | ||
- name: Coveralls | ||
uses: coverallsapp/github-action@master | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
publish-crate: | ||
if: startsWith(github.ref, 'refs/tags/v0') | ||
runs-on: ubuntu-latest | ||
needs: [test] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Setup Rust Toolchain | ||
uses: ./.github/actions/setup-builder | ||
- name: Publish | ||
shell: bash | ||
run: | | ||
cargo publish --token ${{ secrets.CRATES_TOKEN }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,12 +18,12 @@ | |
[package] | ||
name = "sqlparser" | ||
description = "Extensible SQL Lexer and Parser with support for ANSI SQL:2011" | ||
version = "0.51.0" | ||
authors = ["Andy Grove <[email protected]>"] | ||
homepage = "https://github.com/sqlparser-rs/sqlparser-rs" | ||
version = "0.52.0" | ||
authors = ["Apache DataFusion <[email protected]>"] | ||
homepage = "https://github.com/apache/datafusion-sqlparser-rs" | ||
documentation = "https://docs.rs/sqlparser/" | ||
keywords = ["ansi", "sql", "lexer", "parser"] | ||
repository = "https://github.com/sqlparser-rs/sqlparser-rs" | ||
repository = "https://github.com/apache/datafusion-sqlparser-rs" | ||
license = "Apache-2.0" | ||
include = [ | ||
"src/**/*.rs", | ||
|
@@ -58,12 +58,6 @@ simple_logger = "5.0" | |
matches = "0.1" | ||
pretty_assertions = "1" | ||
|
||
[package.metadata.release] | ||
# Instruct `cargo release` to not run `cargo publish` locally: | ||
# https://github.com/sunng87/cargo-release/blob/master/docs/reference.md#config-fields | ||
# See docs/releasing.md for details. | ||
publish = false | ||
|
||
[package.metadata.docs.rs] | ||
# Document these features on docs.rs | ||
features = ["serde", "visitor"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
# sqlparser-rs 0.52.0 Changelog | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is made with an excellent script originally written by @andygrove for DataFusion ❤️ |
||
|
||
This release consists of 45 commits from 20 contributors. See credits at the end of this changelog for more information. | ||
|
||
**Implemented enhancements:** | ||
|
||
- feat: support explain options [#1426](https://github.com/apache/datafusion-sqlparser-rs/pull/1426) (kysshsy) | ||
- feat: adding Display implementation to DELETE and INSERT [#1427](https://github.com/apache/datafusion-sqlparser-rs/pull/1427) (seve-martinez) | ||
|
||
**Fixed bugs:** | ||
|
||
- fix: `maybe_parse` preventing parser from erroring on recursion limit [#1464](https://github.com/apache/datafusion-sqlparser-rs/pull/1464) (tomershaniii) | ||
|
||
**Other:** | ||
|
||
- Fix parsing of negative values [#1419](https://github.com/apache/datafusion-sqlparser-rs/pull/1419) (agscpp) | ||
- Allow to use ON CLUSTER cluster_name in TRUNCATE syntax [#1428](https://github.com/apache/datafusion-sqlparser-rs/pull/1428) (git-hulk) | ||
- chore: remove redundant punctuation [#1434](https://github.com/apache/datafusion-sqlparser-rs/pull/1434) (Fischer0522) | ||
- MS SQL Server: add support for IDENTITY column option [#1432](https://github.com/apache/datafusion-sqlparser-rs/pull/1432) (7phs) | ||
- Update to ASF header / add when missing [#1437](https://github.com/apache/datafusion-sqlparser-rs/pull/1437) (alamb) | ||
- Some small optimizations [#1424](https://github.com/apache/datafusion-sqlparser-rs/pull/1424) (exrok) | ||
- Fix `codestyle` CI check [#1438](https://github.com/apache/datafusion-sqlparser-rs/pull/1438) (alamb) | ||
- Implements CREATE POLICY syntax for PostgreSQL [#1440](https://github.com/apache/datafusion-sqlparser-rs/pull/1440) (git-hulk) | ||
- make `parse_expr_with_alias` public [#1444](https://github.com/apache/datafusion-sqlparser-rs/pull/1444) (Eason0729) | ||
- Implements DROP POLICY syntax for PostgreSQL [#1445](https://github.com/apache/datafusion-sqlparser-rs/pull/1445) (git-hulk) | ||
- Support `DROP DATABASE` [#1443](https://github.com/apache/datafusion-sqlparser-rs/pull/1443) (linhr) | ||
- Implements ALTER POLICY syntax for PostgreSQL [#1446](https://github.com/apache/datafusion-sqlparser-rs/pull/1446) (git-hulk) | ||
- Add a note discouraging new use of `dialect_of` macro [#1448](https://github.com/apache/datafusion-sqlparser-rs/pull/1448) (alamb) | ||
- Expand handling of `LIMIT 1, 2` handling to include sqlite [#1447](https://github.com/apache/datafusion-sqlparser-rs/pull/1447) (joshuawarner32) | ||
- Fix always uses CommentDef::WithoutEq while parsing the inline comment [#1453](https://github.com/apache/datafusion-sqlparser-rs/pull/1453) (git-hulk) | ||
- Add support for the LIKE ANY and ILIKE ANY pattern-matching condition [#1456](https://github.com/apache/datafusion-sqlparser-rs/pull/1456) (yoavcloud) | ||
- added ability to parse extension to parse_comment inside postgres dialect [#1451](https://github.com/apache/datafusion-sqlparser-rs/pull/1451) (MaxwellKnight) | ||
- Snowflake: support of views column comment [#1441](https://github.com/apache/datafusion-sqlparser-rs/pull/1441) (7phs) | ||
- Add SQLite "ON CONFLICT" column option in CREATE TABLE statements [#1442](https://github.com/apache/datafusion-sqlparser-rs/pull/1442) (nucccc) | ||
- Add support for ASC and DESC in CREATE TABLE column constraints for SQLite. [#1462](https://github.com/apache/datafusion-sqlparser-rs/pull/1462) (caldwell) | ||
- Add support of `EXPLAIN QUERY PLAN` syntax for SQLite dialect [#1458](https://github.com/apache/datafusion-sqlparser-rs/pull/1458) (git-hulk) | ||
- Add "DROP TYPE" support. [#1461](https://github.com/apache/datafusion-sqlparser-rs/pull/1461) (caldwell) | ||
- chore: Add asf.yaml [#1463](https://github.com/apache/datafusion-sqlparser-rs/pull/1463) (Xuanwo) | ||
- Add support for quantified comparison predicates (ALL/ANY/SOME) [#1459](https://github.com/apache/datafusion-sqlparser-rs/pull/1459) (yoavcloud) | ||
- MySQL dialect: Add support for hash comments [#1466](https://github.com/apache/datafusion-sqlparser-rs/pull/1466) (hansott) | ||
- Fix #1469 (SET ROLE regression) [#1474](https://github.com/apache/datafusion-sqlparser-rs/pull/1474) (lovasoa) | ||
- Add support for parsing MsSql alias with equals [#1467](https://github.com/apache/datafusion-sqlparser-rs/pull/1467) (yoavcloud) | ||
- Snowflake: support for extended column options in `CREATE TABLE` [#1454](https://github.com/apache/datafusion-sqlparser-rs/pull/1454) (7phs) | ||
- MsSQL TRY_CONVERT [#1477](https://github.com/apache/datafusion-sqlparser-rs/pull/1477) (yoavcloud) | ||
- Add PostgreSQL specfic "CREATE TYPE t AS ENUM (...)" support. [#1460](https://github.com/apache/datafusion-sqlparser-rs/pull/1460) (caldwell) | ||
- Fix build [#1483](https://github.com/apache/datafusion-sqlparser-rs/pull/1483) (yoavcloud) | ||
- Fix complex blocks warning when running clippy [#1488](https://github.com/apache/datafusion-sqlparser-rs/pull/1488) (git-hulk) | ||
- Add support for SHOW DATABASES/SCHEMAS/TABLES/VIEWS in Hive [#1487](https://github.com/apache/datafusion-sqlparser-rs/pull/1487) (yoavcloud) | ||
- Fix typo in `Dialect::supports_eq_alias_assigment` [#1478](https://github.com/apache/datafusion-sqlparser-rs/pull/1478) (alamb) | ||
- Add support for PostgreSQL `LISTEN/NOTIFY` syntax [#1485](https://github.com/apache/datafusion-sqlparser-rs/pull/1485) (wugeer) | ||
- Add support for TOP before ALL/DISTINCT [#1495](https://github.com/apache/datafusion-sqlparser-rs/pull/1495) (yoavcloud) | ||
- add support for `FOR ORDINALITY` and `NESTED` in JSON_TABLE [#1493](https://github.com/apache/datafusion-sqlparser-rs/pull/1493) (lovasoa) | ||
- Add Apache License to additional files [#1502](https://github.com/apache/datafusion-sqlparser-rs/pull/1502) (alamb) | ||
- Move CHANGELOG content [#1503](https://github.com/apache/datafusion-sqlparser-rs/pull/1503) (alamb) | ||
- improve support for T-SQL EXECUTE statements [#1490](https://github.com/apache/datafusion-sqlparser-rs/pull/1490) (lovasoa) | ||
|
||
## Credits | ||
|
||
Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor. | ||
|
||
``` | ||
8 Andrew Lamb | ||
7 Yoav Cohen | ||
7 hulk | ||
3 Aleksei Piianin | ||
3 David Caldwell | ||
3 Ophir LOJKINE | ||
1 Agaev Guseyn | ||
1 Eason | ||
1 Fischer | ||
1 Hans Ott | ||
1 Heran Lin | ||
1 Joshua Warner | ||
1 Maxwell Knight | ||
1 Seve Martinez | ||
1 Siyuan Huang | ||
1 Thomas Dagenais | ||
1 Xuanwo | ||
1 nucccc | ||
1 tomershaniii | ||
1 wugeer | ||
``` | ||
|
||
Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
<!--- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
## Process Overview | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is liberally based off (aka copy/paste) from https://github.com/apache/datafusion/blob/main/dev/release/README.md |
||
|
||
As part of the Apache governance model, official releases consist of signed | ||
source tarballs approved by the DataFusion PMC. | ||
|
||
We then use the code in the approved artifacts to release to crates.io. | ||
|
||
### Change Log | ||
|
||
We maintain a `CHANGELOG.md` so our users know what has been changed between releases. | ||
|
||
You will need a GitHub Personal Access Token for the following steps. Follow | ||
[these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) | ||
to generate one if you do not already have one. | ||
|
||
The changelog is generated using a Python script which needs `PyGitHub`, installed using pip: | ||
|
||
```shell | ||
pip3 install PyGitHub | ||
``` | ||
|
||
To generate the changelog, set the `GITHUB_TOKEN` environment variable to a valid token and then run the script | ||
providing two commit ids or tags followed by the version number of the release being created. The following | ||
example generates a change log of all changes between the first commit and the current HEAD revision. | ||
|
||
```shell | ||
export GITHUB_TOKEN=<your-token-here> | ||
python ./dev/release/generate-changelog.py v0.51.0 HEAD 0.52.0 > changelog/0.52.0.md | ||
``` | ||
|
||
This script creates a changelog from GitHub PRs based on the labels associated with them as well as looking for | ||
titles starting with `feat:`, `fix:`, or `docs:`. | ||
|
||
Add an entry to CHANGELOG.md for the new version | ||
|
||
## Prepare release commits and PR | ||
|
||
### Update Version | ||
|
||
Checkout the main commit to be released | ||
|
||
```shell | ||
git fetch apache | ||
git checkout apache/main | ||
``` | ||
|
||
Manually update the version in the root `Cargo.toml` to the release version (e.g. `0.52.0`). | ||
|
||
Lastly commit the version change: | ||
|
||
```shell | ||
git commit -a -m 'Update version' | ||
``` | ||
|
||
## Prepare release candidate artifacts | ||
|
||
After the PR gets merged, you are ready to create release artifacts from the | ||
merged commit. | ||
|
||
(Note you need to be a committer to run these scripts as they upload to the apache svn distribution servers) | ||
|
||
### Pick a Release Candidate (RC) number | ||
|
||
Pick numbers in sequential order, with `0` for `rc0`, `1` for `rc1`, etc. | ||
|
||
### Create git tag for the release: | ||
|
||
While the official release artifacts are signed tarballs and zip files, we also | ||
tag the commit it was created for convenience and code archaeology. | ||
|
||
Using a string such as `v0.52.0` as the `<version>`, create and push the tag by running these commands: | ||
|
||
For example to tag version `0.52.0` | ||
|
||
```shell | ||
git fetch apache | ||
git tag v0.52.0-rc1 apache/main | ||
# push tag to Github remote | ||
git push apache v0.52.0-rc1 | ||
``` | ||
|
||
### Create, sign, and upload artifacts | ||
|
||
Run `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in previous steps: | ||
|
||
```shell | ||
GITHUB_TOKEN=<TOKEN> ./dev/release/create-tarball.sh 0.52.0 1 | ||
``` | ||
|
||
The `create-tarball.sh` script | ||
|
||
1. creates and uploads all release candidate artifacts to the [datafusion | ||
dev](https://dist.apache.org/repos/dist/dev/datafusion) location on the | ||
apache distribution svn server | ||
|
||
2. provide you an email template to | ||
send to [email protected] for release voting. | ||
|
||
### Vote on Release Candidate artifacts | ||
|
||
Send the email output from the script to [email protected]. | ||
|
||
For the release to become "official" it needs at least three PMC members to vote +1 on it. | ||
|
||
### Verifying Release Candidates | ||
|
||
The `dev/release/verify-release-candidate.sh` is a script in this repository that can assist in the verification process. Run it like: | ||
|
||
```shell | ||
./dev/release/verify-release-candidate.sh 0.52.0 1 | ||
``` | ||
|
||
#### If the release is not approved | ||
|
||
If the release is not approved, fix whatever the problem is, merge changelog | ||
changes into main if there is any and try again with the next RC number. | ||
|
||
## Finalize the release | ||
|
||
NOTE: steps in this section can only be done by PMC members. | ||
|
||
### After the release is approved | ||
|
||
Move artifacts to the release location in SVN, using the `release-tarball.sh` script: | ||
|
||
```shell | ||
./dev/release/release-tarball.sh 0.52.0 1 | ||
``` | ||
|
||
Congratulations! The release is now official! | ||
|
||
### Publish on Crates.io | ||
|
||
Only approved releases of the tarball should be published to | ||
crates.io, in order to conform to Apache Software Foundation | ||
governance standards. | ||
|
||
A DataFusion committer can publish this crate after an official project release has | ||
been made to crates.io using the following instructions. | ||
|
||
Follow [these | ||
instructions](https://doc.rust-lang.org/cargo/reference/publishing.html) to | ||
create an account and login to crates.io before asking to be added as an owner | ||
to the sqlparser DataFusion crates. | ||
|
||
Download and unpack the official release tarball | ||
|
||
Verify that the Cargo.toml in the tarball contains the correct version | ||
(e.g. `version = "0.52.0"`) and then publish the crates by running the following commands | ||
|
||
```shell | ||
cargo publish | ||
``` | ||
|
||
If necessary, also publish the `sqlparser_derive` crate: | ||
|
||
crates.io homepage: https://crates.io/crates/sqlparser_derive | ||
|
||
```shell | ||
(cd derive && cargo publish | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated to reflect apache author (sorry @andygrove !)