Skip to content

Conversation

@joseph-isaacs
Copy link
Contributor

Add Manual Trigger Support to Fuzzer Fix Automation

This PR adds workflow_dispatch support to the fuzzer fix automation workflow, allowing manual triggering on specific issues.

Motivation

The fuzzer fix automation workflow currently only triggers automatically when:

  1. An issue is opened with the fuzzer label
  2. The fuzzer label is added to an existing issue

However, there are cases where manual triggering is useful:

Changes

Added workflow_dispatch Trigger

workflow_dispatch:
  inputs:
    issue_number:
      description: 'Issue number to analyze and fix'
      required: true
      type: number

Fetch Issue Details for Manual Runs

When manually triggered, the workflow fetches issue details via gh issue view:

  • Issue number
  • Issue title
  • Issue body
  • Issue labels

Support Both Trigger Modes

The workflow now handles both automatic and manual triggers:

  • Automatic: Uses github.event.issue.*
  • Manual: Uses inputs.issue_number and fetched issue data

Usage

Manual Trigger via GitHub UI

  1. Go to Actions → Fuzzer Fix Automation
  2. Click "Run workflow"
  3. Enter issue number (e.g., 5322)
  4. Click "Run workflow"

Manual Trigger via CLI

gh workflow run fuzzer-fix-automation.yml \
  --repo vortex-data/vortex \
  -f issue_number=5322

Testing

Successfully tested by manually triggering on issue #5322:

Notes

  • Automatic triggers still work exactly as before
  • No changes to the Claude analysis logic
  • Backward compatible with existing behavior

Related: #5322 (test issue)
Depends on: #5319 (already merged)

…zz-issue

# Conflicts:
#	.github/workflows/fuzz.yml
- Remove redundant fuzzer-claude-analysis.yml workflow (PR #5292 handles it inline)
- Remove create-fuzzer-issue.sh script (not needed)
- Update README to document PR #5292's actual implementation:
  - Claude analyzes crashes and creates/updates issues directly
  - Smart duplicate detection with occurrence tracking
  - Issues created with detailed analysis, stack traces, and reproduction steps
  - Conservative approach to avoid false positives
- Add fuzzer-fix-automation.yml workflow
  - Triggers on issues labeled 'fuzzer'
  - Downloads crash artifacts and reproduces crashes
  - Analyzes root cause using Claude Opus 4
  - Attempts to create fixes for straightforward bugs
  - Writes regression tests that fail before fix, pass after
  - Verifies fix with fuzzer, tests, clippy, fmt
  - Posts detailed analysis as issue comment

- Update documentation for two-stage approach
  - Stage 1: Crash detection and issue creation (existing PR #5292)
  - Stage 2: Automated fix attempt (new workflow)
  - Add workflow diagrams showing both stages
  - Document Claude's capabilities and limitations
  - Add examples of successful fixes vs. analysis-only
  - Include cost/performance metrics for both stages
  - Best practices for reviewing automated fixes

This creates a complete fuzzer crash handling pipeline:
1. Detect crash → Create issue with analysis
2. Attempt fix → Post regression tests and verification
Only trigger when 'fuzzer' label is specifically added, not on every
issue creation or label addition. This reduces unnecessary workflow runs.

Before: Runs on all issue opens + all label additions
After: Only runs when 'fuzzer' label is added
The workflow now correctly handles both cases:
1. Issue opened with 'fuzzer' label already applied (from PR #5292)
2. 'fuzzer' label added to existing issue

Without this, we'd miss issues created by the Stage 1 workflow
which uses: gh issue create --label "bug,fuzzer"
Add workflow_dispatch trigger to allow manually running the fix
automation on specific issues via:

  gh workflow run fuzzer-fix-automation.yml -f issue_number=5322

This is useful for:
- Testing the workflow before it's merged to develop
- Re-running analysis on existing issues
- Triggering on issues that were created before workflow was added
The gh CLI automatically uses GITHUB_TOKEN in GitHub Actions
when the appropriate permissions are set. Explicit GH_TOKEN
env var is redundant.
@codecov
Copy link

codecov bot commented Nov 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.26%. Comparing base (9d938cd) to head (40c8089).
⚠️ Report is 3 commits behind head on develop.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@joseph-isaacs joseph-isaacs added the chore Release label indicating a trivial change label Nov 13, 2025
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
The fetch_issue step needs GH_TOKEN to use gh CLI commands.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Add pre-Claude validation steps:
- Validate issue has fuzzer label and required fields
- Download and verify crash artifact exists
- Reproduce the crash to confirm it still exists
- Skip Claude if crash cannot be reproduced (already fixed)
- Provide crash reproduction log to Claude for analysis

This ensures we only run expensive Claude analysis on valid,
reproducible crashes.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Set RUST_BACKTRACE=full when reproducing crashes to get complete
stack traces for better debugging and analysis.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Build the fuzzer target before attempting to reproduce the crash
to ensure it compiles. This catches compilation errors early and
saves time by not attempting reproduction if the code doesn't build.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Major improvements:
- Simplified prompt from 7 detailed steps to 5 concise bullet points
- Removed verbose instructions that may confuse Claude
- Emphasized requirement to post comment with bold text
- Increased max turns from 40 to 60 to give more time
- Added verification step to check if Claude posted comment
- Workflow now fails if Claude doesn't post (catches incomplete runs)

The old prompt was too long and prescriptive. Claude works better
with concise, clear objectives rather than detailed step-by-step
instructions.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
The artifact names in fuzz.yml are hardcoded:
- file_io -> io-fuzzing-crash-artifacts
- array_ops -> operations-fuzzing-crash-artifacts

Added case statement to map target name to correct artifact name
before downloading.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@codspeed-hq
Copy link

codspeed-hq bot commented Nov 13, 2025

CodSpeed Performance Report

Merging #5323 will not alter performance

Comparing ji/cluade-code-fuzzz-issue (40c8089) with develop (9d938cd)1

Summary

✅ 1425 untouched
⏩ 567 skipped2

Footnotes

  1. No successful run was found on develop (5405737) during the generation of this report, so 9d938cd was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

  2. 567 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

joseph-isaacs and others added 3 commits November 13, 2025 14:58
Use --dev flag for cargo fuzz build and run commands:
- Build step: faster compilation
- Reproduce step: faster execution
- Claude prompt: instruct to use --dev flag

Debug builds are much faster than release builds and sufficient
for crash reproduction and testing.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
- Increase max-turns from 60 to 120 to give Claude more time
- Increase workflow timeout from 60 to 90 minutes
- Update prompt to encourage posting progress comments at each stage:
  - Post analysis immediately after understanding crash
  - Post progress after implementing fix
  - Post final summary after writing tests
- Add structured comment templates for each stage
- Update verification to check for multiple comments from bot
- This ensures work is visible even if turn limit is hit

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update the fuzzer fix automation prompt to ensure Claude includes
ALL relevant code inline in issue comments:

- After analysis: Include the problematic code section
- After fix: Include the COMPLETE changed code (entire function)
- After tests: Include the COMPLETE test code inline
- For unfixable issues: Include problematic code with suggestions

This makes the automated fix work fully reviewable directly from
the GitHub issue without needing to check out the code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@joseph-isaacs joseph-isaacs marked this pull request as ready for review November 14, 2025 10:55
- Accept develop's refactored approach using reusable workflow
- Keep automation integration with attempt-fix jobs
- Remove inline Claude prompt in favor of report-fuzz-crash.yml
@joseph-isaacs joseph-isaacs requested a review from 0ax1 November 14, 2025 14:43
- Remove on:issues trigger (no longer needed)
- Only accept inputs from workflow_call and workflow_dispatch
- Simplify all references to use inputs.issue_number directly
- Remove conditional logic for github.event.issue handling
@0ax1
Copy link
Contributor

0ax1 commented Nov 14, 2025

@claude review

attempt-fix-io:
name: "Attempt Fix for IO Fuzz Crash"
needs: report-io-fuzz-failures
if: always() && needs.report-io-fuzz-failures.outputs.issue_number != ''
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hah, what is even going on here: if: always() && needs.report-io-fuzz-failures.outputs.issue_number != ''

@claude
Copy link
Contributor

claude bot commented Nov 14, 2025

Claude finished @0ax1's task —— View job


Code Review for PR #5323

Reviewing manual trigger support for fuzzer fix automation


Summary

This PR successfully adds manual trigger support to the fuzzer fix automation workflow. The implementation is generally solid, but I have some observations and recommendations.

Key Changes

1. .github/workflows/fuzzer-fix-automation.yml

✅ Strengths:

  • Clean implementation of workflow_dispatch alongside workflow_call
  • Both triggers use identical inputs, ensuring consistency
  • Proper validation of issue labels (must have fuzzer label)
  • Good progressive commenting strategy with detailed templates for Claude
  • Comprehensive error handling and validation steps

🔍 Observations:

  1. Conditional logic (lines 23-25):

    if: |
      github.event_name == 'workflow_call' ||
      github.event_name == 'workflow_dispatch'

    This is redundant since the workflow only has these two triggers. The job will only run when one of these events occurs anyway. You could simplify to just if: always() or remove the condition entirely.

  2. Issue fetch approach (lines 40-50):
    The workflow fetches issue details using gh issue view for both manual and automatic triggers. This is fine, but creates an implicit dependency that the issue must exist and be accessible. Consider adding explicit error handling if the issue doesn't exist.

  3. Claude tool restrictions (line 362):

    --allowedTools "Read,Write,Edit,Glob,Grep,Bash(cargo:*),Bash(gh issue comment:*),..."

    The Bash(RUST_BACKTRACE=*:*) pattern might be overly permissive. Consider if you really need to allow arbitrary commands with RUST_BACKTRACE prefix.

  4. Missing workflow_dispatch validation:
    When manually triggered, there's no check that the provided issue_number is actually a valid integer. The GitHub Actions type: number helps, but additional validation could be useful.

2. .github/workflows/fuzz.yml

✅ Strengths:

  • Clean integration of the fix automation workflow
  • Proper use of workflow_call to invoke the automation

🤔 Addressing the review comment (line 131):

if: always() && needs.report-io-fuzz-failures.outputs.issue_number != ''

The reviewer (@0ax1) asked "what is even going on here?" This line is actually correct and necessary:

  • always() - Ensures this job runs even if previous jobs failed (which they will if crashes are found)
  • needs.report-io-fuzz-failures.outputs.issue_number != '' - Only runs if the reporting job successfully created/found an issue

However, there's a potential issue: This condition doesn't check if report-io-fuzz-failures actually succeeded. If that job fails, outputs.issue_number will be empty, but the condition might still try to evaluate it. A more robust version would be:

if: always() && needs.report-io-fuzz-failures.result == 'success' && needs.report-io-fuzz-failures.outputs.issue_number != ''

Recommendations

High Priority

  1. Add explicit result checking in fuzz.yml:131:

    if: always() && needs.report-io-fuzz-failures.result == 'success' && needs.report-io-fuzz-failures.outputs.issue_number != ''
  2. Add error handling for missing issues in fuzzer-fix-automation.yml:

    - name: Fetch issue details
      id: fetch_issue
      continue-on-error: true
      env:
        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        if ! ISSUE_DATA=$(gh issue view ${{ inputs.issue_number }} --repo ${{ github.repository }} --json number,title,body,labels); then
          echo "❌ Issue #${{ inputs.issue_number }} not found or not accessible"
          exit 1
        fi
        # ... rest of the script

Medium Priority

  1. Simplify redundant conditional - Remove or simplify the job-level if condition in fuzzer-fix-automation.yml:23-25

  2. Review Claude tool permissions - Consider whether Bash(RUST_BACKTRACE=*:*) is too permissive

Low Priority

  1. Add workflow_dispatch testing documentation - Consider adding a note in the PR or workflow comments about testing the workflow manually

Testing Notes

The PR description mentions successful manual testing on issue #5322, which is good. Consider:

  • Testing what happens when an invalid issue number is provided
  • Testing what happens when an issue without the fuzzer label is provided
  • Testing the workflow_call path from the fuzz.yml integration

Overall Assessment

✅ Approve with minor suggestions

The implementation is sound and achieves the stated goals. The manual trigger support is well-designed and the integration is clean. The main improvements would be:

  1. More robust error checking in the conditional logic
  2. Better error handling for missing/invalid issues

The code is production-ready as-is, but would benefit from the suggested hardening.


Re: Review comment on line 131: The logic is correct but could be more robust. See "Addressing the review comment" section above.


@0ax1
Copy link
Contributor

0ax1 commented Nov 14, 2025

@claude is this secure, in particular in terms of token handling?

@claude
Copy link
Contributor

claude bot commented Nov 14, 2025

Claude finished @0ax1's task —— View job


Security Analysis: Token Handling

I've reviewed the token handling in both workflow files. Here's my comprehensive security assessment:

Todo List

  • Read fuzzer-fix-automation.yml workflow
  • Read fuzz.yml workflow
  • Analyze token usage patterns
  • Review Claude tool permissions
  • Assess security implications
  • Provide security assessment

Summary: ✅ Generally Secure with Minor Concerns

The token handling is largely secure, but there are a few areas worth noting and one moderate concern with Claude's bash tool permissions.


Token Usage Analysis

1. GITHUB_TOKEN (Automatic Token)

Used in:

  • fuzzer-fix-automation.yml lines 43, 55, 93, 123, 201, 242, 367
  • fuzz.yml lines 30, 126, 254 (passed to other workflows)

Scoped Permissions:

permissions:
  contents: write
  pull-requests: write
  issues: write
  id-token: write

Security Assessment: ✅ Secure

  • Uses GitHub's automatically-provided GITHUB_TOKEN with explicit, minimal permissions
  • Properly scoped to only what's needed for the workflow
  • Token is automatically scoped to the repository and expires after the job
  • Good practice: Explicit permissions declaration prevents over-privilege

2. CLAUDE_CODE_OAUTH_TOKEN (Secret)

Used in:

  • fuzzer-fix-automation.yml line 241
  • Passed via secrets parameter to Claude Code Action

Security Assessment: ✅ Secure

  • Stored as a GitHub secret (encrypted at rest)
  • Only exposed to the Claude Code Action
  • Not logged or exposed in workflow output
  • Secret is not accessible via bash commands in the workflow

3. AWS Credentials (R2 Storage)

Used in:

  • fuzz.yml lines 45-46, 98-99, 226-227 (corpus storage)

Security Assessment: ✅ Secure

  • Stored as GitHub secrets
  • Used only for accessing fuzzer corpus storage
  • Properly scoped to specific S3 bucket operations
  • Not passed to Claude or exposed in logs

Claude Code Action Security

Tool Restrictions (Line 362)

--allowedTools "Read,Write,Edit,Glob,Grep,Bash(cargo:*),Bash(gh issue comment:*),Bash(gh run download:*),Bash(curl:*),Bash(find:*),Bash(ls:*),Bash(cat:*),Bash(RUST_BACKTRACE=*:*)"

Security Assessment: ⚠️ Moderate Concern

✅ Good Security Practices:

  1. Whitelisted tools - Only specific tools are allowed (Read, Write, Edit, etc.)
  2. Restricted bash commands - Using pattern matching to limit what can be executed
  3. No arbitrary shell access - Claude cannot run arbitrary commands
  4. Safe git operations - No git push/commit allowed, preventing unauthorized code changes
  5. Controlled GitHub API access - Limited to gh issue comment and gh run download

⚠️ Potential Concerns:

  1. Bash(RUST_BACKTRACE=*:*) - This pattern is overly permissive:

    • Allows ANY command if prefixed with RUST_BACKTRACE=<value>
    • Could potentially be exploited: RUST_BACKTRACE=1:rm -rf / (hypothetically)
    • Recommendation: Replace with specific allowed commands:
      Bash(RUST_BACKTRACE=*:cargo:*)
      Bash(RUST_BACKTRACE=*:ls:*)
      Bash(RUST_BACKTRACE=*:cat:*)
    • Or use just the specific pattern needed for fuzzer runs
  2. Bash(curl:*) - Allows arbitrary HTTP requests:

    • Claude could make external network requests
    • Could potentially exfiltrate data (though unlikely given the context)
    • Risk level: Low (Claude is trusted, but defense-in-depth suggests limiting this)
    • Recommendation: Consider if curl is actually needed, or restrict to specific domains if possible
  3. Bash(find:*) - Allows filesystem traversal:

    • Could be used to discover sensitive files
    • Risk level: Low (filesystem is limited to repo checkout)
    • Mitigation: Acceptable since it's scoped to repo files only

Token Exposure Risks

✅ No Direct Exposure

  • GITHUB_TOKEN is only passed to:
    • Standard GitHub actions (checkout, setup)
    • gh CLI commands (safe, designed for this)
    • Claude Code Action (safe, official action)

✅ Secrets Not Accessible to Claude

  • Claude Code Action receives github_token and claude_code_oauth_token
  • AWS secrets are NOT passed to Claude
  • Claude cannot access other secrets

✅ Output Safety

  • show_full_output: true doesn't expose tokens
  • GitHub Actions automatically redacts secrets in logs

Potential Attack Vectors

1. Malicious Issue Content

Risk: An attacker creates an issue with malicious content that Claude processes

Mitigations in place:

  • Issue must have fuzzer label (line 100)
  • Issue content is only used for analysis, not execution
  • Claude's bash permissions are restricted
  • No eval or dynamic code execution of issue content

Assessment: ✅ Low risk

2. Malicious Crash Files

Risk: Crash file contains exploitable content

Mitigations in place:

  • Crash files come from trusted artifact storage
  • Only processes artifacts from the same repository's workflow runs
  • Crash files are used as fuzzer input, not executed directly

Assessment: ✅ Low risk

3. Claude Code Action Compromise

Risk: Claude Code Action itself is malicious

Mitigations in place:

  • Using official Anthropic action: anthropics/claude-code-action@v1
  • Action runs with limited permissions
  • Cannot push code changes (no git push allowed)
  • Cannot access AWS secrets

Assessment: ✅ Low risk (trusting Anthropic's official action)


Recommendations

High Priority

  1. Fix overly permissive RUST_BACKTRACE pattern:
    # Change from:
    Bash(RUST_BACKTRACE=*:*)
    
    # To:
    Bash(RUST_BACKTRACE=*:cargo:*)

Medium Priority

  1. Consider restricting curl:

    • Document why curl is needed
    • If possible, restrict to specific domains or remove if not needed
  2. Add token validation logging:

    • Consider adding a step that logs (without exposing) that tokens are properly set
    • Helps detect configuration issues

Low Priority

  1. Principle of least privilege for permissions:
    • Current permissions look good, but periodically review if all are needed
    • Consider if id-token: write is actually required

Conclusion

Overall Security Rating: ✅ Good with Minor Improvements Needed

The workflow demonstrates good security practices:

  • ✅ Explicit permission scoping
  • ✅ Proper secret handling
  • ✅ Restricted tool access for Claude
  • ✅ No arbitrary code execution
  • ✅ Tokens properly isolated

Main concern: The Bash(RUST_BACKTRACE=*:*) pattern should be tightened to prevent potential abuse.

Recommendation: This PR is safe to merge as-is, but I'd suggest addressing the RUST_BACKTRACE pattern before or shortly after merging to harden security further.


Copy link
Contributor

@0ax1 0ax1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ But worthwhile to double check security aspects.

- Change from overly permissive RUST_BACKTRACE=*:*
- Now only allows: RUST_BACKTRACE=* cargo:*
- Prevents potential command injection via RUST_BACKTRACE prefix
@joseph-isaacs joseph-isaacs enabled auto-merge (squash) November 14, 2025 15:51
u
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs merged commit bd6e37a into develop Nov 14, 2025
38 of 39 checks passed
@joseph-isaacs joseph-isaacs deleted the ji/cluade-code-fuzzz-issue branch November 14, 2025 16:02
peasee added a commit to spiceai/vortex that referenced this pull request Nov 27, 2025
* Feature: add `into_mut` methods on mask and buffer (#5214)

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* fix[pco]: cast condition check (#5239)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* chore: Slightly nicer fuzzer assertions (#5240)

Signed-off-by: Robert Kruszewski <github@robertk.io>

* Fix: remove TPC-H SF 1000 from nightly benchmarks (#5235)

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* Feature: add `into_mut` to vectors (#5221)

Revived from https://github.com/vortex-data/vortex/pull/5215 since that
was supposed to merge _after_
https://github.com/vortex-data/vortex/pull/5214

---------

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Co-authored-by: Nicholas Gates <nick@nickgates.com>

* chore: Convert DuckDB vectors directly to vortex vectors (#5228)

Signed-off-by: Robert Kruszewski <github@robertk.io>

* fix[array]: take propagate isconstant if indices all_valid (#5241)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* Add conversions from Vectors into ArrayRef (#5243)

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* Batch execution API (#5242)

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* Fix: make `Filter` compute take `self` instead of `&self` (#5248)

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* fix[fuzz]: apply mask to validity in baseline (#5249)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* Fix: silence codspeed warning (#5253)

it only triggered in codspeed

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* Chore: remove feature gates from vortex-compute (#5254)

I left arrow in there because we have arrow gated by features in other
places in the codebase

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* Feature: add in-place filter for `BufferMut` + benchmarks (#5238)

* Fix: casting Zstd array to non nullable requires decompression (#5258)

* Update crate-ci/typos action to v1.39.0 (#5260)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| minor | `v1.38.1` -> `v1.39.0` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

###
[`v1.39.0`](https://redirect.github.com/crate-ci/typos/blob/HEAD/CHANGELOG.md#014---2019-11-03)

[Compare
Source](https://redirect.github.com/crate-ci/typos/compare/v1.38.1...v1.39.0)

##### Bug Fixes

- Ignore numbers as identifiers
([a00831c8](https://redirect.github.com/crate-ci/typos/commit/a00831c847b7efd81be520ea9b5d02f70555351f))
- Improve the organization of --help
([a48a457c](https://redirect.github.com/crate-ci/typos/commit/a48a457cc3ca817850118e2a2fb8b20fecdd40b8))

##### Features

- Dump files, identifiers, and words
([ce365ae1](https://redirect.github.com/crate-ci/typos/commit/ce365ae12e12fddfb6fc42a7f1e5ea71834d6051),
closes
[#&#8203;41](https://redirect.github.com/crate-ci/typos/issues/41))
- Give control over allowed identifier characters for leading vs rest
([107308a6](https://redirect.github.com/crate-ci/typos/commit/107308a655a425eb593bf5e4928572c16e6a9bdd))

##### Performance

- Use standard identifier rules to avoid doing umber checks
([107308a6](https://redirect.github.com/crate-ci/typos/commit/107308a655a425eb593bf5e4928572c16e6a9bdd))
- Only do hex check if digits are in identifiers
([68cd36d0](https://redirect.github.com/crate-ci/typos/commit/68cd36d0de90226dbc9d31c2ce6d8bf6b69adb5c))

<!-- next-url -->

[Unreleased]:
https://redirect.github.com/crate-ci/typos/compare/v1.39.0...HEAD

[1.39.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.38.1...v1.39.0

[1.38.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.38.0...v1.38.1

[1.38.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.37.3...v1.38.0

[1.37.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.37.2...v1.37.3

[1.37.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.37.1...v1.37.2

[1.37.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.37.0...v1.37.1

[1.37.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.36.3...v1.37.0

[1.36.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.36.2...v1.36.3

[1.36.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.36.1...v1.36.2

[1.36.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.36.0...v1.36.1

[1.36.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.8...v1.36.0

[1.35.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.7...v1.35.8

[1.35.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.6...v1.35.7

[1.35.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.5...v1.35.6

[1.35.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.4...v1.35.5

[1.35.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.3...v1.35.4

[1.35.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.2...v1.35.3

[1.35.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.1...v1.35.2

[1.35.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.35.0...v1.35.1

[1.35.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.34.0...v1.35.0

[1.34.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.33.1...v1.34.0

[1.33.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.33.0...v1.33.1

[1.33.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.32.0...v1.33.0

[1.32.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.31.2...v1.32.0

[1.31.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.31.1...v1.31.2

[1.31.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.31.0...v1.31.1

[1.31.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.30.3...v1.31.0

[1.30.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.30.2...v1.30.3

[1.30.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.30.1...v1.30.2

[1.30.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.30.0...v1.30.1

[1.30.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.10...v1.30.0

[1.29.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.9...v1.29.10

[1.29.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.8...v1.29.9

[1.29.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.7...v1.29.8

[1.29.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.6...v1.29.7

[1.29.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.5...v1.29.6

[1.29.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.4...v1.29.5

[1.29.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.3...v1.29.4

[1.29.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.2...v1.29.3

[1.29.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.1...v1.29.2

[1.29.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.29.0...v1.29.1

[1.29.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.28.4...v1.29.0

[1.28.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.28.3...v1.28.4

[1.28.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.28.2...v1.28.3

[1.28.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.28.1...v1.28.2

[1.28.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.28.0...v1.28.1

[1.28.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.27.3...v1.28.0

[1.27.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.27.2...v1.27.3

[1.27.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.27.1...v1.27.2

[1.27.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.27.0...v1.27.1

[1.27.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.8...v1.27.0

[1.26.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.7...v1.26.8

[1.26.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.6...v1.26.7

[1.26.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.5...v1.26.6

[1.26.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.4...v1.26.5

[1.26.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.3...v1.26.4

[1.26.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.2...v1.26.3

[1.26.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.1...v1.26.2

[1.26.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.26.0...v1.26.1

[1.26.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.25.0...v1.26.0

[1.25.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.6...v1.25.0

[1.24.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.5...v1.24.6

[1.24.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.4...v1.24.5

[1.24.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.3...v1.24.4

[1.24.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.2...v1.24.3

[1.24.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.1...v1.24.2

[1.24.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.24.0...v1.24.1

[1.24.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.7...v1.24.0

[1.23.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.6...v1.23.7

[1.23.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.5...v1.23.6

[1.23.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.4...v1.23.5

[1.23.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.3...v1.23.4

[1.23.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.2...v1.23.3

[1.23.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.1...v1.23.2

[1.23.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.23.0...v1.23.1

[1.23.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.9...v1.23.0

[1.22.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.8...v1.22.9

[1.22.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.7...v1.22.8

[1.22.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.6...v1.22.7

[1.22.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.5...v1.22.6

[1.22.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.4...v1.22.5

[1.22.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.3...v1.22.4

[1.22.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.2...v1.22.3

[1.22.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.1...v1.22.2

[1.22.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.22.0...v1.22.1

[1.22.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.21.0...v1.22.0

[1.21.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.10...v1.21.0

[1.20.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.9...v1.20.10

[1.20.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.8...v1.20.9

[1.20.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.7...v1.20.8

[1.20.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.6...v1.20.7

[1.20.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.5...v1.20.6

[1.20.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.4...v1.20.5

[1.20.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.3...v1.20.4

[1.20.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.2...v1.20.3

[1.20.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.1...v1.20.2

[1.20.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.20.0...v1.20.1

[1.20.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.19.0...v1.20.0

[1.19.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.18.2...v1.19.0

[1.18.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.18.1...v1.18.2

[1.18.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.18.0...v1.18.1

[1.18.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.17.2...v1.18.0

[1.17.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.17.1...v1.17.2

[1.17.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.17.0...v1.17.1

[1.17.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.26...v1.17.0

[1.16.26]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.25...v1.16.26

[1.16.25]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.24...v1.16.25

[1.16.24]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.23...v1.16.24

[1.16.23]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.22...v1.16.23

[1.16.22]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.21...v1.16.22

[1.16.21]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.20...v1.16.21

[1.16.20]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.19...v1.16.20

[1.16.19]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.18...v1.16.19

[1.16.18]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.17...v1.16.18

[1.16.17]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.16...v1.16.17

[1.16.16]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.15...v1.16.16

[1.16.15]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.14...v1.16.15

[1.16.14]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.13...v1.16.14

[1.16.13]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.12...v1.16.13

[1.16.12]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.11...v1.16.12

[1.16.11]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.10...v1.16.11

[1.16.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.9...v1.16.10

[1.16.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.8...v1.16.9

[1.16.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.7...v1.16.8

[1.16.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.6...v1.16.7

[1.16.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.5...v1.16.6

[1.16.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.4...v1.16.5

[1.16.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.3...v1.16.4

[1.16.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.2...v1.16.3

[1.16.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.1...v1.16.2

[1.16.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.16.0...v1.16.1

[1.16.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.10...v1.16.0

[1.15.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.9...v1.15.10

[1.15.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.8...v1.15.9

[1.15.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.7...v1.15.8

[1.15.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.6...v1.15.7

[1.15.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.5...v1.15.6

[1.15.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.4...v1.15.5

[1.15.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.3...v1.15.4

[1.15.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.2...v1.15.3

[1.15.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.1...v1.15.2

[1.15.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.15.0...v1.15.1

[1.15.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.12...v1.15.0

[1.14.12]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.11...v1.14.12

[1.14.11]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.10...v1.14.11

[1.14.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.9...v1.14.10

[1.14.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.8...v1.14.9

[1.14.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.7...v1.14.8

[1.14.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.6...v1.14.7

[1.14.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.5...v1.14.6

[1.14.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.4...v1.14.5

[1.14.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.3...v1.14.4

[1.14.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.2...v1.14.3

[1.14.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.1...v1.14.2

[1.14.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.14.0...v1.14.1

[1.14.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.26...v1.14.0

[1.13.26]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.25...v1.13.26

[1.13.25]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.24...v1.13.25

[1.13.24]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.23...v1.13.24

[1.13.23]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.22...v1.13.23

[1.13.22]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.21...v1.13.22

[1.13.21]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.20...v1.13.21

[1.13.20]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.19...v1.13.20

[1.13.19]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.18...v1.13.19

[1.13.18]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.17...v1.13.18

[1.13.17]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.16...v1.13.17

[1.13.16]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.15...v1.13.16

[1.13.15]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.14...v1.13.15

[1.13.14]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.13...v1.13.14

[1.13.13]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.12...v1.13.13

[1.13.12]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.11...v1.13.12

[1.13.11]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.10...v1.13.11

[1.13.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.9...v1.13.10

[1.13.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.8...v1.13.9

[1.13.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.7...v1.13.8

[1.13.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.6...v1.13.7

[1.13.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.5...v1.13.6

[1.13.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.4...v1.13.5

[1.13.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.3...v1.13.4

[1.13.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.2...v1.13.3

[1.13.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.1...v1.13.2

[1.13.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.13.0...v1.13.1

[1.13.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.14...v1.13.0

[1.12.14]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.13...v1.12.14

[1.12.13]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.12...v1.12.13

[1.12.12]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.11...v1.12.12

[1.12.11]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.10...v1.12.11

[1.12.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.9...v1.12.10

[1.12.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.8...v1.12.9

[1.12.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.7...v1.12.8

[1.12.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.6...v1.12.7

[1.12.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.5...v1.12.6

[1.12.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.4...v1.12.5

[1.12.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.3...v1.12.4

[1.12.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.2...v1.12.3

[1.12.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.1...v1.12.2

[1.12.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.12.0...v1.12.1

[1.12.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.5...v1.12.0

[1.11.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.4...v1.11.5

[1.11.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.3...v1.11.4

[1.11.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.2...v1.11.3

[1.11.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.1...v1.11.2

[1.11.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.11.0...v1.11.1

[1.11.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.10.3...v1.11.0

[1.10.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.10.2...v1.10.3

[1.10.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.10.1...v1.10.2

[1.10.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.10.0...v1.10.1

[1.10.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.9.0...v1.10.0

[1.9.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.8.1...v1.9.0

[1.8.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.8.0...v1.8.1

[1.8.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.7.3...v1.8.0

[1.7.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.7.2...v1.7.3

[1.7.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.7.1...v1.7.2

[1.7.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.7.0...v1.7.1

[1.7.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.6.0...v1.7.0

[1.6.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.5.0...v1.6.0

[1.5.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.4.1...v1.5.0

[1.4.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.4.0...v1.4.1

[1.4.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.9...v1.4.0

[1.3.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.8...v1.3.9

[1.3.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.7...v1.3.8

[1.3.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.6...v1.3.7

[1.3.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.5...v1.3.6

[1.3.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.4...v1.3.5

[1.3.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.3...v1.3.4

[1.3.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.2...v1.3.3

[1.3.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.1...v1.3.2

[1.3.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.3.0...v1.3.1

[1.3.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.2.1...v1.3.0

[1.2.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.2.0...v1.2.1

[1.2.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.9...v1.2.0

[1.1.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.8...v1.1.9

[1.1.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.7...v1.1.8

[1.1.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.6...v1.1.7

[1.1.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.5...v1.1.6

[1.1.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.4...v1.1.5

[1.1.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.3...v1.1.4

[1.1.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.2...v1.1.3

[1.1.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.1...v1.1.2

[1.1.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.1.0...v1.1.1

[1.1.0]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.11...v1.1.0

[1.0.11]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.10...v1.0.11

[1.0.10]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.9...v1.0.10

[1.0.9]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.8...v1.0.9

[1.0.8]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.7...v1.0.8

[1.0.7]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.6...v1.0.7

[1.0.6]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.5...v1.0.6

[1.0.5]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.4...v1.0.5

[1.0.4]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.3...v1.0.4

[1.0.3]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.2...v1.0.3

[1.0.2]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.1...v1.0.2

[1.0.1]:
https://redirect.github.com/crate-ci/typos/compare/v1.0.0...v1.0.1

[1.0.0]:
https://redirect.github.com/crate-ci/typos/compare/v0.4.0...v1.0.0

[0.4.0]:
https://redirect.github.com/crate-ci/typos/compare/v0.3.0...v0.4.0

[0.3.0]:
https://redirect.github.com/crate-ci/typos/compare/v0.2.0...v0.3.0

[0.2.0]:
https://redirect.github.com/crate-ci/typos/compare/v0.1.4...v0.2.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update all patch updates (#5259)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [cc](https://redirect.github.com/rust-lang/cc-rs) |
workspace.dependencies | patch | `1.2.44` -> `1.2.45` |
| [erased-serde](https://redirect.github.com/dtolnay/erased-serde) |
workspace.dependencies | patch | `0.4.8` -> `0.4.9` |
| [jiff](https://redirect.github.com/BurntSushi/jiff) |
workspace.dependencies | patch | `0.2.15` -> `0.2.16` |

---

### Release Notes

<details>
<summary>rust-lang/cc-rs (cc)</summary>

###
[`v1.2.45`](https://redirect.github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#1245---2025-11-07)

[Compare
Source](https://redirect.github.com/rust-lang/cc-rs/compare/cc-v1.2.44...cc-v1.2.45)

##### Other

- Regenerate target info
([#&#8203;1606](https://redirect.github.com/rust-lang/cc-rs/pull/1606))
- Use a default check for the "env" variable in apple\_sdk\_name
([#&#8203;1605](https://redirect.github.com/rust-lang/cc-rs/pull/1605))

</details>

<details>
<summary>dtolnay/erased-serde (erased-serde)</summary>

###
[`v0.4.9`](https://redirect.github.com/dtolnay/erased-serde/releases/tag/0.4.9)

[Compare
Source](https://redirect.github.com/dtolnay/erased-serde/compare/0.4.8...0.4.9)

- Allow underlying serializer to dangle during erased serializer drop
([#&#8203;117](https://redirect.github.com/dtolnay/erased-serde/issues/117))

</details>

<details>
<summary>BurntSushi/jiff (jiff)</summary>

###
[`v0.2.16`](https://redirect.github.com/BurntSushi/jiff/blob/HEAD/CHANGELOG.md#0216-2025-11-07)

[Compare
Source](https://redirect.github.com/BurntSushi/jiff/compare/0.2.15...0.2.16)

\===================
This release contains a number of enhancements and bug fixes that have
accrued
over the last few months. Most are small polishes. A couple of the bug
fixes
apply to panics that could occur when parsing invalid `TZ` strings or
invalid
`strptime` format strings.

Also, parsing into a `Span` should now be much faster (for both the ISO
8601
and "friendly" duration formats).

Enhancements:

- [#&#8203;298](https://redirect.github.com/BurntSushi/jiff/issues/298):
  Add Serde helpers for (de)serializing `std::time::Duration` values.
- [#&#8203;396](https://redirect.github.com/BurntSushi/jiff/issues/396):
Add `Sub` and `Add` trait implementations for `Zoned` (in addition to
the
  already existing trait implementations for `&Zoned`).
- [#&#8203;397](https://redirect.github.com/BurntSushi/jiff/pull/397):
Add `BrokenDownTime::set_meridiem` and ensure it overrides the hour when
  formatting.
- [#&#8203;409](https://redirect.github.com/BurntSushi/jiff/pull/409):
Switch dependency on `serde` to `serde_core`. This should help speed up
  compilation times in some cases.
- [#&#8203;430](https://redirect.github.com/BurntSushi/jiff/pull/430):
Add new `Zoned::series` API, making it consistent with the same API on
other
  datetime types.
- [#&#8203;432](https://redirect.github.com/BurntSushi/jiff/pull/432):
When `lenient` mode is enabled for `strftime`, Jiff will no longer error
when
  the formatting string contains invalid UTF-8.
- [#&#8203;432](https://redirect.github.com/BurntSushi/jiff/pull/432):
Formatting of `%y` and `%g` no longer fails based on the specific year
value.
- [#&#8203;432](https://redirect.github.com/BurntSushi/jiff/pull/432):
Parsing of `%s` is now a bit more consistent with other fields.
Moreover,
`BrokenDownTime::{to_timestamp,to_zoned}` will now prefer timestamps
parsed
  with `%s` over any other fields that have been parsed.
- [#&#8203;433](https://redirect.github.com/BurntSushi/jiff/pull/433):
Allow parsing just a `%s` into a `Zoned` via the `Etc/Unknown` time
zone.

Bug fixes:

- [#&#8203;386](https://redirect.github.com/BurntSushi/jiff/issues/386):
Fix a bug where `2087-12-31T23:00:00Z` in the `Africa/Casablanca` time
zone
could not be round-tripped (because its offset was calculated
incorrectly as
  a result of not handling "permanent DST" POSIX time zones).
- [#&#8203;407](https://redirect.github.com/BurntSushi/jiff/issues/407):
Fix a panic that occurred when parsing an empty string as a POSIX time
zone.
- [#&#8203;410](https://redirect.github.com/BurntSushi/jiff/issues/410):
  Fix a panic that could occur when parsing `%:` via `strptime` APIs.
- [#&#8203;414](https://redirect.github.com/BurntSushi/jiff/pull/414):
Update some parts of the documentation to indicate that
`TimeZone::unknown()`
is a fallback for `TimeZone::system()` (instead of the `jiff 0.1`
behavior of
  using `TimeZone::UTC`).
- [#&#8203;423](https://redirect.github.com/BurntSushi/jiff/issues/423):
  Fix a panicking bug when reading malformed TZif data.
- [#&#8203;426](https://redirect.github.com/BurntSushi/jiff/issues/426):
  Fix a panicking bug when parsing century (`%C`) via `strptime`.
- [#&#8203;445](https://redirect.github.com/BurntSushi/jiff/pull/445):
  Fixed bugs with parsing durations like `-9223372036854775808s`
  and `-PT9223372036854775808S`.

Performance:

- [#&#8203;445](https://redirect.github.com/BurntSushi/jiff/pull/445):
Parsing into `Span` or `SignedDuration` is now a fair bit faster in some
cases.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: Fix fuzzers baseline nullability for decimal fill_null (#5257)

Signed-off-by: Robert Kruszewski <github@robertk.io>

* Bump codspeed (action and dependency) (#5261)

Closes https://github.com/vortex-data/vortex/issues/5069

Signed-off-by: Adam Gutglick <adam@spiraldb.com>

* chore: Fix fuzzers baseline nullability for compare and take (#5255)

Signed-off-by: Robert Kruszewski <github@robertk.io>

* Bump DF to 50.3.0 (#5263)

Just bump DF by a minor version to make the impact of other changes
easier to distinguish from what this release includes.

Signed-off-by: Adam Gutglick <adam@spiraldb.com>

* [DataFusion] Don't pushdown empty filters (#5264)

Taken out of #5205, I think we might hit
[this](https://github.com/apache/datafusion/issues/18513) issue
otherwise, and this also just make sense generally?

Signed-off-by: Adam Gutglick <adam@spiraldb.com>

* Pipeline execution (#5251)

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* chore: serialize for `Mask` (#5267)

Signed-off-by: blaginin <dima@spiraldb.com>
Co-authored-by: Claude <noreply@anthropic.com>

* chore[array/expr]: move `vortex-expr` into `vortex_array::expr` (#5269)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

---------

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* fix: compare for struct with constant items (#5271)

* feat: use Sparse compression for floats, strings (#5237)

* document reproducible writes (#5280)

Signed-off-by: Onur Satici <onur@spiraldb.com>

* handle null views correctly on varbinview compaction (#5279)

* chore: add slack to readme (#5281)

Signed-off-by: Will Manning <will@willmanning.io>

* feat: impl `expand` for `Buffer` & `BufferMut` (#5270)

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* API and partial implementation of sparse pipelined exection (#5284)

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* fix: vortex-tui browse with search (#5282)

* fix[array]: sum with initial value to fix op assoc (#5278)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* Clarify calling convention for pipeline kernels (#5286)

And implement a zero-copy input kernel

---------

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* fix[vortex-dict]: avoid full materialization in min_max (#5268)

* Pipeline Calling Convention 2 (#5291)

* Guarantees that output vectors have length == 0
* Does not guarantee capacity.
* Inputs are either N or n elements, and defines that in-place but
non-selected elements _must_ be valid.

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* fix[vortex-datafusion]: check field exists in get_field pushdown (#5295)

Previously, any get field expression was pushed down, which resulted in
incorrectly pushing down get fields on non-existent fields, causing an
error at execution time rather than plan time.

This was a mistake on my part that should've been included in #5024

Signed-off-by: Alfonso Subiotto Marques <alfonso.subiotto@polarsignals.com>

* Feature: add aligned bitpacked pipeline kernel (#5299)

Adds an `AlignedBitPackedKernel` that implements bit unpacking as a
pipeline source.

Note that this completely ignores patches for now, since we probably
want to implement patches as a transform node on top of this instead.

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* move vortex-dict into vortex-array (#5289)

I think this is the lowest lift change to enable arrow -> vortex
conversions for dict arrays.
This PR only moves the vortex-dict crate into vortex-array, first commit
only renames, second fixes imports.

with this vortex-array maybe grows 5% in size. looking at crates.io I
don't think vortex-dict is used separately from vortex-array much, so I
removed the vortex-dict crate instead of re-exporting from vortex-array.

I think the change is minimal enough to be reverted when we extract
arrow out from vortex-array, happy to hear peoples thoughts. With this
change we have all arrow supported encodings live in vortex-array

---------

Signed-off-by: Onur Satici <onur@spiraldb.com>

* chore: make ArrayAccessor infallible (#5303)

* Unblock release by publishing GPU crates (#5293)

Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Robert Kruszewski <github@robertk.io>
Co-authored-by: Robert Kruszewski <github@robertk.io>

* Chore: move filter files around (#5300)

Removes the `_mut` files and just puts all similar impls in one place.

This will just make it easier to add more impls that we need for
pipelines.

There are also some stubs that are implemented in the next PR.

**This is purely cosmetic.**

Followup PR: https://github.com/vortex-data/vortex/pull/5301

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* chore(deps): update actions/upload-artifact action to v5 (#5306)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

###
[`v5`](https://redirect.github.com/actions/upload-artifact/compare/v4...v5)

[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v4...v5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/download-artifact action to v6 (#5305)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/download-artifact](https://redirect.github.com/actions/download-artifact)
| action | major | `v5` -> `v6` |

---

### Release Notes

<details>
<summary>actions/download-artifact (actions/download-artifact)</summary>

###
[`v6`](https://redirect.github.com/actions/download-artifact/compare/v5...v6)

[Compare
Source](https://redirect.github.com/actions/download-artifact/compare/v5...v6)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.21 (#5307)

This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [ch.qos.logback:logback-classic](http://logback.qos.ch)
([source](https://redirect.github.com/qos-ch/logback),
[changelog](https://logback.qos.ch/news.html)) | `1.5.20` -> `1.5.21` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/ch.qos.logback:logback-classic/1.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/ch.qos.logback:logback-classic/1.5.20/1.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update plugin com.palantir.consistent-versions to v3.7.0 (#5308)

This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| com.palantir.consistent-versions | `3.2.0` -> `3.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.palantir.consistent-versions:com.palantir.consistent-versions.gradle.plugin/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.palantir.consistent-versions:com.palantir.consistent-versions.gradle.plugin/3.2.0/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update plugin com.vanniktech.maven.publish to v0.35.0 (#5310)

This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[com.vanniktech.maven.publish](https://redirect.github.com/vanniktech/gradle-maven-publish-plugin)
| `0.34.0` -> `0.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin/0.34.0/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vanniktech/gradle-maven-publish-plugin
(com.vanniktech.maven.publish)</summary>

###
[`v0.35.0`](https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/blob/HEAD/CHANGELOG.md#0350--2025-11-11-)

[Compare
Source](https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/compare/0.34.0...0.35.0)

- Add support for publishing Kotlin Multiplatform libraries that use
`com.android.kotlin.multiplatform.library`.
- Add support for validating deployments to Central Portal
- Raise minimum Gradle version to 8.13
- Raise minimum Android Gradle Plugin version to 8.2.2
- Do not unconditionally disable DocLint
- Fail publishing if `SONATYPE_HOST` is not set to `CENTRAL_PORTAL`.
- Fix misleading error message when Android library variant is not
found.
- Downgrade transitive OkHttp version.
- Don't check project heirarchy for POM properties when Isolated
proejcts is enabled.

Thanks to [@&#8203;joshfriend](https://redirect.github.com/joshfriend),
[@&#8203;Flowdalic](https://redirect.github.com/Flowdalic) and
[@&#8203;Goooler](https://redirect.github.com/Goooler) for their
contributions to this release.

##### Minimum supported versions

- JDK 11
- Gradle 8.13
- Android Gradle Plugin 8.2.2
- Kotlin Gradle Plugin 1.9.20

##### Compatibility tested up to

- JDK 24
- Gradle 9.2.0
- Gradle 9.3.0-milestone-1
- Android Gradle Plugin 8.13.1
- Android Gradle Plugin 9.0.0-alpha14
- Kotlin Gradle Plugin 2.2.21
- Kotlin Gradle Plugin 2.3.0-Beta2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update plugin com.palantir.git-version to v4.2.0 (#5309)

This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| com.palantir.git-version | `4.0.0` -> `4.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.palantir.git-version:com.palantir.git-version.gradle.plugin/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.palantir.git-version:com.palantir.git-version.gradle.plugin/4.0.0/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaG9yZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency gradle to v9 (#4085)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gradle](https://gradle.org)
([source](https://redirect.github.com/gradle/gradle)) | major | `8.14.3`
-> `9.0.0` |

---

### Release Notes

<details>
<summary>gradle/gradle (gradle)</summary>

###
[`v9.0.0`](https://redirect.github.com/gradle/gradle/compare/v8.14.3...v9.0.0)

[Compare
Source](https://redirect.github.com/gradle/gradle/compare/v8.14.3...v9.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/vortex-data/vortex).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40Ni4zIiwidXBkYXRlZEluVmVyIjoiNDEuNDYuMyIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOlsiY2hvcmUiXX0=-->

---------

Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andrew Duffy <andrew@a10y.dev>

* chore: bump claude-code-action to v1.0.16 (#5312)

## Summary

Upgrades the `anthropics/claude-code-action` GitHub Action from `@beta`
to the stable `@v1.0.16` release.

## Changes

- **Updated**: `.github/workflows/claude.yml`
- Changed `uses: anthropics/claude-code-action@beta` → `uses:
anthropics/claude-code-action@v1.0.16`

## What's New in v1.0.16

The v1.0 series represents a major stable release with significant
improvements:

- ✨ **Simplified Configuration**: Automatic mode detection (no manual
configuration needed)
- 🔄 **Unified Interface**: Single input for all prompts
- 🛠️ **Better SDK Alignment**: Direct access to Claude Code CLI features
- 🐛 **Bug Fixes**: Various improvements and stability enhancements
- 📊 **v1.0.16 Specific**: Added `show_full_output` option for
controlling verbosity

## Release Information

- **Version**: v1.0.16
- **Released**: October 30, 2024
- **Changelog**:
https://github.com/anthropics/claude-code-action/releases/tag/v1.0.16

## Migration Notes

This is a non-breaking update from `@beta` to the stable v1.0 release.
The existing configuration in our workflow remains compatible.

---

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

* feat: automated fuzzing issue creation with Claude (#5292)

# Automated Fuzzing Issue Creation

When fuzzing detects crashes, Claude analyzes them and creates/updates
GitHub issues automatically.

## Features

- **Smart duplicate detection**: Compares crash location + error pattern
using source code context
- **Occurrence tracking**: Updates single comment with count (e.g.,
"Crash seen 15 time(s)")
- **Detailed analysis**: Stack trace, root cause, debug output, direct
artifact links
- **Proper formatting**: Stack traces in code blocks, reproduction
commands with `--sanitizer=none`

## How It Works

1. Claude reads fuzzer log and extracts crash details
2. Checks existing issues by reading source code at crash locations
3. Either creates new issue or updates occurrence counter on duplicate

Uses Claude Code Action v1 with Sonnet 4.5 (~$0.03-0.05 per crash).

---------

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* fix vortex-gpu compilation (#5315)

I started to see vortex-gpu compilation issues after running `cargo
clean`, this fixed the compilation for me

Signed-off-by: Onur Satici <onur@spiraldb.com>

* fix: update Claude Code Action to v1 parameter format (#5314)

Updates claude.yml to use correct v1 parameter format for Claude Code
Action.

**Changes:**
- Replace  with 
- Replace  with 

The deprecated beta parameters were causing the workflow to use outdated
configuration.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-authored-by: Claude <noreply@anthropic.com>

* feat: Add Stage 2 automated fix workflow for fuzzer crashes (#5319)

* perf: optimize `expand` (#5285)

prev:
```
╰─ expand_selectivity                │               │               │               │         │
   ├─ u8                             │               │               │               │         │
   │  ├─ 0.01          749.7 ns      │ 2.52 µs       │ 838.4 ns      │ 841.1 ns      │ 1000    │ 8000
   │  ├─ 0.1           739.2 ns      │ 2.182 µs      │ 833.1 ns      │ 835.9 ns      │ 1000    │ 8000
   │  ├─ 0.2           728.9 ns      │ 1.796 µs      │ 817.5 ns      │ 819.9 ns      │ 1000    │ 8000
   │  ├─ 0.3           723.6 ns      │ 2.635 µs      │ 812.2 ns      │ 810.9 ns      │ 1000    │ 8000
   │  ├─ 0.4           708 ns        │ 6.885 µs      │ 801.7 ns      │ 803.6 ns      │ 1000    │ 4000
   │  ├─ 0.5           687.2 ns      │ 3.541 µs      │ 781 ns        │ 770.9 ns      │ 1000    │ 4000
   │  ├─ 0.6           682 ns        │ 2.072 µs      │ 765.4 ns      │ 756.5 ns      │ 1000    │ 8000
   │  ├─ 0.7           661.2 ns      │ 2.354 µs      │ 744.6 ns      │ 742.9 ns      │ 1000    │ 8000
   │  ├─ 0.8           650.7 ns      │ 2.104 µs      │ 729 ns        │ 733.6 ns      │ 1000    │ 8000
   │  ├─ 0.9           630 ns        │ 1.421 µs      │ 713.4 ns      │ 710.9 ns      │ 1000    │ 8000
   │  ╰─ 0.99          598.7 ns      │ 2.197 µs      │ 676.9 ns      │ 660.7 ns      │ 1000    │ 8000
   ├─ u32                            │               │               │               │         │
   │  ├─ 0.01          760 ns        │ 1.645 µs      │ 854 ns        │ 852.6 ns      │ 1000    │ 4000
   │  ├─ 0.1           760 ns        │ 3.656 µs      │ 854 ns        │ 862.5 ns      │ 1000    │ 4000
   │  ├─ 0.2           749.7 ns      │ 2.567 µs      │ 848.7 ns      │ 850.2 ns      │ 1000    │ 8000
   │  ├─ 0.3           728.9 ns      │ 2.291 µs      │ 827.9 ns      │ 827.7 ns      │ 1000    │ 8000
   │  ├─ 0.4           708 ns        │ 2.176 µs      │ 801.7 ns      │ 797.4 ns      │ 1000    │ 8000
   │  ├─ 0.5           687.2 ns      │ 2.208 µs      │ 775.7 ns      │ 767.6 ns      │ 1000    │ 8000
   │  ├─ 0.6           676.9 ns      │ 2.432 µs      │ 770.5 ns      │ 757.1 ns      │ 1000    │ 8000
   │  ├─ 0.7           656 ns        │ 2.255 µs      │ 749.7 ns      │ 739.2 ns      │ 1000    │ 8000
   │  ├─ 0.8           650.7 ns      │ 1.697 µs      │ 734.1 ns      │ 725.9 ns      │ 1000    │ 8000
   │  ├─ 0.9           629.9 ns      │ 3.629 µs      │ 713.2 ns      │ 691.3 ns      │ 1000    │ 8000
   │  ╰─ 0.99          604 ns        │ 2.984 µs      │ 687.2 ns      │ 672.7 ns      │ 1000    │ 8000
   ╰─ u64                            │               │               │               │         │
      ├─ 0.01          546.6 ns      │ 1.885 µs      │ 635.1 ns      │ 635.8 ns      │ 1000    │ 8000
      ├─ 0.1           572.6 ns      │ 1.546 µs      │ 661.2 ns      │ 659.5 ns      │ 1000    │ 8000
      ├─ 0.2           572.6 ns      │ 3.031 µs      │ 661.2 ns      │ 661.3 ns      │ 1000    │ 8000
      ├─ 0.3           577.9 ns      │ 2.447 µs      │ 666.4 ns      │ 666.8 ns      │ 1000    │ 8000
      ├─ 0.4           583.1 ns      │ 1.791 µs      │ 666.4 ns      │ 655 ns        │ 1000    │ 8000
      ├─ 0.5           598.6 ns      │ 2.265 µs      │ 687.2 ns      │ 682.3 ns      │ 1000    │ 8000
      ├─ 0.6           598.7 ns      │ 2.296 µs      │ 687.2 ns      │ 685.9 ns      │ 1000    │ 8000
      ├─ 0.7           614.2 ns      │ 2.114 µs      │ 692.5 ns      │ 691.3 ns      │ 1000    │ 8000
      ├─ 0.8           609.1 ns      │ 2.171 µs      │ 697.6 ns      │ 688.8 ns      │ 1000    │ 8000
      ├─ 0.9           614.2 ns      │ 2.093 µs      │ 697.6 ns      │ 687.9 ns      │ 1000    │ 8000
      ╰─ 0.99          609.1 ns      │ 2.468 µs      │ 692.4 ns      │ 683.3 ns      │ 1000    │ 8000
```

now:
```
expand_buffer          fastest       │ slowest       │ median        │ mean          │ samples │ iters
╰─ expand_buffer                     │               │               │               │         │
   ├─ u8                             │               │               │               │         │
   │  ├─ (256, 0.1)    73.33 ns      │ 222.4 ns      │ 82.46 ns      │ 81.68 ns      │ 1000    │ 64000
   │  ├─ (256, 0.5)    79.85 ns      │ 273.8 ns      │ 90.91 ns      │ 89.55 ns      │ 1000    │ 64000
   │  ├─ (256, 0.9)    89.61 ns      │ 390.4 ns      │ 96.11 ns      │ 98.66 ns      │ 1000    │ 32000
   │  ├─ (1024, 0.1)   161.2 ns      │ 238 ns        │ 182 ns        │ 176.4 ns      │ 1000    │ 32000
   │  ├─ (1024, 0.5)   195 ns        │ 463.3 ns      │ 210.7 ns      │ 215.1 ns      │ 1000    │ 32000
   │  ├─ (1024, 0.9)   236.7 ns      │ 1.692 µs      │ 247.2 ns      │ 260.1 ns      │ 1000    │ 16000
   │  ├─ (4096, 0.1)   520.5 ns      │ 1.228 µs      │ 588.2 ns      │ 570.5 ns      │ 1000    │ 8000
   │  ├─ (4096, 0.5)   702.9 ns      │ 1.067 µs      │ 718.5 ns      │ 750.1 ns      │ 1000    │ 8000
   │  ├─ (4096, 0.9)   885.1 ns      │ 2.546 µs      │ 895.6 ns      │ 930.1 ns      │ 1000    │ 8000
   │  ├─ (16384, 0.1)  2.041 µs      │ 9.291 µs      │ 2.291 µs      │ 2.22 µs       │ 1000    │ 2000
   │  ├─ (16384, 0.5)  2.749 µs      │ 10.83 µs      │ 2.895 µs      │ 3.002 µs      │ 1000    │ 2000
   │  ╰─ (16384, 0.9)  3.457 µs      │ 6.332 µs      │ 3.541 µs      │ 3.679 µs      │ 1000    │ 1000
   ├─ u32                            │               │               │               │         │
   │  ├─ (256, 0.1)    57.06 ns      │ 116.6 ns      │ 64.55 ns      │ 63.1 ns       │ 1000    │ 128000
   │  ├─ (256, 0.5)    61.61 ns      │ 92.21 ns      │ 69.44 ns      │ 67.91 ns      │ 1000    │ 64000
   │  ├─ (256, 0.9)    75.29 ns      │ 284.2 ns      │ 77.9 ns       │ 81.76 ns      │ 1000    │ 64000
   │  ├─ (1024, 0.1)   146.9 ns      │ 515.4 ns      │ 165.1 ns      │ 161.9 ns      │ 1000    │ 32000
   │  ├─ (1024, 0.5)   193.7 ns      │ 292.7 ns      │ 204.2 ns      │ 211.2 ns      │ 1000    │ 32000
   │  ├─ (1024, 0.9)   239.3 ns      │ 2.669 µs      │ 244.5 ns      │ 259.7 ns      │ 1000    │ 16000
   │  ├─ (4096, 0.1)   520.6 ns      │ 3.687 µs      │ 538.8 ns      │ 570.3 ns      │ 1000    │ 8000
   │  ├─ (4096, 0.5)   697.5 ns      │ 4.614 µs      │ 728.7 ns      │ 763.2 ns      │ 1000    │ 4000
   │  ├─ (4096, 0.9)   885 ns        │ 4.624 µs      │ 906 ns        │ 950.2 ns      │ 1000    │ 4000
   │  ├─ (16384, 0.1)  2.207 µs      │ 5.041 µs      │ 2.479 µs      │ 2.411 µs      │ 1000    │ 1000
   │  ├─ (16384, 0.5)  2.812 µs      │ 10.49 µs      │ 2.874 µs      │ 2.994 µs      │ 1000    │ 2000
   │  ╰─ (16384, 0.9)  3.499 µs      │ 40.16 µs      │ 3.583 µs      │ 3.765 µs      │ 1000    │ 1000
   ╰─ u64                            │               │               │               │         │
      ├─ (256, 0.1)    56.41 ns      │ 104.9 ns      │ 63.57 ns      │ 62.17 ns      │ 1000    │ 128000
      ├─ (256, 0.5)    62.91 ns      │ 95.47 ns      │ 71.38 ns      │ 69.82 ns      │ 1000    │ 64000
      ├─ (256, 0.9)    77.9 ns       │ 230.9 ns      │ 88.32 ns      │ 85.89 ns      │ 1000    │ 64000
      ├─ (1024, 0.1)   145.6 ns      │ 348.7 ns      │ 166.4 ns      │ 161.5 ns      │ 1000    │ 32000
      ├─ (1024, 0.5)   192.4 ns      │ 291.4 ns      │ 197.7 ns      │ 206.2 ns      │ 1000    │ 16000
      ├─ (1024, 0.9)   244.5 ns      │ 892.9 ns      │ 252.3 ns      │ 267.6 ns      │ 1000    │ 16000
      ├─ (4096, 0.1)   525.7 ns      │ 2.541 µs      │ 588.4 ns      │ 613 ns        │ 1000    │ 8000
      ├─ (4096, 0.5)   713.2 ns      │ 2.598 µs      │ 728.9 ns      │ 781.7 ns      │ 1000    │ 8000
      ├─ (4096, 0.9)   895.5 ns      │ 4.593 µs      │ 926.7 ns      │ 987.1 ns      │ 1000    │ 4000
      ├─ (16384, 0.1)  2.416 µs      │ 9.708 µs      │ 2.749 µs      │ 2.75 µs       │ 1000    │ 1000
      ├─ (16384, 0.5)  2.978 µs      │ 9.291 µs      │ 3.041 µs      │ 3.289 µs      │ 1000    │ 2000
      ╰─ (16384, 0.9)  3.54 µs       │ 14.74 µs      │ 3.624 µs      │ 3.932 µs      │ 1000    │ 1000
```

---------

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* Fix zero-copy pipeline input (#5324)

The into_mut was triggering a copy before this

---------

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* arrow -> vortex for dict arrays (#5316)

Signed-off-by: Onur Satici <onur@spiraldb.com>

* refactor: optimize BitBuffer::from(Vec<bool>) using 64-bit packing (#5325)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* chore[claude]: update claude.md (#5318)

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* Chore: add todo and clean a bit in pipeline step (#5334)

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* chore: implement Filter for new MaskIndices type for all vectors (#5333)

* Fix: handle validity in bitpack pipeline kernel (#5330)

Forgot to handle this before

---------

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

* fix: unblock the fuzzers (#5335)

#5271 wasn't quite right actually for file_io

array_ops was broken on what I believe to be an unnecessary assertion

---------

Signed-off-by: Andrew Duffy <andrew@a10y.dev>

* chore: add automated crash reporting for array_ops fuzzing (#5317)

## Summary

Add Claude-powered crash analysis and GitHub issue creation for the
`array_ops` fuzzing target, matching the existing `file_io` fuzzing
setup.

## Changes

- **Extract shared crash reporting logic**: Created reusable composite
action at `.github/actions/report-fuzz-failure/action.yml`
- **Add crash detection to `ops_fuzz` job**: 
- Added outputs for `crashes_found`, `first_crash_name`, and
`artifact_url`
  - Added "Check for crashes" step to detect crash artifacts
  - Added log archiving for crash analysis
- **Add `report-ops-fuzz-failures` job**: New job using shared action
for `array_ops` target
- **Refactor `report-io-fuzz-failures`**: Updated to use shared action,
reducing duplication

## Benefits

- Reduces code duplication (~180 lines removed from workflow)
- All crash reporting logic maintained in single location
- Easy to add fuzzing crash reporting for additional targets
- Both `file_io` and `array_ops` now have automated issue creation on
crashes

## Test Plan

- [ ] Verify workflow syntax is valid
- [ ] Confirm both fuzz jobs can run successfully
- [ ] Test crash reporting with a known crash (if available)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* feat: bump duckdb to 1.4.2 (#5337)

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* test: more `iter_bits` test cases (#5336)

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* chore: bump duckdb version to 1.4.2 in gh actions (#5339)

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* feat: add manual trigger support to fuzzer fix automation (#5323)



Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-authored-by: Claude <noreply@anthropic.com>

* chore: duckdb e2e roundtrip tests (#5342)

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>

* fix: `SequenceVTable` bounds check (#5341)

Closes https://github.com/vortex-data/vortex/issues/5332

---------

Signed-off-by: blaginin <dima@spiraldb.com>

* fix: cfg disable unix-specific operations (#5326)

Fixes #5311.

I think seek-then-read is safe because we own this File. No one else
should be relying on its cursor.

vortex_io::file::std_file appears to only be used in tests.

Signed-off-by: Daniel King <dan@spiraldb.com>

* fix: add permissions to fuzzer fix automation workflow (#5345)


Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

* chore: document Expr.__getitem__ (get a field of a struct array) (#5344)

<img width="827" height="796" alt="Screenshot 2025-11-14 at 10 55 55 AM"
src="https://github.com/user-attachments/assets/6985750f-6b2b-4351-9c92-1be6ff84f140"
/>

Signed-off-by: Daniel King <dan@spiraldb.com>

* chore: bug is not a sufficient label (#5351)

Labels should correspond to a category in release-drafter.yml.

This actually happened in the wild: PR #5235 was dumped into a generic
"Changes" section of [release
0.55.0](https://github.com/vortex-data/vortex/releases/tag/0.55.0)
rather than the bug fix section.

Further in the past, #3587 was likewise uncategorized in
[0.40.0](https://github.com/vortex-data/vortex/releases/tag/0.40.0).

Signed-off-by: Daniel King <dan@spiraldb.com>

* Move BitView to vortex-buffer and make generic over N (#5353)

It now makes more sense for vortex-compute to implement ultra-optimized
Filter operations over masks of length N

Signed-off-by: Nicholas Gates <nick@nickgates.com>

* chore(deps): update all patch updates (#5357)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [cc](https://redirect.github.com/rust-lang/cc-rs) |
workspace.dependencies | patch | `1.2.45` -> `1.2.46` |
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| patch | `v1.39.0` -> `v1.39.2` |
| [cxx](https://cxx.rs)
([source](https://redirect.github.com/dtolnay/cxx)) | dependencies |
patch | `1.0.187` -> `1.0.188` |
| [cxx-build](https://cxx.rs)
([source](https://redirect.github.com/dtolnay/cxx)) | build-dependencies
| patch | `1.0.187` -> `1.0.188` |
| [fsst-rs](https://redirect.github.com/spiraldb/fsst) |
workspace.dependencies | patch | `0.5.5` -> `0.5.6` |
| [indicatif](https://redirect.github.com/console-rs/indicatif) |
workspace.dependencies | patch | `0.18.2` -> `0.18.3` |
| [spi…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Release label indicating a trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants