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.