// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 using LibraryVersionsGenerator.Models; namespace LibraryVersionsGenerator; internal static class PackageVersionDefinitions { public static IReadOnlyCollection Definitions => new List { new() { IntegrationName = "Azure", NugetPackageName = "Azure.Storage.Blobs", TestApplicationName = "TestApplication.Azure", Versions = new List { new("12.13.0"), new("*") } }, new() { IntegrationName = "Elasticsearch", NugetPackageName = "Elastic.Clients.Elasticsearch", TestApplicationName = "TestApplication.Elasticsearch", Versions = new List { new("8.0.0"), new("8.10.0"), // 8.10.0 introduces breaking change for ActivitySource name new("*") } }, new() { IntegrationName = "EntityFrameworkCore", NugetPackageName = "Microsoft.EntityFrameworkCore.Sqlite", TestApplicationName = "TestApplication.EntityFrameworkCore", Versions = new List { new("6.0.33"), new("7.0.20"), new("8.0.2", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }), new("*", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }) } }, new() { IntegrationName = "EntityFrameworkCorePomeloMySql", NugetPackageName = "Pomelo.EntityFrameworkCore.MySql", TestApplicationName = "TestApplication.EntityFrameworkCore.Pomelo.MySql", Versions = new List { new("6.0.2"), new("7.0.0"), new("8.0.0", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }), new("*", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }) } }, new() { IntegrationName = "GraphQL", NugetPackageName = "GraphQL", TestApplicationName = "TestApplication.GraphQL", Versions = new List { new("7.5.0") { MicrosoftDIVersion = "7.5.0", ServerTransportsAspNetCoreVersion = "7.5.0", ServerUIPlayground = "7.5.0" }, new("8.0.2") { MicrosoftDIVersion = "8.0.2", ServerTransportsAspNetCoreVersion = "8.0.2", ServerUIPlayground = "8.0.2" }, new("*") { MicrosoftDIVersion = "*", ServerTransportsAspNetCoreVersion = "*", ServerUIPlayground = "*" }, } }, new() { IntegrationName = "GrpcNetClient", NugetPackageName = "Grpc.Net.Client", TestApplicationName = "TestApplication.GrpcNetClient", Versions = new List { new("2.52.0"), new("*") } }, new() { IntegrationName = "MassTransit", NugetPackageName = "MassTransit", TestApplicationName = "TestApplication.MassTransit", Versions = new List { new("8.0.0"), new("*") } }, new() { IntegrationName = "SqlClientMicrosoft", NugetPackageName = "Microsoft.Data.SqlClient", TestApplicationName = "TestApplication.SqlClient.Microsoft", Versions = new List { // new("1.1.4"), - high vulnerability https://github.com/dotnet/announcements/issues/292, test should be skipped new("2.1.7"), new("3.1.5"), new("4.0.5"), new("*") } }, new() { IntegrationName = "SqlClientSystem", NugetPackageName = "System.Data.SqlClient", TestApplicationName = "TestApplication.SqlClient.System", Versions = new List { new("4.8.6"), new("*") } }, new() { IntegrationName = "MongoDB", NugetPackageName = "MongoDB.Driver", TestApplicationName = "TestApplication.MongoDB", Versions = new List { new("2.28.0"), new("*") } }, new() { IntegrationName = "MySqlConnector", NugetPackageName = "MySqlConnector", TestApplicationName = "TestApplication.MySqlConnector", Versions = new List { new("2.0.0"), new("*") } }, new() { IntegrationName = "MySqlData", NugetPackageName = "MySql.Data", TestApplicationName = "TestApplication.MySqlData", Versions = new List { new("8.1.0"), new("*") } }, new() { IntegrationName = "Npgsql", NugetPackageName = "Npgsql", TestApplicationName = "TestApplication.Npgsql", Versions = new List { // new("6.0.0"), - high vulnerability https://github.com/advisories/GHSA-x9vc-6hfv-hg8c, <= 6.0.10, <= 7.0.6, and <= 8.0.2 test should be skipped new("6.0.11"), new("*") } }, new() { IntegrationName = "NServiceBus", NugetPackageName = "NServiceBus", TestApplicationName = "TestApplication.NServiceBus", Versions = new List { new("8.0.0"), new("9.1.0", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }), // breaking change, new Meter name new("*", supportedTargetFrameworks: new[] { "net8.0" }, supportedExecutionFrameworks: new[] { "net8.0" }) } }, new() { IntegrationName = "OracleMda", NugetPackageName = "Oracle.ManagedDataAccess", TestApplicationName = "TestApplication.OracleMda.NetFramework", Versions = new List { new("23.4.0", supportedTargetFrameworks: new[] { "net472" }, supportedExecutionFrameworks: new[] { "net462" }), new("*") } }, new() { IntegrationName = "OracleMdaCore", NugetPackageName = "Oracle.ManagedDataAccess.Core", TestApplicationName = "TestApplication.OracleMda.Core", Versions = new List { new("23.4.0"), new("*") } }, new() { IntegrationName = "Quartz", NugetPackageName = "Quartz", TestApplicationName = "TestApplication.Quartz", Versions = new List { new("3.4.0"), new("*") } }, new() { IntegrationName = "StackExchangeRedis", NugetPackageName = "StackExchange.Redis", TestApplicationName = "TestApplication.StackExchangeRedis", Versions = new List { new("2.6.122"), new("*") } }, new() { IntegrationName = "WCFCoreClient", NugetPackageName = "System.ServiceModel.Http", TestApplicationName = "TestApplication.Wcf.Client.DotNet", Versions = new List { new("4.10.2"), new("*") } }, new() { IntegrationName = "Kafka", NugetPackageName = "Confluent.Kafka", TestApplicationName = "TestApplication.Kafka", Versions = new List { new("1.4.0", supportedPlatforms: new[] { "x64" }), new("1.6.2"), // First version that supports both arm64 and x64 new("1.8.2"), // 1.8.0-1.8.1 are known to have issues with arm64 new("*") } }, new() { IntegrationName = "RabbitMq", NugetPackageName = "RabbitMQ.Client", TestApplicationName = "TestApplication.RabbitMq", Versions = new List { new("6.0.0"), new("6.8.1"), new("*") } } }; internal record PackageVersionDefinition { public required string IntegrationName { get; init; } public required string NugetPackageName { get; init; } public required string TestApplicationName { get; init; } public required IReadOnlyCollection Versions { get; init; } } }