Skip to content

fix: add release-please version markers to csproj - #21

Merged
tanderson-ld merged 1 commit into
mainfrom
devin/1780959591-fix-release-version-management
Sep 22, 2026
Merged

tanderson-ld merged 1 commit into
mainfrom
devin/1780959591-fix-release-version-management

Conversation

@kinyoklion

@kinyoklion kinyoklion commented Jun 8, 2026 •

Copy link
Copy Markdown
Member

Summary

release-please doesn't update the <Version> in the .csproj because the file is missing from extra-files and lacks x-release-please-start-version / x-release-please-end markers. This means the NuGet package would be built with the old version on every release, and dotnet nuget push would fail since that version already exists on NuGet.

Adds the csproj to extra-files in release-please-config.json and wraps the <Version> tag with release-please markers — matching how the NLog and MS logging adapters are configured.

Link to Devin session: https://app.devin.ai/sessions/746778111964463bbcfa2ddded90cb85
Requested by: @kinyoklion


Note

Low Risk
Release automation and project metadata only; no runtime or API behavior changes.

Overview
Fixes release-please so the NuGet package version bumps on each release.

release-please-config.json now lists src/LaunchDarkly.Logging/LaunchDarkly.Logging.csproj under extra-files, and the csproj wraps <Version> with x-release-please-start-version / x-release-please-end markers (same pattern as PROVENANCE.md). Without this, releases could keep building and pushing 2.0.0, causing dotnet nuget push failures.

Reviewed by Cursor Bugbot for commit 4f73aba. Bugbot is set up for automated code reviews on this repo. Configure here.

The .csproj Version tag was not managed by release-please because:
1. The file was missing from extra-files in release-please-config.json
2. The Version tag lacked x-release-please-start-version/end markers

Without this, the NuGet package would be built with the old version
on every release, causing the publish to fail since that version
already exists on NuGet.

Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot added the devin-pr PR created by Devin label Jun 8, 2026
@kinyoklion
kinyoklion marked this pull request as ready for review June 11, 2026 16:46
@tanderson-ld
tanderson-ld merged commit 903271e into main Sep 22, 2026
8 checks passed
@tanderson-ld
tanderson-ld deleted the devin/1780959591-fix-release-version-management branch September 22, 2026 13:37
tanderson-ld added a commit that referenced this pull request Sep 22, 2026
## Summary

LaunchDarkly.Logging 2.0.0 still ships a `netcoreapp3.1` target. Under
NuGet's nearest-compatible asset selection, **every .NET 5+
application** (including net8.0 services and MAUI `net8.0-*` apps)
selects that asset, so an assembly built against EOL .NET Core 3.1 lands
in modern applications. Security scanners flag the EOL runtime
references, and this has been reported through customer support as
failing CI/CD security gates.

This PR replaces the `netcoreapp3.1` target with `net8.0`, matching the
rest of the SDK family (ServerSdk since 8.9.0, CommonSdk since 7.0.1,
InternalSdk since 3.8.0). **No code changes are required**:
`Logs.CoreLogging` is gated on `#if NETCOREAPP`, which is also defined
for net8.0. Per review, the `Microsoft.Extensions.Logging.Abstractions`
floor on the net8.0 target moves to 8.0.3, the framework-matched band.

Related ticket: SDK-3131

## Consumer impact

| Consumer | Asset before | Asset after | Effect |
|---|---|---|---|
| net8.0+ / net10 / MAUI | netcoreapp3.1 | net8.0 | same API;
`Microsoft.Extensions.Logging.Abstractions` floor moves 6.0.0 → 8.0.3;
scanner finding resolved |
| .NET Framework 4.6.2+ | net462 | net462 | none |
| netstandard2.x libraries | netstandard2.0 | netstandard2.0 | none |
| netcoreapp3.1, net5–net7 (all EOL) | netcoreapp3.1 | netstandard2.0 |
all APIs available except `Logs.CoreLogging`; the
[LaunchDarkly.Logging.Microsoft](https://www.nuget.org/packages/LaunchDarkly.Logging.Microsoft)
package provides the equivalent adapter there |

Shipped as `feat:` (2.1.0), consistent with how the equivalent
target-framework changes shipped across the SDK family. (2.0.0 was a
major because dropping `net452` made the package uninstallable for .NET
Framework < 4.6.2; this change leaves every current consumer installable
and functional.)

## Notes for reviewers

- **Release prerequisite:** #21 (release-please version markers in the
csproj) should land before cutting the release, or release-please will
publish with a stale `<Version>` stamp.
- **Optional variant:** adding a `net10.0` target alongside net8.0 is a
one-line change that would pre-empt the same scanner issue recurring
when net8 reaches EOL (November 2026). Left out here to match current
family convention — happy to add if preferred.
- Follow-up (separate PRs, dotnet-core): raise the LaunchDarkly.Logging
floor in ServerSdk and ClientSdk so customers pick this up transitively;
NuGet's lowest-wins resolution means nothing changes for them until
then. Customers can opt in immediately with a direct `PackageReference`.

## Testing

- `dotnet build` (0 warnings) and `dotnet test` (52/52 passed) locally
on net8.0/netstandard2.0, including `NetCoreLoggingTest` exercising
`Logs.CoreLogging` against the retargeted asset.
- CI matrix (SDK 8.x/9.x on ubuntu + windows) builds all three targets
including net462.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> Replaces the EOL **`netcoreapp3.1`** NuGet target with **`net8.0`** so
modern .NET apps stop resolving the 3.1 asset (and related scanner
failures) while keeping **`net462`** and **`netstandard2.0`**.
> 
> The **`net8.0`** build now references
**`Microsoft.Extensions.Logging.Abstractions` 8.0.3** (was 6.0.0 on
3.1); tests use **`Microsoft.Extensions.Logging` 8.0.1**.
**`Logs.CoreLogging`** stays behind **`#if NETCOREAPP`**—only XML/docs
and README/CONTRIBUTING examples are updated to describe .NET 8.0+.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
bb92882. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
tanderson-ld pushed a commit that referenced this pull request Sep 22, 2026
🤖 I have created a release *beep* *boop*
---


##
[2.1.0](2.0.0...2.1.0)
(2026-09-22)


### Features

* replace EOL netcoreapp3.1 target with net8.0
([02a5cf2](02a5cf2))
* replace EOL netcoreapp3.1 target with net8.0
([#23](#23))
([4f56f24](4f56f24))


### Bug Fixes

* add release-please version markers to csproj
([4f73aba](4f73aba))
* add release-please version markers to csproj
([#21](#21))
([903271e](903271e))
* match Microsoft.Extensions.Logging.Abstractions to the net8.0
framework band
([4698802](4698802))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> **Release 2.1.0** bumps package and release metadata from **2.0.0** to
**2.1.0** (manifest, `LaunchDarkly.Logging.csproj`, `PROVENANCE.md`
example version, and a new **CHANGELOG** section).
> 
> The release notes capture work already merged for this line:
**netcoreapp3.1** is dropped in favor of **net8.0** as a build target
(alongside **netstandard2.0** and **net462**), **release-please**
version markers were added around the csproj version, and
**Microsoft.Extensions.Logging.Abstractions** is pinned to the **8.x**
band for the **net8.0** target. This PR itself is the automated Release
Please cut—no additional runtime or API code changes beyond those
version/doc updates in the diff.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
6b4b25e. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devin-pr PR created by Devin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants