Skip to content

Latest commit

 

History

History
161 lines (132 loc) · 5.03 KB

File metadata and controls

161 lines (132 loc) · 5.03 KB

Release Checklist for AnAspect.OneOf v0.1.0-alpha

✅ Pre-Release Completed

  • Project renamed to AnAspect.OneOf
  • All namespaces updated
  • GitHub URLs updated (https://github.com/Pouria7/AnAspect.OneOf)
  • NuGet package metadata configured
  • icon.png created (128x128)
  • All tests passing (3/3)
  • Sample app working
  • Benchmarks validated (30-57% memory reduction)
  • Documentation complete
  • License file updated (MIT)
  • CI/CD workflow configured (.github/workflows/build.yml)

📋 GitHub Publishing Steps

  1. Initialize Git Repository

    git init
    git add .
    git commit -m "Initial commit - AnAspect.OneOf v0.1.0-alpha"
  2. Create GitHub Repository

    • Go to https://github.com/Pouria7
    • Click "New repository"
    • Name: AnAspect.OneOf
    • Description: "Experimental IL-weaved discriminated unions for C# - 30-57% memory reduction"
    • Public repository
    • Do NOT initialize with README (we have one)
  3. Push to GitHub

    git branch -M main
    git remote add origin https://github.com/Pouria7/AnAspect.OneOf.git
    git push -u origin main
  4. Create Release

    • Go to repository → Releases → "Create a new release"

    • Tag: v0.1.0-alpha

    • Title: v0.1.0-alpha - Experimental Release

    • Mark as "pre-release" ✅

    • Description:

      ⚠️ **EXPERIMENTAL ALPHA RELEASE** - Not production-ready
      
      ## What is AnAspect.OneOf?
      High-performance discriminated union library using IL weaving (Fody) to achieve:
      - 30-57% memory reduction vs traditional OneOf implementations
      - Zero-cost type checking (direct `is` operator)
      - Full type safety at compile time
      
      ## ⚠️ Important Warnings
      - Experimental alpha - APIs may change
      - Only `OneOf<T1, T2>` supported
      - TryGet methods not optimized yet
      - See EXPERIMENTAL-WARNING.md before using
      
      ## What Works
      ✅ From/Is/As patterns fully optimized
      ✅ Local variable optimization
      ✅ Reference and value types supported
      ✅ Sample and tests included
      
      ## Installation
      ```xml
      <PackageReference Include="Fody" Version="6.8.0" PrivateAssets="all" />
      <PackageReference Include="AnAspect.OneOf" Version="0.1.0-alpha" />
      <PackageReference Include="AnAspect.OneOf.SourceGenerator" Version="0.1.0-alpha" />
      

      See README.md for full documentation.

      
      
  5. Add Topics to Repository

    • Settings → Topics
    • Add: anaspect, oneof, discriminated-union, fody, il-weaving, csharp, dotnet, performance, experimental
  6. Update Repository Description

    • Description: "🔬 Experimental IL-weaved discriminated unions for C# - 30-57% memory reduction"
    • Website: Leave blank or add docs site later

📦 NuGet Publishing Steps

  1. Build Packages

    .\build-packages.ps1
  2. Test Packages Locally (Optional but recommended)

    # Create local feed
    mkdir local-nuget-feed
    
    # Copy packages
    cp artifacts/*.nupkg local-nuget-feed/
    
    # Test in new project
    dotnet new console -n TestAnAspect
    cd TestAnAspect
    dotnet nuget add source ../local-nuget-feed -n LocalFeed
    dotnet add package AnAspect.OneOf -v 0.1.0-alpha --source LocalFeed
  3. Get NuGet API Key

  4. Publish to NuGet.org

    dotnet nuget push "artifacts/AnAspect.OneOf.Attributes.0.1.0-alpha.nupkg" --api-key YOUR_API_KEY --source https://api.nuget.org/v3/index.json
    dotnet nuget push "artifacts/AnAspect.OneOf.SourceGenerator.0.1.0-alpha.nupkg" --api-key YOUR_API_KEY --source https://api.nuget.org/v3/index.json
    dotnet nuget push "artifacts/AnAspect.OneOf.0.1.0-alpha.nupkg" --api-key YOUR_API_KEY --source https://api.nuget.org/v3/index.json
  5. Verify on NuGet.org

📝 Post-Release Tasks

  • Add GitHub repository link to NuGet package pages
  • Update NuGet package icon if needed
  • Monitor GitHub issues for bug reports
  • Create GitHub Discussions for Q&A
  • Add badges to README:
    • Build status
    • NuGet version
    • License
    • Downloads
  • Consider creating a gh-pages branch for documentation
  • Tweet/announce on social media (optional)

🎯 Next Version Roadmap (v0.2.0-alpha)

  • Add OneOf<T1, T2, T3, T4> support
  • Implement TryGet IL rewriting
  • Add more comprehensive tests
  • Improve debugger experience
  • Add Roslyn analyzers

⚠️ Remember

  • Mark all releases as "pre-release" until v1.0.0
  • Keep EXPERIMENTAL-WARNING.md prominent
  • Respond to issues promptly
  • Document breaking changes in CHANGELOG.md
  • Follow semantic versioning

Created: 2024-12-13 Project: AnAspect.OneOf v0.1.0-alpha Author: Pouria7 License: MIT