v1.4.1 "Teikyō" - Enhanced Proto File Distribution
Release Date: 2025-08-05
Code Name: "Teikyō" (提供 - Provision/Supply)
Type: Patch Release
🎯 Overview
Version 1.4.1 focuses on improving gRPC protocol buffer file distribution in the NuGet package, making it significantly easier for consumers to import and use the shared proto definitions. This patch release enhances the packaging approach based on best practices for gRPC proto file sharing.
The "Teikyō" release ensures that proto files are properly provisioned to consuming projects with enhanced visibility and accessibility.
🚀 Key Improvements
Enhanced Proto File Packaging
- Improved Content Configuration: Updated proto file packaging to use enhanced
<Content>
tags with proper visibility settings - Copy to Output Directory: Proto files are now automatically copied to the output directory with
CopyToOutputDirectory="PreserveNewest"
- Enhanced Visibility: Added
Visible="true"
attribute to make proto files visible in consuming project Solution Explorer - Wildcard Pattern Support: Uses
Grpc\**\*.proto
pattern to automatically include future proto files in subdirectories
Updated Configuration:
<ItemGroup>
<!-- Copy proto files into the package for consumers to import -->
<Content Include="Grpc\**\*.proto" Pack="true" PackagePath="contentFiles\any\any\Grpc\" Visible="true">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Grpc\**\*.proto" Pack="true" PackagePath="content\Grpc\" Visible="true">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Consumer Experience Improvements
- Better Project Integration: Proto files now appear directly in consuming projects' file explorer
- Simplified Import Process: Enhanced support for
AdditionalImportDirs
in consuming projects - Backward Compatibility: Maintains support for both modern PackageReference and legacy packages.config workflows
- Documentation Alignment: Package configuration now follows established best practices for gRPC proto sharing
🛠️ Technical Changes
Package Structure Enhancement
The proto files are now packaged in both content paths for maximum compatibility:
contentFiles/any/any/Grpc/jiroHub.proto # Modern .NET Core/5+ projects
content/Grpc/jiroHub.proto # Legacy .NET Framework projects
Build Integration
- Automatic Discovery: Wildcard patterns ensure future proto files are automatically included
- Output Directory Copying: Proto files are available in consuming project's output directory
- Enhanced Visibility: Proto files appear in Solution Explorer for better developer experience
📦 For Package Consumers
Recommended Usage Pattern
Consuming projects can now more easily reference the shared proto files:
<ItemGroup>
<!-- Reference the shared contracts package with path generation -->
<PackageReference Include="Jiro.Shared" Version="1.4.1" GeneratePathProperty="true" />
<!-- Include proto files with import directory support -->
<Protobuf Include="Protos\*.proto"
ProtoRoot="Protos"
AdditionalImportDirs="$(PkgJiro_Shared)\content\Grpc"
GrpcServices="Both" />
</ItemGroup>
Import in Proto Files
syntax = "proto3";
import "jiroHub.proto"; // Now more reliably resolved
option csharp_namespace = "YourProject.Services";
// Your service definitions here
🔧 Migration Notes
This is a patch release with no breaking changes. Existing consumers will automatically benefit from the improved packaging without any code changes required.
For New Consumers
- Proto files are now more visible in Solution Explorer
- Import resolution is more reliable across different project configurations
- Enhanced support for both modern and legacy .NET project styles
🐛 Issues Addressed
- Proto File Visibility: Proto files now appear properly in consuming project file explorers
- Import Resolution: Enhanced reliability of proto file import resolution in consuming projects
- Package Compatibility: Improved support for different NuGet package consumption patterns
- Build Integration: Better integration with MSBuild and gRPC tooling workflows
📈 Benefits
- Developer Experience: Proto files are now visible and easily accessible in consuming projects
- Build Reliability: Enhanced build-time proto file resolution and copying
- Future-Proofing: Wildcard patterns automatically include new proto files
- Standards Compliance: Package structure follows established gRPC proto sharing best practices
🔗 Dependencies
No dependency changes in this release. All dependencies remain the same as v1.4.0.
Note: This patch release focuses exclusively on improving the gRPC proto file distribution experience. The enhanced packaging approach makes it significantly easier for consumers to import and use the shared jiroHub.proto definitions in their own projects.