Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
313 commits
Select commit Hold shift + click to select a range
dd53157
docs(core): correct prove-out boundary claims
quinnj Aug 13, 2026
d9fc64a
docs(core): record round seven findings
quinnj Aug 13, 2026
c305742
fix(core): restore gate after interrupted close
quinnj Aug 13, 2026
ca5f02b
docs(core): state immutable borrow contract
quinnj Aug 13, 2026
1a0d1f6
fix(ipc): reject legacy V4 compression
quinnj Aug 13, 2026
d120948
docs(core): complete backing storage contract
quinnj Aug 13, 2026
47082e9
fix(cdata): validate schema flags
quinnj Aug 13, 2026
4e459f8
docs(core): record round eight findings
quinnj Aug 13, 2026
4ece8bd
fix(cdata): make import handoff atomic
quinnj Aug 13, 2026
2427c5b
fix(cdata): make release callbacks retryable
quinnj Aug 13, 2026
a4055b4
fix(cdata): make export cleanup retryable
quinnj Aug 13, 2026
4f3af27
fix(cdata): close task cancellation seams
quinnj Aug 13, 2026
b38df35
fix(cdata): derive moved ownership from source
quinnj Aug 13, 2026
3be61d4
docs(core): record round nine findings
quinnj Aug 13, 2026
e6197f2
fix(core): make mmap handoff exactly once
quinnj Aug 13, 2026
2809a0a
fix(core): make lifecycle handoffs interruption-safe
quinnj Aug 13, 2026
8aafa54
fix(core): retry interrupted mmap release
quinnj Aug 13, 2026
d5903a6
fix(core): finish mmap cleanup before escape
quinnj Aug 13, 2026
72aa6f3
fix(cdata): close export ownership handoffs
quinnj Aug 13, 2026
7eb1b96
fix(cdata): commit release nodes atomically
quinnj Aug 13, 2026
7df0af2
fix(cdata): own malloc before registration
quinnj Aug 13, 2026
02de76e
fix(core): own mmap before finalizer handoff
quinnj Aug 13, 2026
07707d5
fix(cdata): stop retries after release commit
quinnj Aug 13, 2026
bad7d1b
fix(core): finish lifecycle rollback before escape
quinnj Aug 13, 2026
fd3d088
fix(cdata): finish imported owner cleanup
quinnj Aug 13, 2026
4756b5f
fix(ipc): make cursor pulls atomic
quinnj Aug 13, 2026
fa1d0fc
fix(core): own release through finalizer setup
quinnj Aug 13, 2026
47e1987
fix(core): retry constructor cleanup interruption
quinnj Aug 13, 2026
57e82e2
docs(core): record round ten findings
quinnj Aug 13, 2026
eddd3c0
docs(core): declare interruption contract
quinnj Aug 13, 2026
d378fa7
docs(core): record round eleven review
quinnj Aug 13, 2026
3988bdf
Add IPC buffer compression to the adapter prove-out (LZ4_FRAME + ZSTD)
quinnj Aug 13, 2026
1b28e2a
Replace Any-typed release callbacks with concrete data-driven Release…
quinnj Aug 13, 2026
6d6ae0f
Remove interruption machinery and Threads.Atomic per design direction
quinnj Aug 13, 2026
2f3f19c
Add JuliaC --trim=safe support: zero verifier errors/warnings, binary…
quinnj Aug 13, 2026
6bd5963
fix(ipc): bound compressed buffer decoding
quinnj Aug 13, 2026
213daf5
fix(core): preserve release ownership on errors
quinnj Aug 13, 2026
054d3a6
refactor(cdata): remove interruption scaffolding
quinnj Aug 13, 2026
1bc466c
fix(core): keep trim boundaries concrete
quinnj Aug 13, 2026
abf4aef
docs(core): align stated lifecycle and IPC contracts
quinnj Aug 13, 2026
d23fbab
test(core): exercise MapClaim CAS contention
quinnj Aug 13, 2026
e8f6bd8
refactor(core): remove final release scaffolding
quinnj Aug 13, 2026
7f3ad2d
docs(core): record round twelve review
quinnj Aug 13, 2026
ef06f96
Condition-based region lifecycle + Mmap stdlib mapping per design dir…
quinnj Aug 13, 2026
2f0cbcb
fix(core): harden condition lifecycle
quinnj Aug 13, 2026
58df2de
fix(core): keep mapped pointers stable
quinnj Aug 13, 2026
28aa132
docs(core): align lifecycle contracts
quinnj Aug 13, 2026
4aafa86
fix(core): isolate mmap finalization
quinnj Aug 13, 2026
f933bee
test(core): cover close and mmap owner
quinnj Aug 13, 2026
dcd43a8
refactor(core)!: constrain memory model to GC reachability
quinnj Aug 13, 2026
dcf8dfc
test(core): prove loadat roots the region across GC
quinnj Aug 13, 2026
028020c
fix(core): require roots during raw access
quinnj Aug 13, 2026
c805a05
docs(core): remove stale lifecycle claims
quinnj Aug 13, 2026
642aecd
fix(cdata): clean failed finalizer handoff
quinnj Aug 13, 2026
4722370
fix(core): honor recorded alignment
quinnj Aug 13, 2026
e1317a5
fix(cdata): close remaining ownership seams
quinnj Aug 13, 2026
f5f4ace
docs(core): align trim and atomic claims
quinnj Aug 13, 2026
f57554e
docs(core): record round thirteen review
quinnj Aug 13, 2026
eb093e0
feat(core): add the IPC write half over the registry
quinnj Aug 13, 2026
ee1268d
feat(core): map intervals and unions through the IPC adapters
quinnj Aug 13, 2026
b626138
feat(core): bring C-data format mapping to Core accessor parity
quinnj Aug 13, 2026
4252342
feat(core): map the C stream interface in both directions
quinnj Aug 13, 2026
9ad953e
fix(cdata): close C stream ownership gaps
quinnj Aug 13, 2026
8618d02
fix(ipc): enforce adapter wire invariants
quinnj Aug 13, 2026
0662b6a
fix(ipc): compare file field metadata
quinnj Aug 13, 2026
6764cd1
fix(cdata): harden formats and empty offsets
quinnj Aug 13, 2026
462c3db
test(core): release mmap before path cleanup
quinnj Aug 13, 2026
d231092
fix(cdata): clean failed stream results
quinnj Aug 13, 2026
fc77f5b
docs(core): align adapter capability claims
quinnj Aug 13, 2026
74b8a6f
fix(ipc): disambiguate optional file eos
quinnj Aug 13, 2026
891e38a
docs(cdata): state timestamp canonicalization
quinnj Aug 13, 2026
c4d2487
docs(core): record round fourteen review
quinnj Aug 13, 2026
9aa74c3
fix(ipc): bind blocks before eos detection
quinnj Aug 13, 2026
e5486fc
fix(ipc): verify block buffer extents
quinnj Aug 14, 2026
6edfe6f
docs(core): record round fifteen review
quinnj Aug 14, 2026
949efe4
perf(ipc): reuse block preflight slice
quinnj Aug 14, 2026
b0374be
docs(core): record round sixteen review
quinnj Aug 14, 2026
e39b275
docs(core): record round seventeen review
quinnj Aug 14, 2026
2636810
docs(core): design Tables.Scan pushdown, ranged reads, and the trim t…
quinnj Aug 14, 2026
9de423e
feat(core): Tables.Scan Stage-A pushdown over the IPC file adapter
quinnj Aug 14, 2026
3c3c5bc
feat(core): RangedSource byte-range reads driven by the scan column set
quinnj Aug 14, 2026
b6f8dca
feat(core): per-batch statistics in the official value layout, with p…
quinnj Aug 14, 2026
6a05250
fix(scan): preserve Stage-A contract
quinnj Aug 14, 2026
743e1a8
fix(ranges): validate plans before fetch
quinnj Aug 14, 2026
8ee162e
fix(stats): make pruning one-sided
quinnj Aug 14, 2026
54b1cf8
fix(scan): residualize overflowing windows
quinnj Aug 14, 2026
0ed981e
test(stats): pin ranged trust behavior
quinnj Aug 14, 2026
9dce6fb
docs(core): align scan prove-out status
quinnj Aug 14, 2026
2c5b055
docs(core): record round 18 review
quinnj Aug 14, 2026
cd786c6
fix(ranges): validate plans before body fetch
quinnj Aug 14, 2026
aa9a801
docs(core): qualify ranged fetch claims
quinnj Aug 14, 2026
de48462
fix(scan): guard aggregate row counts
quinnj Aug 14, 2026
4c6f0fc
fix(ranges): preflight planned layouts before fetch
quinnj Aug 14, 2026
57b5762
fix(ranges): complete metadata plan checks
quinnj Aug 14, 2026
25db0ca
docs(core): qualify skipped range reads
quinnj Aug 14, 2026
ded6405
fix(ranges): reject empty required payloads
quinnj Aug 14, 2026
3b96b5e
fix(ranges): preflight covered null contracts
quinnj Aug 14, 2026
8541624
docs(core): record round 19 review
quinnj Aug 14, 2026
6f3afc4
docs(core): qualify range-request test claims
quinnj Aug 14, 2026
b817d52
docs(core): record round 20 review
quinnj Aug 14, 2026
c08f9d2
docs(core): record the ladder-collapse experiment; add ::Any fallbacks
quinnj Aug 14, 2026
ce8a09a
feat(core): semantic validation and accessors for view layouts and REE
quinnj Aug 14, 2026
026bb15
fix(core): re-concretize the REE run-ends type for trim
quinnj Aug 14, 2026
779f9bc
feat(core): map view layouts and REE through the IPC adapters
quinnj Aug 15, 2026
578c402
feat(core): map view layouts and REE through the C-data adapter
quinnj Aug 15, 2026
75acaab
docs(core): claim views and REE across Core, IPC, and C-data; record …
quinnj Aug 15, 2026
a51568e
fix(core): reject unregistered descriptors in raw validation
quinnj Aug 15, 2026
5b28e44
fix(core): enforce ListView child field contracts
quinnj Aug 15, 2026
ab96f18
fix(core): support sliced and nested REE arrays
quinnj Aug 15, 2026
38a1aad
fix(core): validate legal REE schemas in IPC
quinnj Aug 15, 2026
7c6ca5f
fix(core): keep ranged variadic accounting exact
quinnj Aug 15, 2026
0cfa693
fix(core): fold statistics through nested encodings
quinnj Aug 15, 2026
9d9e573
test(core): pin view and REE slice boundaries
quinnj Aug 15, 2026
2bb7337
docs(core): align active status with view and REE support
quinnj Aug 15, 2026
bd0bbaf
test(core): bound statistics harness compilation
quinnj Aug 15, 2026
45dc5c6
docs(core): record round 21 review findings
quinnj Aug 15, 2026
a08dcb2
fix(core): run scan statistics first
quinnj Aug 15, 2026
35dc78e
docs(core): record round 22 review finding
quinnj Aug 15, 2026
a907e5b
chore(core): follow Tables.jl's Tables.read -> Tables.scan rename
quinnj Aug 15, 2026
e978a01
docs(core): record round 23 review
quinnj Aug 15, 2026
2148d76
feat(core): regenerate FlatBuffers metadata bindings from the current…
quinnj Aug 15, 2026
569b515
fix(core): advisory validation tier + nested/shared dictionary id fid…
quinnj Aug 15, 2026
3df3619
feat(core): arrow-testing gold-corpus conformance runner + arrowjson
quinnj Aug 15, 2026
bf6c615
fix(core): accept zero-length arrays' omitted-offsets form
quinnj Aug 15, 2026
e3e097b
feat(core): pyarrow/nanoarrow oracle round-trip suite
quinnj Aug 15, 2026
6256041
docs(core): record round 24 review
quinnj Aug 15, 2026
923cdee
fix(core): resolve round 24 findings
quinnj Aug 15, 2026
70b7199
docs(core): record round 25 review
quinnj Aug 15, 2026
56e8180
docs(core): state the exact-float contract in the corpus overview
quinnj Aug 15, 2026
ae5fe80
docs(core): record round 26 review
quinnj Aug 15, 2026
85dddea
feat(core): generate the FlatBuffers verifier from the schema
quinnj Aug 15, 2026
592620a
docs(core): record round 27 review
quinnj Aug 15, 2026
6b03ddb
fix(core): staged root verification restores the fail-fast version gate
quinnj Aug 15, 2026
a09474f
docs(core): record round 28 review
quinnj Aug 15, 2026
d012e7c
test(core): freeze 2.x-written fixtures; batteries replay from disk
quinnj Aug 16, 2026
4701bb8
feat!: replace src/ with the rewrite — Arrow.jl 3.0, all 2.x code rem…
quinnj Aug 16, 2026
8750cd1
docs: record round 29 review
quinnj Aug 16, 2026
e97d9e1
fix: resolve round 29 dependency findings
quinnj Aug 16, 2026
702b112
fix: co-resolvable TranscodingStreams bound; record round 30 review
quinnj Aug 16, 2026
313cb2f
docs: record round 31 review
quinnj Aug 16, 2026
0625d0f
fix: maintainer review batch 1 — canonical-bits check, cleanups, Tabl…
quinnj Aug 17, 2026
a94392c
feat: maintainer review batch 2 — close!, trim-compiled C data, FlatB…
quinnj Aug 17, 2026
f30fb53
docs: record round 32 review
quinnj Aug 17, 2026
3e0b7c7
feat: the public facade — Arrow.Table/Stream/write — on the round-32 …
quinnj Aug 17, 2026
8359aab
docs: record round 33 review
quinnj Aug 17, 2026
5c170df
fix: resolve round 33 findings — schema-authoritative facade
quinnj Aug 17, 2026
f74e5a9
docs: record round 34 review
quinnj Aug 17, 2026
434e8de
fix: resolve round 34 findings — semantics-preserving scans, identity…
quinnj Aug 17, 2026
06b9e1d
docs: record round 35 review
quinnj Aug 17, 2026
35f8447
fix: resolve round 35 findings — facade-domain lowering, identity gates
quinnj Aug 17, 2026
fcccf2e
docs: record round 36 review
quinnj Aug 17, 2026
5f5715c
fix: resolve round 36 findings — finish-parity overrides, universal i…
quinnj Aug 17, 2026
f6b126a
docs: record round 37 review
quinnj Aug 17, 2026
adf72aa
fix: resolve round 37 findings — authority-exact overrides, zero-fiel…
quinnj Aug 17, 2026
10fac82
docs: record round 38 review
quinnj Aug 17, 2026
0d71f2b
fix: resolve round 38 findings — zero-field consumption, list closure
quinnj Aug 17, 2026
dd4725b
docs: record round 39 review
quinnj Aug 17, 2026
31922e9
fix: resolve round 39 findings — frame trust, budgets, list closure
quinnj Aug 17, 2026
4c8df01
docs: record round 40 review
quinnj Aug 17, 2026
621ea45
fix: resolve round 40 findings — orphan dicts, declared parity, impos…
quinnj Aug 17, 2026
4882625
docs: record round 41 review
quinnj Aug 17, 2026
30066aa
fix: resolve round 41 finding — complete the declared row domain
quinnj Aug 17, 2026
8f7a81f
docs: record round 42 review
quinnj Aug 17, 2026
ca6c5c1
fix: resolve round 42 finding — declared domains match actual containers
quinnj Aug 17, 2026
4c0781b
docs: record round 43 review — facade arc CLEAN
quinnj Aug 17, 2026
d74c909
feat: typed element access for static schemas (review R5)
quinnj Aug 17, 2026
d5873a9
docs: record round 44 review
quinnj Aug 17, 2026
6658819
fix: resolve round 44 findings — descriptor preflight, generated structs
quinnj Aug 17, 2026
a12c6df
docs: record round 45 review
quinnj Aug 17, 2026
8f0d9a1
fix: resolve round 45 findings — split recursion edge, exact NT claims
quinnj Aug 17, 2026
96aa44b
docs: record round 46 review
quinnj Aug 17, 2026
acb5479
fix: resolve round 46 finding — complete the scalar fast ladder
quinnj Aug 17, 2026
9a69a7e
docs: record round 47 review — typed access arc CLEAN
quinnj Aug 17, 2026
5f36bda
feat: C-data field metadata transport and bounded C-string reads
quinnj Aug 17, 2026
f744c37
docs: record round 48 review
quinnj Aug 17, 2026
98ecbc5
fix: resolve round 48 findings — scan window, dict value-node metadata
quinnj Aug 17, 2026
75594ac
docs: record round 49 review
quinnj Aug 17, 2026
aa2ff79
fix: resolve round 49 finding — field metadata rides the wrapper node
quinnj Aug 17, 2026
5ecc795
docs: record round 50 review — C-data metadata arc CLEAN
quinnj Aug 17, 2026
abc8831
feat: serialize/deserialize benchmark harness (review R12)
quinnj Aug 17, 2026
a45ac45
perf: facade reads ride the typed element path where the claim closes
quinnj Aug 17, 2026
05b8f75
perf: bulk fixed-width extraction for closed typed claims
quinnj Aug 17, 2026
728e0ed
docs: record round 51 review
quinnj Aug 17, 2026
f8c334e
fix: resolve round 51 findings — bitmap authority, routing, fair legs
quinnj Aug 17, 2026
3ec81f3
docs: record round 52 review
quinnj Aug 17, 2026
e0d2ce2
test: pin Float24 refusal and Dictionary-wrapped union routing
quinnj Aug 17, 2026
6333241
docs+test: record round 53 review; harden the Float24 bulk pin
quinnj Aug 17, 2026
7cb9675
docs: record round 54 review — R12 benchmark arc CLEAN
quinnj Aug 17, 2026
552e657
chore: finish review item #6 — no short-form `= begin` definitions
quinnj Aug 18, 2026
06608b7
fix(cdata): semantic-tier boundary, stream schema metadata, REE unkno…
quinnj Aug 18, 2026
89195bd
test(conformance): in-process pyarrow C Data / C Stream oracle (revie…
quinnj Aug 18, 2026
49bc5dd
feat(core): fromcompactviews — CSV CompactString payloads → Utf8View …
quinnj Aug 18, 2026
90f11af
docs: comment and documentation history sweep — present tense only (r…
quinnj Aug 18, 2026
35b41d6
fix(scan): follow Tables.jl's scan protocol change (Tables.scan is th…
quinnj Aug 19, 2026
50e5934
docs: record round 55 review — 1 MEDIUM + 4 LOW on the review-list batch
quinnj Aug 19, 2026
fc0de92
fix: resolve round 55 findings — stream schema validation, oracle sen…
quinnj Aug 19, 2026
9d89d55
docs: rewrite the user manual and API reference for 3.0
quinnj Aug 19, 2026
49f6595
test(conformance): one docker image runs every conformance suite (Har…
quinnj Aug 19, 2026
beefc68
docs: record round 56 review — 2 MEDIUM + 3 LOW
quinnj Aug 19, 2026
79bd4ee
feat(core): fromcompactviews is a zero-copy wrap — CompactString entr…
quinnj Aug 19, 2026
1284ecc
fix: resolve round 56 findings — docs build, honest write/type prose,…
quinnj Aug 19, 2026
dd84277
feat: ArrowStrings.jl — the shared inline-else-view string package, i…
quinnj Aug 19, 2026
ae3dce9
docs: record round 57 review — 3 MEDIUM + 3 LOW
quinnj Aug 19, 2026
8322039
fix: resolve round 57 findings — advisory nulls read, one public type…
quinnj Aug 19, 2026
d00e4c9
docs: record round 58 review — 1 MEDIUM + 4 LOW
quinnj Aug 19, 2026
95d2480
fix: resolve round 58 findings — zero-buffer views, length refusal, A…
quinnj Aug 19, 2026
e800c6f
refactor(ArrowStrings): CompactString → ArrowString (and family)
quinnj Aug 19, 2026
d19e3c8
docs: record round 59 review — 2 LOW
quinnj Aug 19, 2026
10158a8
fix: resolve round 59 findings — per-package Julia floor in CI, wrapp…
quinnj Aug 19, 2026
286fc76
docs: record round 60 review — 1 LOW
quinnj Aug 19, 2026
8b2103f
ci: exclude ArrowTypes from the `min` cells
quinnj Aug 19, 2026
69ef8aa
build: Julia 1.10 floor for Arrow.jl and ArrowTypes.jl
quinnj Aug 19, 2026
ba06e93
docs: record round 61 review — CLEAN (Julia 1.10 floor)
quinnj Aug 19, 2026
e39265b
chore: ASF license headers on every source file; ArrowTypes 2.4.0
quinnj Aug 19, 2026
690e1cc
chore: repository-wide cleanup pass — tests wired, dead code, docs, c…
quinnj Aug 19, 2026
30181d1
style: apply JuliaFormatter to the rewrite
quinnj Aug 19, 2026
740cf53
docs: record round 62 review — 4 LOW
quinnj Aug 19, 2026
071f367
fix: resolve round 62 findings — bench command literals, research not…
quinnj Aug 19, 2026
01678e4
docs: record round 63 review — 1 LOW
quinnj Aug 19, 2026
00d2d72
docs: research note — provenance, verify order, and C-data comparison…
quinnj Aug 19, 2026
e446f97
feat!: byte-range reads through AbstractArrowSource; CloudStore.jl ex…
quinnj Aug 19, 2026
16cfb8b
docs: record round 64 review — 1 HIGH + 3 MEDIUM + 3 LOW
quinnj Aug 19, 2026
d3ea7a7
fix: resolve round 64 findings — Arrow-owned range reads, ETag pinnin…
quinnj Aug 19, 2026
8ee33ba
docs: record round 65 review — 3 LOW
quinnj Aug 19, 2026
415d0c7
fix: resolve round 65 findings — Integer length guard, policy-complia…
quinnj Aug 19, 2026
03dfc3a
docs: record round 66 review — CLEAN (AbstractArrowSource + CloudStor…
quinnj Aug 19, 2026
7dbc4a0
ci: resolve Tables from its scan branch until Tables.Scan is released
quinnj Aug 19, 2026
e6be089
fix(rewrite): harden Arrow 3 for review
quinnj Aug 20, 2026
e101af2
ci(matrix): skip unavailable macOS Julia 1.0
quinnj Aug 20, 2026
a4006dc
ci(coverage): scope processing by package
quinnj Aug 20, 2026
27040cc
fix(arrowtypes): restore custom serialization
quinnj Aug 21, 2026
3357903
chore: drop the Arrow.jl 2.x bench leg and the research note; restore…
quinnj Aug 22, 2026
3837ccd
refactor!: close! → release!; ArrowStrings.StringVector
quinnj Aug 22, 2026
d3cecf6
feat: exact scan pushdown (Stage B); track Tables.jl's scan branch
quinnj Aug 22, 2026
f7f69c2
refactor(scan): compile each request once
quinnj Aug 23, 2026
db69a2b
refactor(core): harden the Arrow 3 rewrite
quinnj Aug 24, 2026
67e17cf
fix(read): release failed mmap opens
quinnj Aug 24, 2026
dd8c272
chore: track the registered Tables.jl 1.14 release
quinnj Aug 25, 2026
9f8a1c6
docs: align docs and code comments with the current state
quinnj Aug 28, 2026
0aa9829
fix: apply the final review round's core fixes
quinnj Aug 28, 2026
e6123c8
feat: TimeZones extension, typed scan overrides, and faster first use
quinnj Aug 28, 2026
e4a81bb
feat: incremental writer and stream append
quinnj Aug 28, 2026
8b620b6
ci: run each subpackage suite once
quinnj Aug 28, 2026
ec3a123
fix: declare stream features only on explicit demand
quinnj Aug 28, 2026
cc73c4a
feat: trusted column constructors and BytesVector in ArrowStrings
quinnj Aug 28, 2026
5552219
docs: BytesVector and trusted constructors in ArrowStrings README
quinnj Aug 29, 2026
3e1f47d
style(arrow-strings): apply pinned formatter
quinnj Aug 29, 2026
bc89411
docs(api): align final Arrow 3 contracts
quinnj Aug 29, 2026
ba1dd97
fix(release): enforce the Apache vote window
quinnj Aug 29, 2026
9878699
style: apply the exact CI formatter
quinnj Aug 29, 2026
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
17 changes: 15 additions & 2 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,22 @@ jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
timeout-minutes: 5
timeout-minutes: 15
steps:
- uses: JuliaRegistries/TagBot@v1
- name: Tag Arrow.jl
uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
- name: Tag ArrowTypes.jl
uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
subdir: src/ArrowTypes
- name: Tag ArrowStrings.jl
uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
subdir: src/ArrowStrings
168 changes: 147 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ jobs:
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
RELEASE_DEFAULT=0 dev/release/release_rc.sh 100
RELEASE_DEFAULT=0 dev/release/release_rc.sh 100 > release-rc-output.txt
cat release-rc-output.txt
grep -F "The vote will be open for at least 72 hours." release-rc-output.txt
- uses: actions/cache@v6
with:
path: ~/.julia/artifacts
Expand All @@ -75,20 +77,15 @@ jobs:
-e 's/"$//g')
VERIFY_DEFAULT=0 dev/release/verify_rc.sh ${version} 100
test:
name: ${{ matrix.pkg.name }} - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.nthreads }} threads - ${{ github.event_name }}
name: Arrow.jl - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.nthreads }} threads - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
pkg:
- name: Arrow.jl
dir: '.'
- name: ArrowTypes.jl
dir: './src/ArrowTypes'
version:
- 'min'
- 'lts'
- '1.11'
- '1' # automatically expands to the latest stable 1.x release of Julia
- 'pre' # expands to latest alpha, beta or RC, if available, otherwise same as `1`
os:
Expand All @@ -102,6 +99,7 @@ jobs:
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.version }}
project: '.'
- uses: actions/cache@v6
env:
cache-name: cache-artifacts
Expand All @@ -112,21 +110,64 @@ jobs:
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/julia-buildpkg@v1.6
with:
project: ${{ matrix.pkg.dir }}
- name: Dev local ArrowTypes for Arrow.jl tests
if: matrix.pkg.name == 'Arrow.jl'
# Before the build: ArrowStrings is unregistered and ArrowTypes 2.4 is in
# this monorepo; Julia 1.10's Pkg does not read the `[sources]` entries
# that point at them, so the resolve would fail without this step.
- name: Dev local subpackages
shell: julia --project=. {0}
run: |
using Pkg
Pkg.develop(PackageSpec(path="src/ArrowTypes"))
Pkg.develop([PackageSpec(path="src/ArrowStrings"), PackageSpec(path="src/ArrowTypes")])
- uses: julia-actions/julia-buildpkg@v1.6
- uses: julia-actions/julia-runtest@v1
env:
JULIA_NUM_THREADS: ${{ matrix.nthreads }}
- uses: julia-actions/julia-processcoverage@v1
with:
directories: src,ext
- uses: codecov/codecov-action@v7
with:
files: lcov.info
# The subpackages' own suites: one job each, on the package's minimum
# supported Julia. The full Arrow.jl matrix above exercises both packages'
# code on every version, OS, and thread count.
test-subpackages:
name: ${{ matrix.pkg.name }} - Julia min - ${{ github.event_name }}
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
pkg:
- name: ArrowTypes.jl
dir: './src/ArrowTypes'
- name: ArrowStrings.jl
dir: './src/ArrowStrings'
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: 'min'
project: ${{ matrix.pkg.dir }}
- uses: actions/cache@v6
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/julia-buildpkg@v1.6
with:
project: ${{ matrix.pkg.dir }}
- uses: julia-actions/julia-runtest@v1
with:
project: ${{ matrix.pkg.dir }}
- uses: julia-actions/julia-processcoverage@v1
with:
directories: ${{ matrix.pkg.dir }}/src
- uses: codecov/codecov-action@v7
with:
files: lcov.info
Expand Down Expand Up @@ -163,19 +204,106 @@ jobs:
shell: julia --project=monorepo {0}
run: |
using Pkg;
Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowTypes")])
Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowTypes"), PackageSpec(path="src/ArrowStrings")])
- name: Run monorepo tests
continue-on-error: false
run: >
julia --color=yes --project=monorepo -e 'using Pkg; Pkg.test("Arrow")'
test_min_arrowtypes:
name: Arrow.jl - ArrowTypes 2.0 compatibility
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: '1.10'
project: '.'
- uses: actions/cache@v6
with:
path: ~/.julia/artifacts
key: min-arrowtypes-${{ runner.os }}-${{ hashFiles('Project.toml') }}
restore-keys: min-arrowtypes-${{ runner.os }}-
- name: Resolve the minimum supported ArrowTypes version
shell: julia --project=. {0}
run: |
using Pkg
Pkg.develop(PackageSpec(path="src/ArrowStrings"))
Pkg.add(PackageSpec(name="ArrowTypes", version=v"2.0.0"))
Pkg.pin(PackageSpec(name="ArrowTypes"))
- name: Test custom-type file and stream round trips
run: julia --startup-file=no --history-file=no --project=. test/min_arrowtypes_compat.jl
test_windows:
name: ${{ matrix.pkg.name }} - Julia latest - Windows - 2 threads
runs-on: windows-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
pkg:
- name: Arrow.jl
dir: '.'
- name: ArrowTypes.jl
dir: './src/ArrowTypes'
- name: ArrowStrings.jl
dir: './src/ArrowStrings'
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: '1'
project: ${{ matrix.pkg.dir }}
- uses: actions/cache@v6
with:
path: ~/.julia/artifacts
key: windows-test-${{ hashFiles('**/Project.toml') }}
restore-keys: windows-test-
- name: Prepare Arrow.jl development dependencies
if: matrix.pkg.name == 'Arrow.jl'
shell: julia --project=. {0}
run: |
using Pkg
Pkg.develop([PackageSpec(path="src/ArrowStrings"), PackageSpec(path="src/ArrowTypes")])
- uses: julia-actions/julia-buildpkg@v1.6
with:
project: ${{ matrix.pkg.dir }}
- uses: julia-actions/julia-runtest@v1
env:
JULIA_NUM_THREADS: 2
with:
project: ${{ matrix.pkg.dir }}
trim:
name: ArrowCore and ArrowStrings JuliaC trim-safe compile
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: '1.12.6'
- uses: actions/cache@v6
with:
path: ~/.julia/artifacts
key: trim-${{ runner.os }}-${{ hashFiles('test/trim/Project.toml') }}
restore-keys: trim-${{ runner.os }}-
- name: Compile and run the trim-safe ArrowCore and ArrowStrings workload
run: julia --startup-file=no --history-file=no test/trim_compile_tests.jl
docs:
name: Documentation
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- uses: julia-actions/julia-buildpkg@latest
- uses: julia-actions/julia-docdeploy@latest
- uses: julia-actions/setup-julia@v3
with:
version: '1'
- name: Prepare Arrow.jl development dependencies for the docs
shell: julia --project=docs {0}
run: |
using Pkg
Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowStrings"), PackageSpec(path="src/ArrowTypes")])
- uses: julia-actions/julia-buildpkg@v1.7.0
- uses: julia-actions/julia-docdeploy@v1.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
Expand All @@ -186,11 +314,9 @@ jobs:
- uses: julia-actions/setup-julia@v3
- uses: actions/checkout@v7
- name: Install JuliaFormatter and format
# This will use the latest version by default but you can set the version like so:
# julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
run: |
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter"))'
julia -e 'using JuliaFormatter; format(".", verbose=true)'
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="2.12.4"))'
julia -e 'using JuliaFormatter; format(".", verbose=true)'
- name: Format check
run: |
julia -e '
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/ci_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ jobs:
dir: '.'
- name: ArrowTypes.jl
dir: './src/ArrowTypes'
- name: ArrowStrings.jl
dir: './src/ArrowStrings'
version:
- 'nightly'
os:
Expand Down Expand Up @@ -64,7 +66,16 @@ jobs:
JULIA_NUM_THREADS: ${{ matrix.nthreads }}
with:
project: ${{ matrix.pkg.dir }}
- uses: julia-actions/julia-processcoverage@v1
- name: Process Arrow.jl coverage
if: matrix.pkg.name == 'Arrow.jl'
uses: julia-actions/julia-processcoverage@v1
with:
directories: src,ext
- name: Process subpackage coverage
if: matrix.pkg.name != 'Arrow.jl'
uses: julia-actions/julia-processcoverage@v1
with:
directories: ${{ matrix.pkg.dir }}/src
- uses: codecov/codecov-action@v7
with:
files: lcov.info
Expand Down Expand Up @@ -101,7 +112,7 @@ jobs:
shell: julia --project=monorepo {0}
run: |
using Pkg;
Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowTypes")])
Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowTypes"), PackageSpec(path="src/ArrowStrings")])
- name: Run monorepo tests
continue-on-error: false
run: >
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/conformance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# 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: Conformance
on:
workflow_dispatch:
schedule:
- cron: '30 1 * * 1'
pull_request:
paths:
- 'Project.toml'
- 'conformance/**'
- 'src/**'
- 'test/**'
- '.github/workflows/conformance.yml'

permissions:
contents: read

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

jobs:
conformance:
name: Arrow corpus and external oracles
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: '1.12.6'
- uses: actions/cache@v6
with:
path: ~/.julia/artifacts
key: conformance-${{ runner.os }}-${{ hashFiles('conformance/host/Project.toml') }}
restore-keys: conformance-${{ runner.os }}-
- name: Run the Arrow corpus and PyArrow/Nanoarrow oracles
run: julia --startup-file=no --history-file=no conformance/run.jl --rebuild
Loading
Loading