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

Adopt ObjectStore #761

Merged
merged 61 commits into from
Aug 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
f8cba3b
feat: update datafusion and object store
roeap Aug 20, 2022
4d5374b
feat: adopt ObjectStore
roeap Aug 22, 2022
6285669
Merge branch 'main' into object-store
roeap Aug 22, 2022
1b67000
chore: more cleanup
roeap Aug 22, 2022
946a474
Merge branch 'main' into object-store
roeap Aug 22, 2022
c7c3c1f
fix: resolve conflict
roeap Aug 22, 2022
e4663b3
chore: clippy
roeap Aug 22, 2022
833150f
fix: comment
roeap Aug 22, 2022
937e2d2
chore: add integration test feature
roeap Aug 22, 2022
a754523
refactor: object store as ground truth for table uri
roeap Aug 22, 2022
cb2b462
refactor: make creating builder infallible
roeap Aug 22, 2022
6477004
fix: fix python build
roeap Aug 22, 2022
3defda4
fix: datafusion tests
roeap Aug 22, 2022
fbe25f6
fix: table uri invocations
roeap Aug 22, 2022
58dde1e
fix: uri normalize test
roeap Aug 22, 2022
47225ea
chore: flatten directories
roeap Aug 22, 2022
342ae17
fix: macro imports
roeap Aug 22, 2022
0a3ea7f
fix: imports
roeap Aug 22, 2022
4a3b7aa
fix: allow configuring non https connections
roeap Aug 22, 2022
c393c90
feat: draft integration set scaffolding
roeap Aug 23, 2022
dccb508
refactor: clean up storage errors
roeap Aug 23, 2022
01c4bf6
refactor: remove StorageError
roeap Aug 23, 2022
83b8445
test: port tests from object_store crate
roeap Aug 23, 2022
71fc187
test: include local StorageIntegration
roeap Aug 23, 2022
024a4e0
ci: update build scripts
roeap Aug 23, 2022
0afcf7e
ci: fix builds
roeap Aug 23, 2022
c10a56e
fix: cargo tompl
roeap Aug 23, 2022
fb7c0b3
fix: build
roeap Aug 23, 2022
92c6a2e
fix: clippies
roeap Aug 23, 2022
4876b70
fix: clippy with various configs
roeap Aug 23, 2022
e4e5eda
more build
roeap Aug 23, 2022
e0e36bf
chore: ann exempts for ruby build
roeap Aug 24, 2022
9352a30
chore: cleanup / consolidate tests
roeap Aug 24, 2022
7eb4ca6
fix: repair s3 clock client integration
roeap Aug 25, 2022
a9cb9cf
chore: clippy
roeap Aug 25, 2022
ad4bcdf
chore: clippy-2
roeap Aug 25, 2022
764fe43
add hyper
roeap Aug 25, 2022
49e64dd
fix: rustls build
roeap Aug 25, 2022
5d94bcd
test: migrate s3 repair tests
roeap Aug 25, 2022
6e97b36
fix: test build errs
roeap Aug 25, 2022
90f4d81
fix: rename test
roeap Aug 25, 2022
f16aaa3
fix: s3 common importa
roeap Aug 25, 2022
c00d1e4
cleanup
roeap Aug 25, 2022
96fe3c2
test: datafusion integration tests
roeap Aug 27, 2022
94a9ddd
fix: import
roeap Aug 27, 2022
382e9c0
fix: datafusion test
roeap Aug 27, 2022
226358d
fix: integration tests
roeap Aug 28, 2022
f1b33ec
chore: clippy
roeap Aug 28, 2022
bb93a04
fix: checkpoint integration tests
roeap Aug 28, 2022
314c321
fix: environemtn during integration tests
roeap Aug 28, 2022
5ff8eec
ci: add macos 10.15 back to test matrix
roeap Aug 28, 2022
89a3e90
fix: write non empty test fiules to work with azure listing
roeap Aug 28, 2022
eeeef28
fix: use correct storage backend in azure comit tests
roeap Aug 28, 2022
535d8b5
fix: py3.7 tests
roeap Aug 28, 2022
c9b1d1c
Merge branch 'main' into object-store
roeap Aug 30, 2022
9663e70
fix: parquet2 merge errors
roeap Aug 30, 2022
efdca25
fix: add missing rustls feature gates
roeap Aug 30, 2022
aae013b
fix: add missing dev dependency
roeap Aug 30, 2022
63a74ca
chore: pr comments
roeap Aug 30, 2022
0d655d8
Apply suggestions from code review
roeap Aug 30, 2022
2b6f94d
fix: doctest
roeap Aug 30, 2022
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
72 changes: 64 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Install minimal stable with clippy and rustfmt
uses: actions-rs/toolchain@v1
with:
Expand All @@ -30,11 +30,12 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-11
- macOS-10.15
- windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Install minimal stable with clippy and rustfmt
uses: actions-rs/toolchain@v1
with:
Expand All @@ -55,11 +56,12 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-11
- macOS-10.15
- windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Install minimal stable with clippy and rustfmt
uses: actions-rs/toolchain@v1
with:
Expand All @@ -70,22 +72,76 @@ jobs:
- name: Run tests
run: cargo test --verbose --features datafusion-ext,azure

s3_test:
integration_test:
runs-on: ubuntu-latest
services:
# fake-gcs:
# image: fsouza/fake-gcs-server
# ports:
# - 4443:4443
localstack:
image: localstack/localstack:0.14.4
ports:
- 4566:4566
azurite:
image: mcr.microsoft.com/azure-storage/azurite
ports:
- 10000:10000

container:
image: amd64/rust
env:
# Disable full debug symbol generation to speed up CI build and keep memory down
# "1" means line tables only, which is useful for panic tracebacks.
RUSTFLAGS: "-C debuginfo=1"
# https://github.com/rust-lang/cargo/issues/10280
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUST_BACKTRACE: "1"
# Run integration tests
TEST_INTEGRATION: 1
AWS_DEFAULT_REGION: "us-east-1"
AWS_ACCESS_KEY_ID: test
AWS_SECRET_ACCESS_KEY: test
AWS_ENDPOINT_URL: http://localstack:4566
EC2_METADATA_ENDPOINT: http://ec2-metadata:1338
GOOGLE_ENDPOINT_URL: https://fake-gcs:4443/storage/v1/b
GOOGLE_USE_EMULATOR: "1"
AZURE_USE_EMULATOR: "1"
AZURITE_BLOB_STORAGE_URL: "http://azurite:10000"
OBJECT_STORE_BUCKET: test-bucket
AZURE_STORAGE_CONNECTION_STRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

# - name: Configure Fake GCS Server (GCP emulation)
# run: |
# curl --insecure -v -X POST --data-binary '{"name":"test-bucket"}' -H "Content-Type: application/json" "https://fake-gcs:4443/storage/v1/b"
# echo '{"gcs_base_url": "https://fake-gcs:4443", "disable_oauth": true, "client_email": "", "private_key": ""}' > "$GOOGLE_SERVICE_ACCOUNT"
- name: Setup LocalStack (AWS emulation)
run: |
cd /tmp
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install
- name: Configure Azurite (Azure emulation)
# the magical connection string is from
# https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio#http-connection-strings
run: |
curl -sL https://aka.ms/InstallAzureCLIDeb | bash

- name: Install minimal stable with clippy and rustfmt
uses: actions-rs/toolchain@v1
with:
profile: default
toolchain: stable
override: true

- uses: Swatinem/rust-cache@v1
- name: Setup localstack
run: docker-compose up setup

- name: Run tests
run: |
cargo test --features s3,datafusion-ext
cargo test --features integration_test,azure,s3,datafusion-ext

paruqet2_test:
runs-on: ubuntu-latest
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ tlaplus/*.toolbox/*/[0-9]*-[0-9]*-[0-9]*-[0-9]*-[0-9]*-[0-9]*/
**/.python-version
.coverage
*.env
__azurite*
__blobstorage__
Loading