Skip to content

Meta: Implement missing Arrow 56.0 lint rules - Sequential workflow #8121

@ryanrussell

Description

@ryanrussell

Meta Issue: Implement Missing Arrow 56.0 Lint Rules

Overview

This issue tracks the sequential implementation of 9 missing lint rules identified through comprehensive audit of Arrow 55→56 breaking changes.

Implementation Plan

Sequential Tasks (Must be done in order due to shared working directory)

  1. ARROW-007: Schema.all_fields() removal (ARROW-007: Add linter rule for Schema.all_fields() removal in Arrow 56.0 #8116)

    • Branch: feature/arrow-007-schema-all-fields
    • Files: src/rules/arrow_007_schema_all_fields_removed.rs
  2. ARROW-008: SerializedPageReaderState usize→u64 (ARROW-008: Add linter rule for SerializedPageReaderState usize→u64 breaking change #8117)

    • Branch: feature/arrow-008-parquet-page-reader-types
    • Files: src/rules/arrow_008_parquet_page_reader_types.rs
  3. ARROW-009: IPC Dictionary API removals (ARROW-009: Add linter rules for IPC Dictionary API removals in Arrow 56.0 #8118)

    • Branch: feature/arrow-009-ipc-dict-api-removed
    • Files: src/rules/arrow_009_ipc_dict_api_removed.rs
  4. ARROW-010-011: Parquet Statistics/Metadata removals (ARROW-010 & ARROW-011: Add linter rules for Parquet Statistics and Metadata API removals #8119)

    • Branch: feature/arrow-010-011-parquet-removals
    • Files: src/rules/arrow_010_parquet_statistics_removed.rs, src/rules/arrow_011_parquet_metadata_removed.rs
  5. ARROW-012-015: Miscellaneous breaking changes (ARROW-012-015: Add linter rules for remaining Arrow 56.0 breaking changes #8120)

    • Branch: feature/arrow-012-015-misc-breaking
    • Files: src/rules/arrow_012_015_misc_breaking_changes.rs

Workflow per Rule

  1. git checkout main && git pull (sync with latest)
  2. Create feature branch
  3. Implement rule with comprehensive tests
  4. Update src/rules/mod.rs integration
  5. Add test patterns to test/genlinters/test_comprehensive_arrow_patterns.rs
  6. Commit and push to WIP PR
  7. Audit implementation for accuracy
  8. Fix any issues with additional commits
  9. Merge when quality standards met

Success Criteria

  • ✅ All 9 missing rules implemented with high-quality detection
  • ✅ Comprehensive test coverage for each rule
  • ✅ Integration with existing linter architecture
  • ✅ Updated canonical test file with new patterns
  • ✅ Each rule follows CLAUDE.md workflow (no attribution)
  • ✅ Performance meets benchmarks
  • ✅ Documentation complete

Quality Gates

  • Rule detects all intended patterns with no false positives
  • Tests cover edge cases and negative cases
  • Error messages provide precise, actionable guidance
  • Integration doesn't break existing functionality
  • Code follows project conventions

Progress Tracking

  • ARROW-007 implemented and merged
  • ARROW-008 implemented and merged
  • ARROW-009 implemented and merged
  • ARROW-010-011 implemented and merged
  • ARROW-012-015 implemented and merged
  • Comprehensive test file updated
  • Final validation complete

Context

This work addresses the ~40% of Arrow 55→56 breaking changes that were missing from our linter, as identified through:

  • Manual CHANGELOG audit
  • cargo-public-api diff analysis
  • Git commit analysis
  • Real-world migration pattern review

Completing this will make our Arrow linter comprehensive for 55→56 migrations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions