Skip to content

Commit 64e6fc8

Browse files
JDetmarCopilot
andauthored
Remove deprecated NLog.Extensions.AzureCosmosTable package (#189)
* Remove deprecated NLog.Extensions.AzureCosmosTable package source code - Remove all source files from AzureCosmosTable (deprecated, contains vulnerabilities) - Replace with placeholder README pointing to archive tag and migration path - Add DEPRECATED.md with deprecation status for AzureCosmosTable and legacy bundle - Add DEPRECATION_PROCESS.md to document deprecation workflow for future use The package depends on WindowsAzure.Storage which is unmaintained and has known security vulnerabilities. Users should migrate to NLog.Extensions.AzureDataTables. Source code preserved at tag: archive/azure-cosmos-table-2022-01-29 Refs: Snyk security findings * Update DEPRECATED.md Co-authored-by: Copilot <[email protected]> * Update DEPRECATION_PROCESS.md Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
1 parent 6c1d4b9 commit 64e6fc8

File tree

8 files changed

+117
-698
lines changed

8 files changed

+117
-698
lines changed

DEPRECATED.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Deprecated package: NLog.Extensions.AzureCosmosTable
2+
3+
`NLog.Extensions.AzureCosmosTable` is deprecated, unmaintained, and contains known vulnerabilities in its dependency chain. It is no longer supported and will not receive fixes or updates.
4+
5+
## Guidance
6+
7+
- Do not use this package in new or existing projects.
8+
- Migrate to `NLog.Extensions.AzureDataTables`, which targets the supported Azure Data Tables APIs.
9+
- Unlist or remove any internal feeds that still carry this package to prevent accidental consumption.
10+
11+
## Status
12+
13+
- Maintenance: stopped
14+
- Security: known vulnerabilities, will not be fixed
15+
- NuGet: marked deprecated; recommend unlisting any remaining versions
16+
- Last code commit containing this package: f1c345b490a7353c5fd00d1dde42364d162173ce (2022-01-29 — see tag `archive/azure-cosmos-table-2022-01-29`)
17+
18+
## Deprecated package: NLog.Extensions.AzureStorage (bundle)
19+
20+
The legacy bundled package `NLog.Extensions.AzureStorage` was superseded when targets were split. It should not be used.
21+
22+
### Guidance (bundle)
23+
24+
- Do not use the bundled package; consume the individual packages (Blob, Queue, EventHub, EventGrid, DataTables, ServiceBus, AccessToken) instead.
25+
- Unlist or remove any internal feeds that still carry the bundle to prevent accidental consumption.
26+
27+
### Status (bundle)
28+
29+
- Maintenance: stopped
30+
- Security: inherits vulnerabilities from deprecated dependencies in the bundle; will not be fixed
31+
- NuGet: should be marked deprecated/unlisted
32+
- Last code commit containing this bundle: c8bfb7966d550221e1aeca859705f606c8559dd2 (tag `archive/azure-storage-bundle`)

DEPRECATION_PROCESS.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Deprecation and Removal Playbook
2+
3+
Practical steps to deprecate and remove a package (while keeping history) without letting vulnerable code stay on the default branch or get republished.
4+
5+
## Steps
6+
7+
1. **Declare deprecation**
8+
- Open an issue/PR stating the reason (vulnerability/abandonment) and affected package name.
9+
- Add a loud banner to the package README and a short note in the root README pointing to the safer alternative.
10+
- Add/update `DEPRECATED.md` with the status and migration guidance.
11+
12+
2. **Stop distribution**
13+
- Remove the project from the solution and CI pack/test pipelines so it cannot be built or packed.
14+
- Unlist all NuGet versions, or publish a final version with release notes that say "deprecated, insecure, unsupported" and link to the alternative.
15+
- Verify no other packages in the repo reference it (remove references or add a compile-time `#error` guard if needed).
16+
17+
3. **Clean the default branch for scanners**
18+
- Delete the package source folder from `master` (or default branch) and replace it with a small placeholder README that states it was removed, why, and where to find an alternative.
19+
- Keep a brief note in the root README so users understand it was intentionally removed.
20+
21+
4. **Preserve history without branch sprawl**
22+
- Tag the last commit that still contained the code (e.g., `archive/<package>-YYYY-MM-DD`).
23+
24+
5. **Security and comms**
25+
- If the risk is security-related, add a short SECURITY/Advisory note: status = won't fix, remediation = use alternative, scope of impact.
26+
- Optionally pin the advisory in the repo and link it from the package README placeholder.
27+
28+
6. **Validate**
29+
- Run `dotnet build` and targeted tests to confirm removal did not break supported packages.
30+
- Confirm CI pack/test steps skip the removed package.
31+
32+
## Artifacts to touch (typical)
33+
34+
- Package README: banner + deprecation note or placeholder.
35+
- Root `README.md`: short note and link to alternative.
36+
- `DEPRECATED.md`: status and guidance.
37+
- Solution file and CI config: remove project, pack, and test entries.
38+
- Optional: SECURITY/advisory file with "won't fix" language.
39+
40+
## Templates
41+
42+
**Placeholder README snippet (in the removed package folder):**
43+
44+
```markdown
45+
# <PackageName> (removed)
46+
47+
This package was removed from the default branch because it is deprecated and contains known vulnerabilities. It is unmaintained and should not be used. See <AlternativePackage> instead.
48+
49+
Last code version is preserved at tag: archive/<package>-YYYY-MM-DD.
50+
```
51+
52+
**Release notes snippet for the final/last package version:**
53+
54+
```text
55+
Deprecated and insecure. This package is unmaintained and contains known vulnerabilities. Do not use. Migrate to <AlternativePackage>.
56+
```
57+
58+
## Quick command hints
59+
60+
- Tag the last commit before removal:
61+
62+
```sh
63+
git tag archive/<package>-YYYY-MM-DD
64+
```
65+
66+
67+
- Remove a project from the solution (example):
68+
69+
```sh
70+
dotnet sln src/NLog.Extensions.AzureStorage.sln remove src/<Project>/<Project>.csproj
71+
```
72+
73+
## Checklist for each deprecation
74+
75+
- [ ] Banner in package README + root README note
76+
- [ ] Solution/CI pack/test entries removed
77+
- [ ] NuGet versions unlisted or final deprecated version published with clear notes
78+
- [ ] Placeholder README in default branch, code removed
79+
- [ ] Tag created for last code commit (and archive branch if required)
80+
- [ ] Advisory/SECURITY note added when security-driven
81+
- [ ] Build/tests rerun to verify unaffected packages

src/NLog.Extensions.AzureCosmosTable/ICloudTableService.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/NLog.Extensions.AzureCosmosTable/NLog.Extensions.AzureCosmosTable.csproj

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/NLog.Extensions.AzureCosmosTable/NLogEntity.cs

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/NLog.Extensions.AzureCosmosTable/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)