Skip to content

Commit 8b11c35

Browse files
committed
Merge branch 'json_handler_docs' of github.com:OussamaSaoudi/delta-kernel-rs into json_handler_docs
2 parents f1e9ec4 + a16adfe commit 8b11c35

File tree

19 files changed

+365
-29
lines changed

19 files changed

+365
-29
lines changed

.github/pull_request_template.md

+13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ Thanks for sending a pull request! Here are some tips for you:
77
5. Be sure to keep the PR description updated to reflect all changes.
88
-->
99

10+
<!--
11+
PR title formatting:
12+
This project uses conventional commits: https://www.conventionalcommits.org/
13+
14+
Each PR corresponds to a commit on the `main` branch, with the title of the PR (typically) being
15+
used for the commit message on main. In order to ensure proper formatting in the CHANGELOG please
16+
ensure your PR title adheres to the conventional commit specification.
17+
18+
Examples:
19+
- new feature PR: "feat: new API for snapshot.update()"
20+
- bugfix PR: "fix: correctly apply DV in read-table example"
21+
-->
22+
1023
## What changes are proposed in this pull request?
1124
<!--
1225
Please clarify what changes you are proposing and why the changes are needed.

CHANGELOG.md

+34
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,39 @@
11
# Changelog
22

3+
## [v0.6.1](https://github.com/delta-io/delta-kernel-rs/tree/v0.6.1/) (2025-01-10)
4+
5+
[Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/v0.6.0...v0.6.1)
6+
7+
8+
### 🚀 Features / new APIs
9+
10+
1. New feature flag `default-engine-rustls` ([#572])
11+
12+
### 🐛 Bug Fixes
13+
14+
1. Allow partition value timestamp to be ISO8601 formatted string ([#622])
15+
2. Fix stderr output for handle tests ([#630])
16+
17+
### ⚙️ Chores/CI
18+
19+
1. Expand the arrow version range to allow arrow v54 ([#616])
20+
2. Update to CodeCov @v5 ([#608])
21+
22+
### Other
23+
24+
1. Fix msrv check by pinning `home` dependency ([#605])
25+
2. Add release script ([#636])
26+
27+
28+
[#605]: https://github.com/delta-io/delta-kernel-rs/pull/605
29+
[#608]: https://github.com/delta-io/delta-kernel-rs/pull/608
30+
[#622]: https://github.com/delta-io/delta-kernel-rs/pull/622
31+
[#630]: https://github.com/delta-io/delta-kernel-rs/pull/630
32+
[#572]: https://github.com/delta-io/delta-kernel-rs/pull/572
33+
[#616]: https://github.com/delta-io/delta-kernel-rs/pull/616
34+
[#636]: https://github.com/delta-io/delta-kernel-rs/pull/636
35+
36+
337
## [v0.6.0](https://github.com/delta-io/delta-kernel-rs/tree/v0.6.0/) (2024-12-17)
438

539
[Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/v0.5.0...v0.6.0)

Cargo.toml

+16-12
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,24 @@ license = "Apache-2.0"
2020
repository = "https://github.com/delta-io/delta-kernel-rs"
2121
readme = "README.md"
2222
rust-version = "1.80"
23-
version = "0.6.0"
23+
version = "0.6.1"
2424

2525
[workspace.dependencies]
26-
arrow = { version = ">=53, <54" }
27-
arrow-arith = { version = ">=53, <54" }
28-
arrow-array = { version = ">=53, <54" }
29-
arrow-buffer = { version = ">=53, <54" }
30-
arrow-cast = { version = ">=53, <54" }
31-
arrow-data = { version = ">=53, <54" }
32-
arrow-ord = { version = ">=53, <54" }
33-
arrow-json = { version = ">=53, <54" }
34-
arrow-select = { version = ">=53, <54" }
35-
arrow-schema = { version = ">=53, <54" }
36-
parquet = { version = ">=53, <54", features = ["object_store"] }
26+
# When changing the arrow version range, also modify ffi/Cargo.toml which has
27+
# its own arrow version ranges witeh modified features. Failure to do so will
28+
# result in compilation errors as two different sets of arrow dependencies may
29+
# be sourced
30+
arrow = { version = ">=53, <55" }
31+
arrow-arith = { version = ">=53, <55" }
32+
arrow-array = { version = ">=53, <55" }
33+
arrow-buffer = { version = ">=53, <55" }
34+
arrow-cast = { version = ">=53, <55" }
35+
arrow-data = { version = ">=53, <55" }
36+
arrow-ord = { version = ">=53, <55" }
37+
arrow-json = { version = ">=53, <55" }
38+
arrow-select = { version = ">=53, <55" }
39+
arrow-schema = { version = ">=53, <55" }
40+
parquet = { version = ">=53, <55", features = ["object_store"] }
3741
object_store = { version = ">=0.11, <0.12" }
3842
hdfs-native-object-store = "0.12.0"
3943
hdfs-native = "0.10.0"

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ consumer's own `Engine` trait, the kernel has a feature flag to enable a default
4343
```toml
4444
# fewer dependencies, requires consumer to implement Engine trait.
4545
# allows consumers to implement their own in-memory format
46-
delta_kernel = "0.6"
46+
delta_kernel = "0.6.1"
4747

4848
# or turn on the default engine, based on arrow
49-
delta_kernel = { version = "0.6", features = ["default-engine"] }
49+
delta_kernel = { version = "0.6.1", features = ["default-engine"] }
5050
```
5151

5252
### Feature flags

acceptance/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ readme.workspace = true
1010
version.workspace = true
1111
rust-version.workspace = true
1212

13+
[package.metadata.release]
14+
release = false
15+
1316
[dependencies]
1417
arrow-array = { workspace = true }
1518
arrow-cast = { workspace = true }

acceptance/src/data.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ pub fn sort_record_batch(batch: RecordBatch) -> DeltaResult<RecordBatch> {
6161
Ok(RecordBatch::try_new(batch.schema(), columns)?)
6262
}
6363

64-
// Ensure that two schema have the same field names, and dict_id/ordering.
64+
// Ensure that two schema have the same field names, and dict_is_ordered
6565
// We ignore:
6666
// - data type: This is checked already in `assert_columns_match`
6767
// - nullability: parquet marks many things as nullable that we don't in our schema
@@ -72,10 +72,6 @@ fn assert_schema_fields_match(schema: &Schema, golden: &Schema) {
7272
schema_field.name() == golden_field.name(),
7373
"Field names don't match"
7474
);
75-
assert!(
76-
schema_field.dict_id() == golden_field.dict_id(),
77-
"Field dict_id doesn't match"
78-
);
7975
assert!(
8076
schema_field.dict_is_ordered() == golden_field.dict_is_ordered(),
8177
"Field dict_is_ordered doesn't match"

cliff.toml

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# git-cliff configuration file. see https://git-cliff.org/docs/configuration
2+
3+
[changelog]
4+
header = """
5+
# Changelog\n
6+
"""
7+
# Tera template
8+
body = """
9+
## [v{{ version }}](https://github.com/delta-io/delta-kernel-rs/tree/v{{ version }}/) ({{ timestamp | date(format="%Y-%m-%d") }})
10+
11+
[Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/{{ previous.version }}...v{{ version }})
12+
13+
{% for group, commits in commits | group_by(attribute="group") %}
14+
### {{ group | striptags | trim | upper_first }}
15+
{% for commit in commits %}
16+
{{ loop.index }}. {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
17+
{{ commit.message | split(pat="\n") | first | upper_first | replace(from="(#", to="([#")\
18+
| replace(from="0)", to="0])")\
19+
| replace(from="1)", to="1])")\
20+
| replace(from="2)", to="2])")\
21+
| replace(from="3)", to="3])")\
22+
| replace(from="4)", to="4])")\
23+
| replace(from="5)", to="5])")\
24+
| replace(from="6)", to="6])")\
25+
| replace(from="7)", to="7])")\
26+
| replace(from="8)", to="8])")\
27+
| replace(from="9)", to="9])") }}\
28+
{% endfor %}
29+
{% endfor %}
30+
{% for commit in commits %}
31+
{% set message = commit.message | split(pat="\n") | first %}\
32+
{% set pr = message | split(pat="(#") | last | split(pat=")") | first %}\
33+
[#{{ pr }}]: https://github.com/delta-io/delta-kernel-rs/pull/{{ pr }}\
34+
{% endfor %}\n\n\n
35+
"""
36+
footer = """
37+
"""
38+
# remove the leading and trailing s
39+
trim = true
40+
postprocessors = []
41+
42+
[git]
43+
# parse the commits based on https://www.conventionalcommits.org
44+
conventional_commits = true
45+
# filter out the commits that are not conventional
46+
filter_unconventional = false
47+
# process each line of a commit as an individual commit
48+
split_commits = false
49+
# regex for preprocessing the commit messages
50+
commit_preprocessors = []
51+
# regex for parsing and grouping commits. note that e.g. both doc and docs are matched since we have
52+
# trim = true above.
53+
commit_parsers = [
54+
{ field = "github.pr_labels", pattern = "breaking-change", group = "<!-- 0 --> 🏗️ Breaking changes" },
55+
{ message = "^feat", group = "<!-- 1 -->🚀 Features / new APIs" },
56+
{ message = "^fix", group = "<!-- 2 -->🐛 Bug Fixes" },
57+
{ message = "^doc", group = "<!-- 3 -->📚 Documentation" },
58+
{ message = "^perf", group = "<!-- 4 -->⚡ Performance" },
59+
{ message = "^refactor", group = "<!-- 5 -->🚜 Refactor" },
60+
{ message = "^test", group = "<!-- 6 -->🧪 Testing" },
61+
{ message = "^chore|^ci", group = "<!-- 7 -->⚙️ Chores/CI" },
62+
{ message = "^revert", group = "<!-- 8 -->◀️ Revert" },
63+
{ message = ".*", group = "<!-- 9 -->Other" },
64+
]
65+
# filter out the commits that are not matched by commit parsers
66+
filter_commits = false
67+
# sort the tags topologically
68+
topo_order = false
69+
# sort the commits inside sections by oldest/newest order
70+
sort_commits = "oldest"

feature-tests/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ repository.workspace = true
88
readme.workspace = true
99
version.workspace = true
1010

11+
[package.metadata.release]
12+
release = false
13+
1114
[dependencies]
1215
delta_kernel = { path = "../kernel" }
1316

ffi-proc-macros/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ readme.workspace = true
1010
rust-version.workspace = true
1111
version.workspace = true
1212

13+
[package.metadata.release]
14+
release = false
15+
1316
[lib]
1417
proc-macro = true
1518

ffi/Cargo.toml

+7-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ version.workspace = true
1010
rust-version.workspace = true
1111
build = "build.rs"
1212

13+
[package.metadata.release]
14+
release = false
15+
1316
[lib]
1417
crate-type = ["lib", "cdylib", "staticlib"]
1518

@@ -21,16 +24,16 @@ url = "2"
2124
delta_kernel = { path = "../kernel", default-features = false, features = [
2225
"developer-visibility",
2326
] }
24-
delta_kernel_ffi_macros = { path = "../ffi-proc-macros", version = "0.6.0" }
27+
delta_kernel_ffi_macros = { path = "../ffi-proc-macros", version = "0.6.1" }
2528

2629
# used if we use the default engine to be able to move arrow data into the c-ffi format
27-
arrow-schema = { version = "53.0", default-features = false, features = [
30+
arrow-schema = { version = ">=53, <55", default-features = false, features = [
2831
"ffi",
2932
], optional = true }
30-
arrow-data = { version = "53.0", default-features = false, features = [
33+
arrow-data = { version = ">=53, <55", default-features = false, features = [
3134
"ffi",
3235
], optional = true }
33-
arrow-array = { version = "53.0", default-features = false, optional = true }
36+
arrow-array = { version = ">=53, <55", default-features = false, optional = true }
3437

3538
[build-dependencies]
3639
cbindgen = "0.27.0"

kernel/Cargo.toml

+8-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ rust-version.workspace = true
1515
[package.metadata.docs.rs]
1616
all-features = true
1717

18+
[package.metadata.release]
19+
pre-release-replacements = [
20+
{file="../README.md", search="delta_kernel = \"[a-z0-9\\.-]+\"", replace="delta_kernel = \"{{version}}\""},
21+
{file="../README.md", search="version = \"[a-z0-9\\.-]+\"", replace="version = \"{{version}}\""},
22+
]
23+
pre-release-hook = ["git", "cliff", "--repository", "../", "--config", "../cliff.toml", "--unreleased", "--prepend", "../CHANGELOG.md", "--tag", "{{version}}" ]
24+
1825
[dependencies]
1926
bytes = "1.7"
2027
chrono = { version = "0.4" }
@@ -32,7 +39,7 @@ uuid = "1.10.0"
3239
z85 = "3.0.5"
3340

3441
# bring in our derive macros
35-
delta_kernel_derive = { path = "../derive-macros", version = "0.6.0" }
42+
delta_kernel_derive = { path = "../derive-macros", version = "0.6.1" }
3643

3744
# used for developer-visibility
3845
visibility = "0.1.1"

kernel/examples/inspect-table/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ delta_kernel = { path = "../../../kernel", features = [
1515
] }
1616
env_logger = "0.11.3"
1717
url = "2"
18+
19+
[package.metadata.release]
20+
release = false

kernel/examples/read-table-changes/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ version = "0.1.0"
44
edition = "2021"
55
publish = false
66

7+
[package.metadata.release]
8+
release = false
9+
710
[dependencies]
811
arrow-array = { workspace = true }
912
arrow-schema = { workspace = true }

kernel/examples/read-table-multi-threaded/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ env_logger = "0.11.5"
1717
itertools = "0.13"
1818
spmc = "0.3.0"
1919
url = "2"
20+
21+
[package.metadata.release]
22+
release = false

kernel/examples/read-table-single-threaded/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ delta_kernel = { path = "../../../kernel", features = [
1616
env_logger = "0.11.5"
1717
itertools = "0.13"
1818
url = "2"
19+
20+
[package.metadata.release]
21+
release = false

kernel/tests/golden_tables.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ fn sort_record_batch(batch: RecordBatch) -> DeltaResult<RecordBatch> {
8989
Ok(RecordBatch::try_new(batch.schema(), columns)?)
9090
}
9191

92-
// Ensure that two sets of fields have the same names, and dict_id/ordering.
92+
// Ensure that two sets of fields have the same names, and dict_is_ordered
9393
// We ignore:
9494
// - data type: This is checked already in `assert_columns_match`
9595
// - nullability: parquet marks many things as nullable that we don't in our schema
@@ -103,10 +103,6 @@ fn assert_fields_match<'a>(
103103
actual_field.name() == expected_field.name(),
104104
"Field names don't match"
105105
);
106-
assert!(
107-
actual_field.dict_id() == expected_field.dict_id(),
108-
"Field dict_id doesn't match"
109-
);
110106
assert!(
111107
actual_field.dict_is_ordered() == expected_field.dict_is_ordered(),
112108
"Field dict_is_ordered doesn't match"

0 commit comments

Comments
 (0)