Add Rust version of the code and restructure monorepo#21
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #20
This commit restructures the repository to support both JavaScript and Rust implementations of lino-env, following the templates from: - js-ai-driven-development-pipeline-template - rust-ai-driven-development-pipeline-template Changes: - Move all JS-specific code to ./js folder (src, tests, .changeset, etc.) - Add new Rust implementation in ./rust folder with full test coverage - Create separate CI/CD workflows: js.yml and rust.yml - Remove the old release.yml workflow - Update root package.json as monorepo workspace root - Add shared detect-code-changes.mjs script supporting both languages - Update README to document multi-language support - Update .gitignore for both JS and Rust The JS package (npm: lino-env) remains unchanged in functionality. The Rust package (crates.io: lino-env) is a new addition with equivalent functionality. Fixes #20 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add missing 'deno install' step before running Deno tests - Fix Rust tests to use cross-platform temp directories via std::env::temp_dir() - Run cargo fmt for proper formatting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add backticks around LinoEnv and HashMap in doc comments - Allow implicit_hasher lint for write_lino_env function 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use inlined format args in test_file helper (clippy::uninlined_format_args) - Update doc examples to use std::env::temp_dir() for Windows compatibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This reverts commit 235c4af.
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
|
Package.json in the root and other files are js only related, check other files in root of repository. |
|
🤖 AI Work Session Started Starting automated work session at 2025-12-31T11:15:38.233Z 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. |
Following the monorepo structure requirement, this commit removes all JavaScript-specific files from the repository root: - Removed .husky/pre-commit from root (js/.husky/ already has one) - Removed .prettierrc from root (js/.prettierrc already has one) - Removed .prettierignore from root (js/.prettierignore already has one) - Removed root package.json (husky, lint-staged, etc. are JS-specific) - Moved package-lock.json to js/ folder The repository root now only contains language-neutral files: - .github/ (shared CI/CD workflows) - .gitignore - LICENSE - README.md (multi-language documentation) - scripts/ (shared scripts like detect-code-changes.mjs) - js/ folder (complete JavaScript package) - rust/ folder (complete Rust crate) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
✅ Changes AppliedBased on the feedback, I've moved all JS-specific files from the repository root to the Files Removed from Root
Root Directory Now Contains (Language-Neutral Only)Verification
Now working session is ended, feel free to review and add any feedback. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
Summary
This PR restructures the lino-env repository as a monorepo with separate JavaScript and Rust implementations, following the patterns from the AI-driven development pipeline templates.
Changes
./jsfolder and created new Rust implementation in./rustfolderlino-envcrate with full API matching the JavaScript version:(colon-space) separator per links-notation specread_lino_envandwrite_lino_envrelease.ymlwithjs.ymlandrust.ymlworkflowsdetect-code-changes.mjsto support both JS and Rustjs/folderRepository Structure
Test Plan
🤖 Generated with Claude Code
Fixes #20