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

Merge upstream #1

Merged
merged 236 commits into from
Sep 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
6a401d4
feat: Add website layout (#130)
Xuanwo Dec 26, 2023
6375fb8
feat: Expression system. (#132)
liurenjie1024 Dec 26, 2023
70b49e4
website: Fix typo in book.toml (#136)
Xuanwo Dec 26, 2023
43697b9
Set ghp_path and ghp_branch properties (#138)
Fokko Dec 27, 2023
38d1977
chore: Upgrade toolchain to 1.75.0 (#140)
liurenjie1024 Dec 29, 2023
6fa2768
feat: Add roadmap and features status in README.md (#134)
liurenjie1024 Dec 29, 2023
7dfb0f2
Infra: Remove `publish:` section from `.asf.yaml` (#141)
Fokko Dec 29, 2023
87777d4
chore(deps): Bump peaceiris/actions-gh-pages from 3.9.2 to 3.9.3 (#143)
dependabot[bot] Jan 1, 2024
47e3ae7
chore(deps): Update opendal requirement from 0.43 to 0.44 (#142)
dependabot[bot] Jan 1, 2024
b703146
docs: Change homepage to rust.i.a.o (#146)
Xuanwo Jan 4, 2024
c91aeae
feat: Introduce basic file scan planning. (#129)
liurenjie1024 Jan 9, 2024
18f63fe
chore: Update contributing guide. (#163)
liurenjie1024 Jan 12, 2024
5d1a02d
chore: Update reader api status (#162)
liurenjie1024 Jan 12, 2024
35f3481
#154 : Add homepage to Cargo.toml (#160)
hiirrxnn Jan 13, 2024
bcf2c5c
Add formatting for toml files (#167)
Tyler-Sch Jan 19, 2024
1775c90
chore(deps): Update env_logger requirement from 0.10.0 to 0.11.0 (#170)
dependabot[bot] Jan 25, 2024
a9104dc
feat: init file writer interface (#168)
ZENOTME Jan 25, 2024
e4f55d1
fix: Manifest parsing should consider schema evolution. (#171)
liurenjie1024 Jan 25, 2024
21c933a
docs: Add release guide for iceberg-rust (#147)
Xuanwo Jan 26, 2024
d9d6cfc
fix: Ignore negative statistics value (#173)
liurenjie1024 Jan 26, 2024
be65c89
feat: Add user guide for website. (#178)
liurenjie1024 Jan 31, 2024
9768b0e
chore(deps): Update derive_builder requirement from 0.12.0 to 0.13.0 …
dependabot[bot] Jan 31, 2024
9ae9e13
Replace unwrap (#183)
odysa Feb 2, 2024
6929b79
feat: add handwritten serialize (#185)
odysa Feb 5, 2024
390cd51
Fix avro schema names for manifest and manifest_list (#182)
JanKaul Feb 5, 2024
09765db
feat: Bump hive_metastore to use pure rust thrift impl `volo` (#174)
Xuanwo Feb 5, 2024
e008105
feat: Bump version 0.2.0 to prepare for release. (#181)
liurenjie1024 Feb 6, 2024
149c7fa
fix: `default_partition_spec` using the `partion_spec_id` set (#190)
odysa Feb 6, 2024
645f9dd
Docs: Add required Cargo version to install guide (#191)
manuzhang Feb 7, 2024
adef9bd
chore(deps): Update opendal requirement from 0.44 to 0.45 (#195)
dependabot[bot] Feb 12, 2024
03f77b5
Smooth out release steps (#197)
Fokko Feb 16, 2024
e2ba1a4
refactor: remove support of manifest list format as a list of file pa…
Dysprosium0626 Feb 19, 2024
69a5f14
refactor: remove unwraps (#196)
odysa Feb 19, 2024
5c23124
Fix: add required rust version in cargo.toml (#193)
dp-0 Feb 19, 2024
07c9e0f
Fix the REST spec version (#198)
Fokko Feb 19, 2024
027f271
feat: Add Sync + Send to Catalog trait (#202)
ZhengLin-Li Feb 20, 2024
b6bbd1d
feat: Make thrift transport configurable (#194)
DeaconDesperado Feb 20, 2024
d251904
Add UnboundSortOrder (#115)
fqaiser94 Feb 20, 2024
8e3f950
ci: Add workflow for publish (#218)
Xuanwo Feb 22, 2024
fad60e1
ci: add workflow for cargo audit (#217)
sdd Feb 22, 2024
86784ee
docs: Add basic README for all crates (#215)
Xuanwo Feb 22, 2024
9f70c0d
Follow naming convention from Iceberg's Java and Python implementatio…
s-akhtar-baig Feb 22, 2024
49a9d86
doc: Add download page (#219)
liurenjie1024 Feb 23, 2024
61e6444
chore(deps): Update derive_builder requirement from 0.13.0 to 0.20.0 …
dependabot[bot] Feb 23, 2024
048eac8
test: add FileIO s3 test (#220)
odysa Feb 27, 2024
a20cda8
ci: Ignore RUSTSEC-2023-0071 for no actions to take (#222)
Xuanwo Feb 27, 2024
811fd1d
feat: Add expression builder and display. (#169)
liurenjie1024 Mar 1, 2024
cbf2873
chord: Add IssueNavigationLink for RustRover (#230)
stream2000 Mar 5, 2024
b248fd6
minor: Fix `double` API doc typo (#226)
viirya Mar 5, 2024
0fc0b0f
feat: add `UnboundPredicate::negate()` (#228)
sdd Mar 7, 2024
f61d475
fix: Remove deprecated methods to pass ci (#234)
liurenjie1024 Mar 7, 2024
8e4308d
Implement basic Parquet data file reading capability (#207)
sdd Mar 7, 2024
c7727e3
chore: doc-test as a target (#235)
liurenjie1024 Mar 9, 2024
0914f7a
feat: add parquet writer (#176)
ZENOTME Mar 9, 2024
3a947fa
Add hive metastore catalog support (part 1/2) (#237)
marvinlanhenke Mar 10, 2024
b8919cd
chore: Enable projects. (#247)
liurenjie1024 Mar 11, 2024
7a1cb12
Make plan_files as asynchronous stream (#243)
viirya Mar 11, 2024
83cdff4
feat: Implement binding expression (#231)
liurenjie1024 Mar 12, 2024
78a416d
Implement Display instead of ToString (#256)
lewiszlw Mar 13, 2024
71cd44f
add rewrite_not (#263)
marvinlanhenke Mar 14, 2024
39e7e9d
feat: init TableMetadataBuilder (#262)
ZENOTME Mar 14, 2024
3d08f04
Rename stat_table to table_exists in Catalog trait (#257)
lewiszlw Mar 14, 2024
6e29ca7
feat (static table): implement a read-only table struct loaded from m…
a-agmon Mar 15, 2024
d6703df
feat: implement OAuth for catalog rest client (#254)
TennyZhuang Mar 18, 2024
124a79b
docs: annotate precision and length to primitive types (#270)
waynexia Mar 19, 2024
76af889
build: Restore CI by making parquet and arrow version consistent (#280)
viirya Mar 19, 2024
6f85456
Metadata Serde + default partition_specs and sort_orders (#272)
marvinlanhenke Mar 19, 2024
c3c1f5f
feat: make optional oauth param configurable (#278)
himadripal Mar 20, 2024
f0effeb
fix: enable public access to ManifestEntry properties (#284)
a-agmon Mar 21, 2024
39aafdd
feat: Implement the conversion from Arrow Schema to Iceberg Schema (#…
viirya Mar 21, 2024
ce09b1e
Rename funtion name to add_manifests (#293)
viirya Mar 22, 2024
757ef4c
feat: modify `Bind` calls so that they don't consume `self` and inste…
sdd Mar 22, 2024
0629ad5
Add hive metastore catalog support (part 2/2) (#285)
marvinlanhenke Mar 22, 2024
1c2a20b
feat: implement prune column for schema (#261)
Dysprosium0626 Mar 24, 2024
a8f2939
chore(deps): Update reqwest requirement from ^0.11 to ^0.12 (#296)
dependabot[bot] Mar 24, 2024
fd9aa71
Glue Catalog: Basic Setup + Test Infra (1/3) (#294)
marvinlanhenke Mar 25, 2024
e196725
feat: rest client respect prefix prop (#297)
TennyZhuang Mar 26, 2024
ffd76eb
fix: missing properties (#303)
marvinlanhenke Mar 26, 2024
ce71aeb
fix: renaming FileScanTask.data_file to data_manifest_entry (#300)
a-agmon Mar 26, 2024
c67007a
feat: Make OAuth token server configurable (#305)
whynick1 Mar 26, 2024
2018ffc
feat: Glue Catalog - namespace operations (2/3) (#304)
marvinlanhenke Mar 27, 2024
bbc8578
feat: add transform_literal (#287)
ZENOTME Mar 27, 2024
94c9af0
feat: Complete predicate builders for all operators. (#276)
QuakeWang Mar 27, 2024
49117cb
feat: Support customized header in Rest catalog client (#306)
whynick1 Mar 27, 2024
162f16e
fix: chrono dep (#274)
odysa Mar 29, 2024
6e5a871
feat: Read Parquet data file with projection (#245)
viirya Apr 1, 2024
d57d91b
Fix day timestamp micro (#312)
marvinlanhenke Apr 1, 2024
3dcb3a9
feat: support uri redirect in rest client (#310)
TennyZhuang Apr 3, 2024
865f774
refine: seperate parquet reader and arrow convert (#313)
ZENOTME Apr 3, 2024
301a0af
Upgrade to rust-version 1.77.1 (#316)
marvinlanhenke Apr 3, 2024
f7bffb1
Support identifier warehouses (#308)
Fokko Apr 5, 2024
4e89ac7
feat: Project transform (#309)
marvinlanhenke Apr 5, 2024
ca9de89
feat: add Struct Accessors to BoundReferences (#317)
sdd Apr 6, 2024
4170872
feat: use str args rather than String in transform (#325)
sdd Apr 15, 2024
ecde318
chore(deps): Update pilota requirement from 0.10.0 to 0.11.0 (#327)
dependabot[bot] Apr 16, 2024
9dba0ce
chore(deps): Bump peaceiris/actions-mdbook from 1 to 2 (#332)
dependabot[bot] Apr 16, 2024
2bb6918
chore(deps): Bump peaceiris/actions-gh-pages from 3.9.3 to 4.0.0 (#333)
dependabot[bot] Apr 16, 2024
8847f9c
chore(deps): Bump apache/skywalking-eyes from 0.5.0 to 0.6.0 (#328)
dependabot[bot] Apr 16, 2024
9160bba
feat: add BoundPredicateVisitor. Add AlwaysTrue and AlwaysFalse to Pr…
sdd Apr 16, 2024
de80a24
feat: add InclusiveProjection (#335)
sdd Apr 19, 2024
5761fd2
feat: Implement the conversion from Iceberg Schema to Arrow Schema (#…
ZENOTME Apr 19, 2024
7666bb6
Simplify expression when doing `{and,or}` operations (#339)
Fokko Apr 19, 2024
dcc380a
feat: Glue Catalog - table operations (3/3) (#314)
marvinlanhenke Apr 21, 2024
0e683f2
chore: update roadmap (#336)
marvinlanhenke Apr 21, 2024
0666b4b
feat: add ManifestEvaluator (#322)
sdd Apr 22, 2024
aba6209
feat: init iceberg writer (#275)
ZENOTME Apr 22, 2024
0154829
feat: implement manifest filtering in TableScan (#323)
sdd Apr 26, 2024
7dfc548
Refactor: Extract `partition_filters` from `ManifestEvaluator` (#360)
marvinlanhenke Apr 30, 2024
bbd042d
Basic Integration with Datafusion (#324)
marvinlanhenke May 2, 2024
1c66e5a
refactor: cache partition_schema in `fn plan_files()` (#362)
marvinlanhenke May 2, 2024
ffb691d
fix (manifest-list): added serde aliases to support both forms conven…
a-agmon May 9, 2024
3b8121e
feat: Extract FileRead and FileWrite trait (#364)
Xuanwo May 14, 2024
81df940
feat: Convert predicate to arrow filter and push down to parquet read…
viirya May 15, 2024
40eb024
chore(deps): Update datafusion requirement from 37.0.0 to 38.0.0 (#369)
dependabot[bot] May 18, 2024
6d95a5c
chore(deps): Update itertools requirement from 0.12 to 0.13 (#376)
dependabot[bot] May 19, 2024
e1c10b5
Add `InclusiveMetricsEvaluator` (#347)
sdd May 19, 2024
43df392
Rename V2 spec names. (#380)
gupteaj May 25, 2024
1bf80e1
make file scan task serializable (#377)
ZENOTME May 27, 2024
e5b59a7
Feature: Schema into_builder method (#381)
c-thiel May 28, 2024
4407634
replaced `i32` in `TableUpdate::SetDefaultSortOrder` to `i64` (#387)
rwwwx May 30, 2024
8068407
fix: make PrimitiveLiteral and Literal not be Ord (#386)
ZENOTME Jun 1, 2024
1aa05e0
docs(writer/docker): fix small typos and wording (#389)
jdockerty Jun 2, 2024
f1ea6e1
feat: `StructAccessor.get` returns `Result<Option<Datum>>` instead of…
sdd Jun 7, 2024
15e61f2
feat: add `ExpressionEvaluator` (#363)
marvinlanhenke Jun 10, 2024
a888bd8
Derive Clone for TableUpdate (#402)
c-thiel Jun 12, 2024
e41f17e
Add accessor for Schema identifier_field_ids (#388)
c-thiel Jun 12, 2024
ffafe15
deps: Bump arrow related crates to 52 (#403)
Dysprosium0626 Jun 13, 2024
1912f0f
SnapshotRetention::Tag max_ref_age_ms should be optional (#391)
c-thiel Jun 13, 2024
b20d7ac
feat: Add storage features for iceberg (#400)
Xuanwo Jun 13, 2024
070576b
Implement `BoundPredicateVisitor` for `ManifestFilterVisitor` (#367)
s-akhtar-baig Jun 13, 2024
adc5d20
Add missing arrow predicate pushdown implementations for `StartsWith`…
sdd Jun 15, 2024
def6114
feat: make BoundPredicate,Datum serializable (#406)
ZENOTME Jun 19, 2024
fa7fee9
refactor: Upgrade hive_metastore to 0.1 (#409)
Xuanwo Jun 19, 2024
11d4221
Remove duplicate filter (#414)
liurenjie1024 Jun 20, 2024
854171d
Enhancement: refine the reader interface (#401)
ZENOTME Jun 21, 2024
0d6fae0
refactor(catalog/rest): Split http client logic to seperate mod (#423)
Xuanwo Jun 28, 2024
8955e7b
Remove #[allow(dead_code)] from the codebase (#421)
vivek378521 Jun 28, 2024
7417a2a
ci: use official typos github action (#426)
shoothzj Jun 30, 2024
64922c6
feat: support lower_bound&&upper_bound for parquet writer (#383)
ZENOTME Jul 2, 2024
fc3d475
refactor: Implement ArrowAsyncFileWriter directly to remove tokio (#427)
Xuanwo Jul 2, 2024
e6d6cd9
chore: Don't enable reqwest default features (#432)
Xuanwo Jul 3, 2024
c3b5364
refactor(catalogs/rest): Split user config and runtime config (#431)
Xuanwo Jul 4, 2024
b341910
feat: runtime module (#233)
odysa Jul 5, 2024
0937f19
fix: Fix namespace identifier in url (#435)
liurenjie1024 Jul 5, 2024
8562708
refactor(io): Split io into smaller mods (#438)
Xuanwo Jul 5, 2024
dba6059
chore: Use once_cell to replace lazy_static (#443)
Xuanwo Jul 6, 2024
5bfb8bd
fix: Fix build while no-default-features enabled (#442)
Xuanwo Jul 6, 2024
9603c8a
chore(deps): Bump crate-ci/typos from 1.22.9 to 1.23.1 (#447)
dependabot[bot] Jul 8, 2024
8782665
docs: Refactor the README to be more user-oriented (#444)
Xuanwo Jul 8, 2024
48f9e3e
feat: Add cargo machete (#448)
vaibhawvipul Jul 9, 2024
9e1e8eb
chore: Use nightly toolchain for check (#445)
liurenjie1024 Jul 9, 2024
9b8f791
reuse docker container to save compute resources (#428)
thexiay Jul 9, 2024
484ef05
feat: Add macos runner for ci (#441)
QuakeWang Jul 10, 2024
53c132c
chore: remove compose obsolete version (#452) (#454)
yinheli Jul 11, 2024
8772968
Refactor file_io_s3_test.rs (#455)
fqaiser94 Jul 15, 2024
b2c5873
chore(deps): Bump crate-ci/typos from 1.23.1 to 1.23.2 (#457)
dependabot[bot] Jul 15, 2024
08c46fb
remove binary serialize in literal (#456)
ZENOTME Jul 15, 2024
0942e3c
fix: Hms test on macos should use correct arch (#461)
liurenjie1024 Jul 15, 2024
f30d872
Fix ManifestFile length calculation (#466)
nooberfsh Jul 17, 2024
f5b406f
chore(deps): Update typed-builder requirement from ^0.18 to ^0.19 (#473)
dependabot[bot] Jul 21, 2024
244a218
fix: use avro fixed to represent decimal (#472)
xxchan Jul 23, 2024
4b275a2
chore(catalog): Deprecate rest.authorization-url in favor of oauth2-s…
ndrluis Jul 25, 2024
e4d8001
fix: Transform::Day maps to Date rather than Int for consistency with…
sdd Jul 25, 2024
c9ffbce
feat(iceberg): Add memory file IO support (#481)
Xuanwo Jul 26, 2024
36e128c
Add in-memory catalog implementation (#475)
fqaiser94 Jul 26, 2024
5b3d1d3
chore: Enable new rust code format settings (#483)
Xuanwo Jul 26, 2024
297a607
docs: Generate rust API docs (#486)
Xuanwo Jul 26, 2024
5056dbb
chore: Fix format of recent PRs (#487)
Xuanwo Jul 27, 2024
de450c8
Rename folder to memory (#490)
fqaiser94 Jul 27, 2024
aeeaa11
chore(deps): Bump crate-ci/typos from 1.23.2 to 1.23.5 (#493)
dependabot[bot] Jul 28, 2024
ab4f69a
View Spec implementation (#331)
c-thiel Jul 28, 2024
79b5650
fix: Return error on reader task (#498)
ndrluis Jul 29, 2024
b3c2311
chore: Bump OpenDAL to 0.48 (#500)
Xuanwo Jul 29, 2024
c81dd71
add check compatible func for primitive type (#492)
ZENOTME Jul 29, 2024
8248c91
refactor(iceberg): Remove an extra config parse logic (#499)
Xuanwo Jul 29, 2024
869eef1
feat: permit Datum Date<->Int type conversion (#496)
sdd Jul 29, 2024
e8f8694
Add additional S3 FileIO Attributes (#505)
c-thiel Jul 30, 2024
4df188b
docs: Add links to dev docs (#508)
Xuanwo Jul 30, 2024
c58e69d
chore: Remove typo in README (#509)
Xuanwo Jul 30, 2024
001dfa7
feat: podman support (#489)
alexyin1 Jul 31, 2024
bd9eea1
feat(table): Add debug and clone trait to static table struct (#510)
ndrluis Jul 31, 2024
0f7fc20
Use namespace location or warehouse location if table location is mis…
fqaiser94 Aug 3, 2024
4083f81
chore(deps): Bump crate-ci/typos from 1.23.5 to 1.23.6 (#521)
dependabot[bot] Aug 4, 2024
abe3a64
Concurrent table scans (#373)
sdd Aug 7, 2024
ded5926
refactor: replace num_cpus with thread::available_parallelism (#526)
SteveLauC Aug 7, 2024
9b4ea11
Fix: MappedLocalTime should not be exposed (#529)
c-thiel Aug 7, 2024
68069e3
feat: Establish subproject pyiceberg_core (#518)
Xuanwo Aug 7, 2024
5bf9f3c
fix: complete miss attribute for map && list in avro schema (#411)
ZENOTME Aug 8, 2024
2daa2c9
arrow/schema.rs: refactor tests (#531)
AndreMouche Aug 9, 2024
80c1399
feat: initialise SQL Catalog (#524)
callum-ryan Aug 9, 2024
182b20d
chore(deps): Bump actions/setup-python from 4 to 5 (#536)
dependabot[bot] Aug 11, 2024
bbbea97
support session token (#530)
twuebi Aug 12, 2024
07b7744
Simplify PrimitiveLiteral (#502)
ZENOTME Aug 13, 2024
596fc37
chore: bump opendal to 0.49 (#540)
jdockerty Aug 13, 2024
c917a87
feat: support timestamp columns in row filters (#533)
sdd Aug 13, 2024
c426956
fix: don't silently drop errors encountered in table scan file planni…
sdd Aug 13, 2024
42235b4
chore(deps): Update sqlx requirement from 0.7.4 to 0.8.0 (#537)
dependabot[bot] Aug 13, 2024
257cdbd
Fix main branch building break (#541)
liurenjie1024 Aug 13, 2024
cbd1844
feat: support for gcs storage (#520)
jdockerty Aug 14, 2024
2137f6b
feat: Allow FileIO to reuse http client (#544)
Xuanwo Aug 14, 2024
a3f9aec
docs: Add an example to scan an iceberg table (#545)
Xuanwo Aug 14, 2024
2758961
Concurrent data file fetching and parallel RecordBatch processing (#515)
sdd Aug 14, 2024
68ef766
doc: Add statement for contributors to avoid force push as much as po…
liurenjie1024 Aug 14, 2024
4434909
chore: Bump datafusion to 41 (#548)
Xuanwo Aug 14, 2024
9862026
feat: Partition Binding and safe PartitionSpecBuilder (#491)
c-thiel Aug 14, 2024
79711ac
Bump to version 0.3.0 (#549)
Xuanwo Aug 14, 2024
cb3c8be
io: add support for role arn and external id s3 props (#553)
mattheusv Aug 16, 2024
a796325
fix: ensure S3 and GCS integ tests are conditionally compiled only wh…
sdd Aug 16, 2024
1b32a33
docs: fix main iceberg example (#554)
jdockerty Aug 16, 2024
19af3d3
io: add support to set assume role session name (#555)
mattheusv Aug 16, 2024
fcf14ca
test: refactor datafusion test with memory catalog (#557)
FANNG1 Aug 16, 2024
1731766
add clean job in Makefile (#561)
ChinoUkaegbu Aug 17, 2024
4440af6
docs: Fix build website permission changed (#564)
Xuanwo Aug 19, 2024
a1ec0fa
Object Cache: caches parsed Manifests and ManifestLists for performan…
sdd Aug 19, 2024
94adc42
Update the paths (#569)
Fokko Aug 19, 2024
a4894f9
docs: Add links for released crates (#570)
Xuanwo Aug 19, 2024
9778fe6
Python: Use hatch for dependency management (#572)
sungwy Aug 19, 2024
e387bdb
Ensure that RestCatalog passes user config to FileIO (#476)
sdd Aug 20, 2024
70d5b0b
Move `zlib` and `unicode` licenses to `allow` (#566)
Fokko Aug 20, 2024
4da12c5
website: Update links for 0.3.0 (#573)
Xuanwo Aug 21, 2024
b36d1c6
feat(timestamp_ns): Implement timestamps with nanosecond precision (#…
Sl1mb0 Aug 21, 2024
ba66665
fix: correct partition-id to field-id in UnboundPartitionField (#576)
FANNG1 Aug 24, 2024
f9c92b7
fix: Update sqlx from 0.8.0 to 0.8.1 (#584)
FANNG1 Aug 25, 2024
905ebd2
chore(deps): Update typed-builder requirement from 0.19 to 0.20 (#582)
dependabot[bot] Aug 26, 2024
ecbb4c3
Expose Transforms to Python Binding (#556)
sungwy Aug 27, 2024
da08e8d
chore(deps): Bump crate-ci/typos from 1.23.6 to 1.24.1 (#583)
dependabot[bot] Aug 28, 2024
7aa8bdd
Table Scan: Add Row Group Skipping (#558)
sdd Aug 29, 2024
ae75f96
chore: bump crate-ci/typos to 1.24.3 (#598)
sdlarsen Sep 3, 2024
620d58e
feat: SQL Catalog - namespaces (#534)
callum-ryan Sep 5, 2024
cbbd086
feat: Add more fields in FileScanTask (#609)
Xuanwo Sep 8, 2024
ced661f
chore(deps): Bump crate-ci/typos from 1.24.3 to 1.24.5 (#616)
dependabot[bot] Sep 8, 2024
ede4720
fix: Less Panics for Snapshot timestamps (#614)
c-thiel Sep 8, 2024
5812399
feat: partition compatibility (#612)
c-thiel Sep 8, 2024
a5aba9a
feat: SortOrder methods should take schema ref if possible (#613)
c-thiel Sep 8, 2024
f78c59b
feat: add `client.region` (#623)
jdockerty Sep 9, 2024
e08c0e5
fix: Correctly calculate highest_field_id in schema (#590)
liurenjie1024 Sep 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

github:
description: "Apache Iceberg"
homepage: https://iceberg.apache.org/
homepage: https://rust.iceberg.apache.org/
labels:
- iceberg
- apache
Expand All @@ -42,17 +42,20 @@ github:
required_approving_review_count: 1

required_linear_history: true

features:
wiki: false
issues: true
projects: false
projects: true
collaborators:
- Xuanwo
- liurenjie1024
- JanKaul
ghp_branch: gh-pages
ghp_path: /

notifications:
commits: commits@iceberg.apache.org
issues: issues@iceberg.apache.org
pullrequests: issues@iceberg.apache.org
jira_options: link label link label
commits: commits@iceberg.apache.org
issues: issues@iceberg.apache.org
pullrequests: issues@iceberg.apache.org
jira_options: link label link label
24 changes: 24 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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.

[advisories]
ignore = [
# rsa
# Marvin Attack: potential key recovery through timing sidechannels
# Issues: https://github.com/apache/iceberg-rust/issues/221
"RUSTSEC-2023-0071",
]
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
website export-ignore
40 changes: 40 additions & 0 deletions .github/actions/setup-builder/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 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.

# This file is heavily inspired by
# [datafusion](https://github.com/apache/datafusion/blob/main/.github/actions/setup-builder/action.yaml).
name: Prepare Rust Builder
description: 'Prepare Rust Build Environment'
inputs:
rust-version:
description: 'version of rust to install (e.g. stable)'
required: true
default: 'stable'
runs:
using: "composite"
steps:
- name: Setup Rust toolchain
shell: bash
run: |
echo "Installing ${{ inputs.rust-version }}"
rustup toolchain install ${{ inputs.rust-version }}
rustup default ${{ inputs.rust-version }}
rustup component add rustfmt clippy
- name: Fixup git permissions
# https://github.com/actions/checkout/issues/766
shell: bash
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
43 changes: 43 additions & 0 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 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.

name: Security audit

concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true

on:
push:
paths:
- "**/Cargo.toml"
- "**/Cargo.lock"

pull_request:
paths:
- "**/Cargo.toml"
- "**/Cargo.lock"

jobs:
security_audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run audit check
run: cargo audit
83 changes: 83 additions & 0 deletions .github/workflows/bindings_python_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# 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.

name: Bindings Python CI

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
check-rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check format
run: cargo fmt --all -- --check
- name: Check clippy
run: cargo clippy --all-targets --all-features -- -D warnings

check-python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install tools
run: |
pip install ruff
- name: Check format
working-directory: "bindings/python"
run: |
ruff format . --diff
- name: Check style
working-directory: "bindings/python"
run: |
ruff check .

test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
- uses: PyO3/maturin-action@v1
with:
working-directory: "bindings/python"
command: build
args: --out dist --sdist
- name: Run tests
working-directory: "bindings/python"
shell: bash
run: |
set -e
pip install hatch==1.12.0
hatch run dev:pip install dist/pyiceberg_core-*.whl --force-reinstall
hatch run dev:test
51 changes: 47 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,28 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

env:
rust_msrv: "1.77.1"

jobs:
check:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v4

- name: Check License Header
uses: apache/skywalking-eyes/header@v0.5.0
uses: apache/skywalking-eyes/header@v0.6.0

- name: Install cargo-sort
run: make install-cargo-sort

- name: Install taplo-cli
run: make install-taplo-cli

- name: Cargo format
run: make check-fmt
Expand All @@ -50,8 +64,29 @@ jobs:
- name: Cargo sort
run: make cargo-sort

- name: Cargo Machete
run: make cargo-machete

build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}

- name: Build
run: make build

build_with_no_default_features:
runs-on: ${{ matrix.os }}
strategy:
matrix:
Expand All @@ -62,15 +97,23 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build
run: cargo build -p iceberg --no-default-features

unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}

- name: Test
run: cargo test --no-fail-fast --all-targets --all-features --workspace


- name: Async-std Test
run: cargo test --no-fail-fast --all-targets --no-default-features --features "async-std" --features "storage-all" --workspace

- name: Doc Test
run: cargo test --no-fail-fast --doc --all-features --workspace
6 changes: 2 additions & 4 deletions .github/workflows/ci_typos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,5 @@ jobs:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4
- run: curl -LsSf https://github.com/crate-ci/typos/releases/download/v1.14.8/typos-v1.14.8-x86_64-unknown-linux-musl.tar.gz | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin

- name: do typos check with typos-cli
run: typos
- name: Check typos
uses: crate-ci/typos@v1.24.5
60 changes: 60 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# 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.

name: Publish

on:
push:
tags:
- '*'
workflow_dispatch:

env:
rust_msrv: "1.77.1"

jobs:
publish:
runs-on: ubuntu-latest
strategy:
# Publish package one by one instead of flooding the registry
max-parallel: 1
matrix:
# Order here is sensitive, as it will be used to determine the order of publishing
package:
- "crates/iceberg"
- "crates/catalog/glue"
- "crates/catalog/hms"
- "crates/catalog/memory"
- "crates/catalog/rest"
# sql is not ready for release yet.
# - "crates/catalog/sql"
- "crates/integrations/datafusion"
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}

- name: Publish ${{ matrix.package }}
working-directory: ${{ matrix.package }}
# Only publish if it's a tag and the tag is not a pre-release
if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
run: cargo publish --all-features
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
Loading
Loading