- 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)
-
Initialize Git Repository
git init git add . git commit -m "Initial commit - AnAspect.OneOf v0.1.0-alpha"
-
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)
-
Push to GitHub
git branch -M main git remote add origin https://github.com/Pouria7/AnAspect.OneOf.git git push -u origin main
-
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.
-
-
Add Topics to Repository
- Settings → Topics
- Add:
anaspect,oneof,discriminated-union,fody,il-weaving,csharp,dotnet,performance,experimental
-
Update Repository Description
- Description: "🔬 Experimental IL-weaved discriminated unions for C# - 30-57% memory reduction"
- Website: Leave blank or add docs site later
-
Build Packages
.\build-packages.ps1 -
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
-
Get NuGet API Key
- Go to https://www.nuget.org/account/apikeys
- Create new API key
- Name: "AnAspect.OneOf Publishing"
- Glob pattern:
AnAspect.OneOf* - Permissions: Push
-
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
-
Verify on NuGet.org
- Check packages appear: https://www.nuget.org/packages/AnAspect.OneOf/
- Verify README displays correctly
- Ensure "pre-release" badge shows
- 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)
- Add OneOf<T1, T2, T3, T4> support
- Implement TryGet IL rewriting
- Add more comprehensive tests
- Improve debugger experience
- Add Roslyn analyzers
- 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