Skip to content

Conversation

@konard
Copy link
Member

@konard konard commented Dec 27, 2025

Summary

This PR fully migrates the crate from nightly Rust (nightly-2022-08-22) to the latest stable Rust toolchain (requires Rust 1.79+), as requested in issue #8.

Changes Made

Source Code Migrations:

  • Removed all nightly feature flags from lib.rs:

    • try_trait_v2, associated_type_bounds, type_alias_impl_trait
    • const_refs_to_cell, const_result_drop, const_trait_impl, const_convert, const_deref
    • step_trait
  • LinkType and FuntyPart traits (link_type.rs):

    • Removed #[const_trait] and const from impls
    • Removed Step trait bound
    • Removed Destruct marker and unsafe unreachable_unchecked
    • Simplified FuntyPart::funty() to use expect() instead
  • Flow type (flow.rs):

    • Removed Try and FromResidual trait implementations (nightly-only)
    • Added into_control_flow() method for use with try_for_each
    • Maintained From<ControlFlow> and Into<ControlFlow> conversions
  • Point type (point.rs):

    • Replaced type IntoIter = impl Iterator with explicit PointIter struct
    • Exported PointIter from the crate

Infrastructure Updates:

  • Updated rust-toolchain.toml to use stable channel
  • Updated CI workflow to use dtolnay/rust-toolchain@stable
  • Updated README to document stable Rust 1.79+ requirement

Code Quality:

  • Fixed clippy warnings (is_some_and, unit struct default construction)
  • All 80 tests pass locally

Test Plan

  • cargo build succeeds on stable
  • cargo test passes (80 tests)
  • cargo clippy --all-targets --all-features -- -D warnings passes
  • cargo fmt --check passes
  • CI pipeline passes on all platforms (Ubuntu, macOS, Windows)

Breaking Changes

  • Flow no longer implements Try trait - use flow.into_control_flow() with try_for_each
  • LinkType no longer requires Step bound
  • Point::IntoIter is now an explicit PointIter type

Fixes #8

🤖 Generated with Claude Code

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #8
@konard konard self-assigned this Dec 27, 2025
- Remove all nightly feature flags from lib.rs:
  - try_trait_v2, associated_type_bounds, type_alias_impl_trait
  - const_refs_to_cell, const_result_drop, const_trait_impl
  - const_convert, const_deref, step_trait

- Simplify Flow type by removing Try trait implementation
  - Replace with helper methods (is_continue, is_break)
  - Add bidirectional conversion with ControlFlow

- Simplify LinkType and FuntyPart traits
  - Remove const trait implementations
  - Remove Step trait requirement
  - Remove Destruct marker usage

- Fix Point IntoIterator to use concrete iterator type
  - Use std::iter::RepeatN instead of impl Trait

- Update CI/CD pipeline to use stable Rust toolchain
- Update rustfmt.toml to use stable-compatible options
- Fix unused imports in converters.rs and hybrid.rs
- Apply clippy suggestions (is_some_and, repeat_n)

Fixes #8

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

Co-Authored-By: Claude <noreply@anthropic.com>
@konard konard changed the title [WIP] Migrate to stable rust branch feat: migrate to stable Rust, remove unstable features Dec 27, 2025
@konard konard marked this pull request as ready for review December 27, 2025 17:41
@konard
Copy link
Member Author

konard commented Dec 27, 2025

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $4.185585 USD
  • Calculated by Anthropic: $2.566339 USD
  • Difference: $-1.619246 (-38.69%)
    📎 Log file uploaded as GitHub Gist (511KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
Copy link
Member Author

konard commented Dec 27, 2025

Get new tests from default branch, and resolve conflicts, they should guaruntee migration will be correctly done.

@konard konard marked this pull request as draft December 27, 2025 20:21
@konard
Copy link
Member Author

konard commented Dec 27, 2025

🤖 AI Work Session Started

Starting automated work session at 2025-12-27T20:21:41.189Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback.

- Merged test coverage infrastructure from main (90%+ coverage threshold)
- Resolved merge conflicts in CI workflow and flow.rs tests
- Enhanced Flow type with helper methods (is_continue, is_break)
- Added bidirectional ControlFlow conversion for Flow
- Fixed unused imports in converters.rs and hybrid.rs
- All 74 tests pass, clippy clean, fmt check passes

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

Co-Authored-By: Claude <noreply@anthropic.com>
@konard konard changed the title feat: migrate to stable Rust, remove unstable features feat: merge main with test coverage infrastructure Dec 27, 2025
@konard konard marked this pull request as ready for review December 27, 2025 20:42
@konard
Copy link
Member Author

konard commented Dec 27, 2025

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $4.136804 USD
  • Calculated by Anthropic: $2.433243 USD
  • Difference: $-1.703562 (-41.18%)
    📎 Log file uploaded as GitHub Gist (480KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
Copy link
Member Author

konard commented Dec 27, 2025

We must migrate to latest stable, please. That is the only purpose for this pull request.

@konard
Copy link
Member Author

konard commented Dec 27, 2025

🤖 AI Work Session Started

Starting automated work session at 2025-12-27T20:50:26.075Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback.

@konard konard marked this pull request as draft December 27, 2025 20:50
This PR migrates the crate from nightly Rust to stable Rust (1.79+),
removing all unstable feature flags while maintaining full functionality.

Changes:
- Remove all nightly feature flags from lib.rs
- Simplify LinkType and FuntyPart traits (remove const, Step bound)
- Replace Try trait on Flow with into_control_flow() method
- Add explicit PointIter type for Point's IntoIterator
- Update CI/CD to use dtolnay/rust-toolchain@stable
- Update README to reflect stable Rust requirement
- Fix clippy warnings (is_some_and, unit struct default)

All 80 tests pass on stable Rust.

Fixes #8

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

Co-Authored-By: Claude <noreply@anthropic.com>
@konard konard changed the title feat: merge main with test coverage infrastructure feat: migrate to stable Rust toolchain Dec 27, 2025
@konard konard marked this pull request as ready for review December 27, 2025 21:03
@konard
Copy link
Member Author

konard commented Dec 27, 2025

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $5.921403 USD
  • Calculated by Anthropic: $4.057430 USD
  • Difference: $-1.863974 (-31.48%)
    📎 Log file uploaded as GitHub Gist (695KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard konard merged commit edb6760 into main Dec 27, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to latest stable rust branch

2 participants