Garou Vendoring Process: kade/actix-net Rust 2024 Migration #1

Open
opened 2026-04-26 14:17:59 +02:00 by kade · 3 comments
Owner

Garou Vendoring Process: kade/actix-net Rust 2024 Migration

Objective

Migrate kade/actix-net to Rust 2024 edition and replace external dependencies with vendored versions from monorepo vendor/ directory.

Background

Completed Tasks

  • Restore kade/actix-net from GitHub
  • Update workspace Cargo.toml to Rust 2024 edition (was 2021)
  • Update rust-version to 1.85 (was 1.88)
  • Add vendored dependency patches for:
    • bytes
    • tokio
    • tracing
    • tracing-core
    • tracing-attributes
    • tracing-subscriber
    • memchr
    • pin-project-lite
    • mio
    • futures-core
    • futures-sink
    • futures-util

Current Status

IN PROGRESS - Fixing dependency version conflicts

Issue

cargo test fails with tracing-subscriber compilation error:

error[E0277]: can't compare `tracing_core::LevelFilter` with `tracing::level_filters::LevelFilter`

Root Cause

Multiple versions of tracing-core in dependency graph due to version mismatch between vendored tracing workspace and crates.io dependencies.

Next Steps

  • Resolve tracing version conflicts
  • Add remaining vendored dependencies as needed
  • Run cargo test until greens
  • Push changes to kade/actix-net
  • Document vendoring pattern for future crates

Tracking

# Garou Vendoring Process: kade/actix-net Rust 2024 Migration ## Objective Migrate kade/actix-net to Rust 2024 edition and replace external dependencies with vendored versions from monorepo vendor/ directory. ## Background - kade/actix-net was corrupted and restored from GitHub (https://github.com/actix/actix-net) - Repository now hosted at https://git.sly.so/kade/actix-net - Cloned to vendor/actix-net in monorepo - Registered in foodchain packages.json ## Completed Tasks - [x] Restore kade/actix-net from GitHub - [x] Update workspace Cargo.toml to Rust 2024 edition (was 2021) - [x] Update rust-version to 1.85 (was 1.88) - [x] Add vendored dependency patches for: - bytes - tokio - tracing - tracing-core - tracing-attributes - tracing-subscriber - memchr - pin-project-lite - mio - futures-core - futures-sink - futures-util ## Current Status **IN PROGRESS - Fixing dependency version conflicts** ### Issue cargo test fails with tracing-subscriber compilation error: ``` error[E0277]: can't compare `tracing_core::LevelFilter` with `tracing::level_filters::LevelFilter` ``` ### Root Cause Multiple versions of tracing-core in dependency graph due to version mismatch between vendored tracing workspace and crates.io dependencies. ## Next Steps - [ ] Resolve tracing version conflicts - [ ] Add remaining vendored dependencies as needed - [ ] Run cargo test until greens - [ ] Push changes to kade/actix-net - [ ] Document vendoring pattern for future crates ## Tracking - Repository: https://git.sly.so/kade/actix-net - Local path: vendor/actix-net - Related: kade/actix-net #1 (Foodchain Git Integration Progress)
Author
Owner

Progress Update

Current Cargo.toml Configuration

  • Edition: Rust 2024 (updated from 2021)
  • Rust version: 1.85 (updated from 1.88)
  • Vendored dependencies patched:
    • bytes (../bytes)
    • tokio (../tokio/tokio)
    • tracing (../tracing/tracing)
    • tracing-core (../tracing/tracing-core)
    • tracing-attributes (../tracing/tracing-attributes)
    • tracing-subscriber (../tracing/tracing-subscriber)
    • memchr (../memchr)
    • pin-project-lite (../pin-project-lite)
    • mio (../mio)
    • futures-core (../futures-rs/futures-core)
    • futures-sink (../futures-rs/futures-sink)
    • futures-util (../futures-rs/futures-util)

Current Error

error[E0277]: can't compare `tracing_core::LevelFilter` with `tracing::level_filters::LevelFilter`

Next Action

Need to investigate tracing version compatibility and potentially patch additional tracing-related crates.

## Progress Update ### Current Cargo.toml Configuration - Edition: Rust 2024 (updated from 2021) - Rust version: 1.85 (updated from 1.88) - Vendored dependencies patched: - bytes (../bytes) - tokio (../tokio/tokio) - tracing (../tracing/tracing) - tracing-core (../tracing/tracing-core) - tracing-attributes (../tracing/tracing-attributes) - tracing-subscriber (../tracing/tracing-subscriber) - memchr (../memchr) - pin-project-lite (../pin-project-lite) - mio (../mio) - futures-core (../futures-rs/futures-core) - futures-sink (../futures-rs/futures-sink) - futures-util (../futures-rs/futures-util) ### Current Error ``` error[E0277]: can't compare `tracing_core::LevelFilter` with `tracing::level_filters::LevelFilter` ``` ### Next Action Need to investigate tracing version compatibility and potentially patch additional tracing-related crates.
Author
Owner

COMPLETED

Final Configuration

  • Edition: Rust 2024 (updated from 2021)
  • Rust version: 1.85 (updated from 1.88)
  • Vendored dependencies: 13 crates patched from monorepo vendor/
  • Test status: All tests passing (cargo test green)

Rust 2024 Compatibility Fixes

Fixed 3 files for Rust 2024 edition pattern matching changes:

  • actix-tls/src/connect/connector.rs: Removed explicit ref mut in match patterns
  • actix-server/tests/server.rs: Removed explicit ref in pattern binding
  • actix-codec/tests/test_framed_sink.rs: Removed explicit ref mut in match pattern

Changes Pushed

Commit 50356ec pushed to https://git.sly.so/kade/actix-net

Vendoring Pattern Established

This establishes the pattern for future garou vendoring:

  1. Update workspace Cargo.toml to Rust 2024
  2. Add vendor/ dependency patches for common crates
  3. Fix Rust 2024 edition compatibility issues (pattern matching)
  4. Run cargo test until green
  5. Push changes to Forgejo
  6. Document in CHANGELOG.md
## ✅ COMPLETED ### Final Configuration - **Edition**: Rust 2024 (updated from 2021) - **Rust version**: 1.85 (updated from 1.88) - **Vendored dependencies**: 13 crates patched from monorepo vendor/ - **Test status**: All tests passing (cargo test green) ### Rust 2024 Compatibility Fixes Fixed 3 files for Rust 2024 edition pattern matching changes: - `actix-tls/src/connect/connector.rs`: Removed explicit `ref mut` in match patterns - `actix-server/tests/server.rs`: Removed explicit `ref` in pattern binding - `actix-codec/tests/test_framed_sink.rs`: Removed explicit `ref mut` in match pattern ### Changes Pushed Commit `50356ec` pushed to https://git.sly.so/kade/actix-net ### Vendoring Pattern Established This establishes the pattern for future garou vendoring: 1. Update workspace Cargo.toml to Rust 2024 2. Add vendor/ dependency patches for common crates 3. Fix Rust 2024 edition compatibility issues (pattern matching) 4. Run cargo test until green 5. Push changes to Forgejo 6. Document in CHANGELOG.md
Author
Owner

Rocket.Chat Vendoring Progress

As part of expanding the garou vendoring system, Rocket.Chat has been vendored alongside actix-net.

Rocket.Chat Status

  • Repository: https://git.sly.so/kade/Rocket.Chat
  • Local path: vendor/rocket-chat
  • Version: 6.0.0
  • Type: Non-Rust project (JavaScript/TypeScript/Meteor)
  • Status: Basic vendoring complete

Garou Vendoring Guide

Created comprehensive vendoring guide with mermaid diagrams:

  • Location: .windsurf/garou-vendoring.md
  • Format: Windsurf skill with progressive disclosure
  • Content:
    • Complete 8-step vendoring process
    • Rust 2024 migration workflow
    • Dependency patching patterns
    • Pattern matching fix flow
    • Non-Rust project handling
    • Vendoring checklist
    • Lessons learned from actix-net

Next Steps for Rocket.Chat

  • Deploy Rocket.Chat on production server
  • Configure for https://chat.sly.so
  • Docker & Docker Compose deployment method
  • Traefik reverse proxy with Let's Encrypt

Deployment Configuration

Planned configuration for chat.sly.so:

DOMAIN=chat.sly.so
ROOT_URL=https://chat.sly.so
LETSENCRYPT_ENABLED=true
LETSENCRYPT_EMAIL=<admin email>
TRAEFIK_PROTOCOL=https

Tracking

  • Rocket.Chat issue: kade/Rocket.Chat #1
  • CHANGELOG.md updated with vendoring progress
## Rocket.Chat Vendoring Progress ### Related Work As part of expanding the garou vendoring system, Rocket.Chat has been vendored alongside actix-net. ### Rocket.Chat Status - **Repository**: https://git.sly.so/kade/Rocket.Chat - **Local path**: vendor/rocket-chat - **Version**: 6.0.0 - **Type**: Non-Rust project (JavaScript/TypeScript/Meteor) - **Status**: Basic vendoring complete ### Garou Vendoring Guide Created comprehensive vendoring guide with mermaid diagrams: - **Location**: .windsurf/garou-vendoring.md - **Format**: Windsurf skill with progressive disclosure - **Content**: - Complete 8-step vendoring process - Rust 2024 migration workflow - Dependency patching patterns - Pattern matching fix flow - Non-Rust project handling - Vendoring checklist - Lessons learned from actix-net ### Next Steps for Rocket.Chat - Deploy Rocket.Chat on production server - Configure for https://chat.sly.so - Docker & Docker Compose deployment method - Traefik reverse proxy with Let's Encrypt ### Deployment Configuration Planned configuration for chat.sly.so: ``` DOMAIN=chat.sly.so ROOT_URL=https://chat.sly.so LETSENCRYPT_ENABLED=true LETSENCRYPT_EMAIL=<admin email> TRAEFIK_PROTOCOL=https ``` ### Tracking - Rocket.Chat issue: kade/Rocket.Chat #1 - CHANGELOG.md updated with vendoring progress
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kade/actix-net#1
No description provided.