-
Notifications
You must be signed in to change notification settings - Fork 0
Add C# implementation with CI/CD infrastructure #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #9
This commit adds full C# support to the lino-objects-codec library: - Implement ObjectCodec class with encode/decode methods - Support for basic types: null, bool, int, long, float, double, string - Support for collections: List<object?>, Dictionary<string, object?> - Full circular reference support with shared object identity preservation - Base64 encoding for strings (UTF-8 support) - Handle special float values: NaN, Infinity, -Infinity - Thread-safe Codec static class - 69 unit tests covering all functionality - Example application demonstrating usage - Documentation with usage examples - CI workflow for automated testing Resolves #9 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
This reverts commit 7da91ef.
🤖 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. |
|
Get latest changes from default branch. Resolve conflicts. And also double check we fully support all best practices from templates:
Note that for each language we should have separate .changeset (or similar) folder. But we can share .mjs scripts in root ./scripts folder if possible. We should have no test.yml (it should be merged to the language versions), so end result would be 4 GitHub Workflows:
|
|
🤖 AI Work Session Started Starting automated work session at 2025-12-31T09:18:43.281Z 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. |
- Merge changes from main including JS/Python/Rust workflows and scripts - Resolve README.md conflict to include all 4 languages (Python, JS, Rust, C#) - Remove test.yml (replaced by language-specific workflows) - Update badges for all language workflows 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add csharp.yml workflow with lint, test, build, and release jobs - Multi-platform testing (Ubuntu, macOS, Windows) - NuGet package publishing support - Automatic and manual release modes - Add .changeset folder with README and config for C# - Add CHANGELOG.md for C# package - Add release scripts (create-github-release.mjs, version-and-commit.mjs) This follows the same patterns as JS, Python, and Rust workflows for consistency across all four language implementations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
🤖 Work Session CompletedI've addressed the feedback from the latest comments: ✅ Merge Conflicts Resolved
✅ Best Practices AppliedReviewed and applied patterns from the template repositories:
✅ CI/CD Infrastructure for C#Created complete CI/CD infrastructure following the established patterns: Workflow (
Changeset System (
Release Scripts (
✅ Four Language-Specific WorkflowsThe repository now has 4 independent CI/CD workflows:
The ✅ CI Status
Test Results
PR is now marked as ready for review. |
🤖 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 adds full C# support to the lino-objects-codec library as requested in issue #9, along with complete CI/CD infrastructure following the patterns established for JS, Python, and Rust implementations.
Features Implemented:
Encode()andDecode()methodsnull,bool,int,long,float,double,stringList<object?>,Dictionary<string, object?>NaN,Infinity,-InfinityCodecclass for easy accessProject Structure:
csharp/src/Lino.Objects.Codec/- Main librarycsharp/tests/Lino.Objects.Codec.Tests/- Unit tests (69 tests)csharp/examples/- Usage example applicationcsharp/README.md- Documentation with API referenceCI/CD Infrastructure:
csharp.yml):csharp/.changeset/):csharp/scripts/):create-github-release.mjs- Creates GitHub releases from CHANGELOG.mdversion-and-commit.mjs- Version bumping and commit automationRepository-wide Updates:
Test plan
dotnet format --verify-no-changes)Changes from main branch merge
This PR incorporates changes from main including:
🤖 Generated with Claude Code
Fixes #9