NuGet Package Management for Vogen.Serialization

This outline provides a guide for developers working with the Vogen.Serialization project on GitHub.

NuGet Package Structure and Distribution

Purpose: The NuGet package is a primary method for distributing Vogen.Serialization. NuGet provides a standard packaging format and a convenient way to manage dependencies.

Package Structure:

The NuGet packages for Vogen.Serialization are structured to include:

  • Compiled Libraries: The compiled DLLs containing the Vogen.Serialization code.
  • Dependencies: Other NuGet packages required by Vogen.Serialization.
  • Metadata: Information about the package, such as its version, author, and description.

Package Management:

The NuGet package is designed to be easily managed and integrated into projects using NuGet package managers.

NuGet Package Options and Examples

1. Core NuGet Package:

  • Package Name: Vogen.Serialization
  • Description: Provides serialization and deserialization capabilities for types generated by Vogen.
  • Usage: Install the package using a NuGet package manager.
  • Example:
Install-Package Vogen.Serialization
          

2. Specific Serializer Packages:

  • Package Names: Vogen.Serialization.Json, Vogen.Serialization.SystemTextJson, Vogen.Serialization.NewtonsoftJson, Vogen.Serialization.Xml
  • Description: Provides serialization and deserialization capabilities for specific serializers (e.g., System.Text.Json, Newtonsoft.Json, Xml).
  • Usage: Install the desired serializer package in addition to the core Vogen.Serialization package.
  • Example:
Install-Package Vogen.Serialization.SystemTextJson
          

3. Protobuf NuGet Package:

  • Package Name: Vogen.Serialization.Protobuf
  • Description: Provides serialization and deserialization capabilities for Protobuf.
  • Usage: Install the package using a NuGet package manager. This package depends on the Google.Protobuf package.
  • Example:
Install-Package Vogen.Serialization.Protobuf
          

4. Testing Package:

  • Package Name: Vogen.Serialization.Test
  • Description: Contains unit tests and other testing utilities for the Vogen.Serialization library.
  • Usage: Used for internal testing and development purposes.
  • Example:
Install-Package Vogen.Serialization.Test
          

NuGet Package Metadata and Versioning

Metadata:

NuGet package metadata provides essential information about the package, such as:

  • Package ID: Unique identifier for the package.
  • Version: Package version number.
  • Description: Brief overview of the package.
  • Authors: Contributors to the package.
  • License: License under which the package is released.

Versioning:

Vogen.Serialization uses Semantic Versioning (SemVer) to manage package versions.

  • Major Version: Significant changes that break backward compatibility.
  • Minor Version: New features or enhancements that maintain backward compatibility.
  • Patch Version: Bug fixes or minor improvements.

Note: Refer to the Vogen.Serialization project repository for the most up-to-date NuGet package information and versioning details.