ZeroTierOne/ext/opentelemetry-cpp-1.21.0/tools/nuget/README.md
2025-07-11 10:37:21 -07:00

42 lines
2 KiB
Markdown

# NuGet package creation process
This directory contains NuGet specification files (.nuspec).
Creating nuget packages:
1. Set `PackageVersion` environment variable that defines the package version.
```console
set PackageVersion=0.2.0
```
If environment variable is not set, then the version is automatically obtained from git tag:
```console
git describe --tags
```
2. Run `tools/build-nuget.cmd` script to create the package(s). Packages are copied to `.\packages` directory.
3. Push selected package to nuget feed.
Learn more about native code NuGet packages [here](https://docs.microsoft.com/en-us/nuget/guides/native-packages).
## Proposed NuGet package flavors
This section is a `DRAFT` - Work-in-Progress. The following packages MAY be created and published at nuget.org :
| Package Name | Desription | Notes |
|------------------------------|-------------------------------------------------------------|-------|
| OpenTelemetry.Cpp.Source | Complete recursive source code snapshot with dependencies. | |
| OpenTelemetry.Cpp.Dev | Source code snapshot excluding 3rd party dependencies. | |
| OpenTelemetry.Cpp.Api | API headers package. | |
| OpenTelemetry.Cpp.Sdk | SDK headers and source package. | |
| OpenTelemetry.Cpp.Ext | Extended functionality. | |
| OpenTelemetry.Cpp.Exporters | Exporters. | |
Prebuilt libraries MAY be provided in future in `OpenTelemetry.Cpp.${CompilerABI}` package for each compiler.
Refer to [Boost library](https://www.nuget.org/packages?q=boost) nuget packages for example how to create
a nuget package for a given compiler and runtime, using [Fuget Package Explorer](https://www.fuget.org/)
that allows to see the original nuget spec for each package.