Table of Contents

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

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.