fsprojects/Paket
51.4
Adequate · 28 September 2026
32.9k
lines of production code
F#
with C#
3
measurements over time
What this system is
Paket is a dependency management tool for .NET that resolves, installs, and packs NuGet packages while integrating deeply with MSBuild to generate project files, binding redirects, and restore targets. It supports complex scenarios including multi-group dependencies, framework-specific targeting, and migration from legacy NuGet configurations, alongside features like shell completion and F\# script integration.
How it got here
2013–2016 — comprehensive test coverage and API expansion
98 changes.
This period focused on establishing a robust test suite for Paket, adding extensive unit and integration tests for dependency resolution, lock file handling, and project file parsing. It also introduced a public API for programmatic access, refactored the bootstrapper with improved download strategies, and updated the CLI interface to use subcommands.
2017–2019 — Core architecture refactoring and modularization
39 changes.
This period focused on restructuring Paket.Core into a modular architecture, decoupling core logic into dedicated components for dependency resolution, installation, versioning, and packaging. The work introduced foundational utilities, enhanced cross-platform support, and expanded features like package analysis and shell completion. Extensive test coverage was added to validate the new structure and complex packaging scenarios.
2020–2026 — FSI Paket integration and test expansion
14 changes.
This period focused on integrating Paket dependency management for F\# interactive scripts and expanding the test suite to cover proxy configurations, group conditions, and various packaging scenarios. The work involved implementing the new dependency manager provider and adding extensive integration tests to verify behavior across different .NET versions, platforms, and metadata handling.
Features
Added LockFileComparer utility for comparing NuGet and Paket lock files
A new standalone utility has been added to compare dependency versions between NuGet (packages.lock.json) and Paket (paket.lock) lock files. The tool reads both lock files, extracts the resolved versions for the .NET Core 3.0 target, normalizes version strings, and prints a sorted list of dependencies and their versions to the console. This aids in identifying discrepancies between the two package management systems.
src/LockFileComparer · high confidence
Added helper script to remove password from PFX files
A new Windows batch script (remove-password-from-pfx.cmd) has been added to the tools directory to facilitate the removal of passwords from password-protected PFX certificate files. This utility uses OpenSSL to convert a password-protected PFX into a temporary PEM file and then re-exports it as a new PFX without a password, streamlining the process for users who need to use certificates in automated signing workflows without manual password entry.
tools · high confidence
Added script generation prototype for loading scripts
A new prototype script (\script-generation.fsx\) has been added to the \Prototypes\ directory to facilitate the generation and testing of F\# load scripts. This file sets up integration test scenarios by copying project templates, initializing a \DependencyCache\, and invoking \ScriptGeneration.constructScriptsFromData\ to produce script references for specific target frameworks (e.g., .NET 4.6). It serves as a local tool for validating script generation logic against integration test data rather than a shipped product feature.
src/Paket.Core/Prototypes · high confidence
Initial shell completion support for Bash, Zsh, and Fish
Paket now provides shell completion scripts for Bash, Zsh, and Fish, enabling tab-completion for subcommands (such as \add\, \update\, \restore\) and common options. The Zsh implementation includes advanced features like caching for expensive operations (e.g., fetching package lists) and configurable infix matching for package IDs. Installation instructions and update mechanisms are included in the new documentation files.
completion · high confidence
Introduce shared core utilities and domain types for Paket
This change establishes a new \Paket.Core.Common\ module containing foundational components for the Paket package manager. It introduces domain types such as \PackageName\ and \GroupName\ with case-insensitive comparison, a cross-platform encryption module (\Encryption.fs\) that uses AES for non-Windows systems and DPAPI for Windows, and robust logging utilities (\Logging.fs\) with deduplication and detailed error reporting. Additionally, it provides network utilities (\NetUtils.fs\) for HTTP requests and proxy handling, asynchronous workflow extensions (\Async.fs\) for proper cancellation and task integration, and process helper utilities (\ProcessHelper.fs\, \SymlinkUtils.fs\) for cross-platform command execution and symlink management.
src/Paket.Core/Common · high confidence
Introduction of Paket.Core public API and .NET Framework 4.6.1 support
Paket now exposes a structured public API (PublicAPI.fs) for programmatic dependency management, allowing users to locate, initialize, and modify paket.dependencies files, as well as add packages and convert from NuGet via code rather than just CLI commands. This release also shifts the core library target to .NET Framework 4.6.1, introducing specific assembly binding redirects for Newtonsoft.Json, System.Collections.NonGeneric, System.ComponentModel.TypeConverter, and System.Xml.XmlDocument to ensure compatibility with this updated framework version.
src/Paket.Core · high confidence
New Paket dependency manager integration for F\# scripts
This change introduces a new \PaketDependencyManager\ provider that enables resolution of \paket:\ NuGet references (e.g., \\#r "paket: nuget ..."\) within F\# interactive scripts. The implementation locates the \paket.exe\ binary, normalizes target framework names (e.g., converting \net5.0\ to \net50\ for compatibility), and generates load scripts to handle package resolution and reference loading during script execution.
src/FSharp.DependencyManager.Paket · high confidence
New package analysis commands and logic
The \paket\ tool now includes dedicated commands and underlying logic for analyzing package dependencies. Users can run \paket outdated\ to identify packages with newer versions available, \paket why \<package\>\ to trace the dependency chain explaining why a specific package is included, and \paket simplify\ to automatically remove unused direct dependencies from \paket.dependencies\ and \paket.references\ files. These features provide better visibility into the dependency graph and help keep project files clean.
src/Paket.Core/PackageAnalysis · high confidence
Security
Pin System.Formats.Asn1 to patched version to address [CVE redacted]
The System.Formats.Asn1 dependency has been pinned to a patched version to resolve the security vulnerability identified as [CVE redacted] (NU1903).
(dependencies) · high confidence
Architecture
Refactor paket.config file handling into a dedicated module
The logic for parsing and managing paket configuration files (such as dependencies, lock files, project references, and local overrides) has been moved from the core Paket.Core assembly into a new, separate directory structure at src/Paket.Core/PaketConfigFiles. This change introduces new modules for handling specific file types like DependenciesFile, LockFile, ProjectFile, and LocalFile, effectively decoupling configuration file parsing from the main core logic.
src/Paket.Core/PaketConfigFiles · high confidence
Refactored NuGet package generation with new packaging module
The internal implementation for generating NuGet packages has been restructured into a new \Paket.Core/Packaging\ module, introducing dedicated files for writing package archives (\NupkgWriter.fs\), managing metadata (\PackageMetaData.fs\), and orchestrating the packing process (\PackageProcess.fs\). This refactoring consolidates the logic for assembling \.nupkg\ files, resolving package IDs (preferring MSBuild \PackageId\ properties), and handling dependency groups, providing a cleaner foundation for the \paket pack\ command.
src/Paket.Core/Packaging · high confidence
Refactored package management into dedicated process modules
The package management logic in Paket.Core has been reorganized into specific modules (AddProcess, RemoveProcess, NugetConvert, Releases, VSIntegration) to improve code structure and maintainability. This change introduces dedicated handling for adding packages (including support for GitHub and Git sources), removing packages, converting from NuGet packages.config, managing bootstrapper/targets updates, and integrating with Visual Studio (such as toggling auto-restore). Users benefit from a more robust and modular dependency management system, though the internal API surface for these operations has changed.
src/Paket.Core/PackageManagement · high confidence
Behavioural changes
Bootstrapper download strategies refactored with caching, hash validation, and update throttling
The bootstrapper's download logic has been restructured into a strategy pattern (IDownloadStrategy) with specific implementations for GitHub and NuGet sources. This change introduces a CacheDownloadStrategy that stores downloaded paket.exe files in the local NuGet cache, reusing them if the hash is valid to speed up subsequent runs. It also adds robust hash file validation to detect and handle corrupt downloads, and introduces a TemporarilyIgnoreUpdatesDownloadStrategy that allows users to skip version checks for a specified period via the --max-file-age option, reducing unnecessary network traffic and delays.
src/Paket.Bootstrapper/DownloadStrategies · high confidence
Bootstrapper refactored with new argument parsing, version comparison, and download strategies
The Paket bootstrapper has been restructured to improve reliability and flexibility. It now uses a dedicated ArgumentParser to handle configuration from command-line flags (such as --prefer-nuget, --force-nuget, --self, and --run), environment variables (PAKET.VERSION), and the paket.dependencies file. Version comparisons are performed using semantic versioning (SemVer) logic instead of simple string matching, ensuring correct upgrade/downgrade decisions. The bootstrapper supports downloading Paket via NuGet or GitHub, with fallback strategies and hash verification for downloaded files. It also introduces 'magic mode' for seamless integration when renamed to paket.exe, allows specifying a custom output directory, and supports running the downloaded Paket executable directly.
src/Paket.Bootstrapper · high confidence
Fix for unsupported framework version handling in download scenario
This change updates the integration test scenario for issue \#1494 to ensure that invalid framework versions, specifically 'Unsupported0.0', are correctly rejected rather than being accepted as a full framework. The test setup now includes a manual project template configured for .NET Framework v4.6 with dependencies on Dapper and NUnit, providing a concrete baseline for verifying that the tooling properly validates target framework identifiers during the download process.
integrationtests/scenarios/i001494-download · medium confidence
Introduce proxy abstractions for environment, file system, and web requests
The bootstrapper now uses dedicated proxy interfaces (IEnvProxy, IFileSystemProxy, IWebRequestProxy) and a DefaultProxyProvider to wrap system dependencies. This isolates the bootstrapper logic from direct static calls to Environment, File, and WebClient, enabling controlled access to file locks (preventing unnecessary sharing violations) and allowing the environment proxy to be instantiated per-test rather than as a singleton, which supports parallel execution and testing on .NET Core 3.0+.
src/Paket.Bootstrapper/HelperProxies · high confidence
New installation process architecture with dedicated modules
The installation logic has been restructured into a set of dedicated modules (BindingRedirects, DependencyChangeDetection, GarbageCollection, InstallProcess, ProcessOptions, RestoreProcess, ScriptGeneration, UpdateProcess) to improve maintainability and separation of concerns. This change introduces specific behaviors for binding redirect management (including options to clean or create new config files), dependency change detection (identifying restrictions, settings, and version mismatches), and garbage collection (removing unused packages and old cache versions). It also refactors the restore and update processes to handle package extraction, script generation, and content file processing more robustly, while introducing new options like \SemVerUpdateMode\ and \OnlyReferenced\ to control update and install behavior.
src/Paket.Core/Installation · high confidence
New versioning module with credential providers and framework handling
The \src/Paket.Core/Versioning\ directory has been reorganized into a new module containing core versioning logic. This includes \AuthService.fs\ and \CredentialProviders.fs\, which implement support for NuGet credential providers and environment-variable-based source authentication. \FrameworkHandling.fs\ adds definitions and parsing for modern .NET target frameworks (including .NET 5/6/7/8/9/10 Windows variants and .NET Standard 2.1). \PlatformMatching.fs\ provides the logic for matching package folders to target frameworks, while \Requirements.fs\ and \SemVer.fs\ handle framework restriction parsing and SemVer 2.0 compliance. \ConfigFile.fs\ manages local credential storage with encryption, and \PackageSources.fs\ handles source parsing including environment variable expansion.
src/Paket.Core/Versioning · high confidence
Paket CLI introduces subcommand syntax and fixes binding redirects
The Paket executable now uses a subcommand-based interface (e.g., \paket add\, \paket restore\) replacing the previous flat argument style, while maintaining backward compatibility with legacy syntax through deprecation warnings. This change includes a new \App.config\ that enforces assembly binding redirects for Newtonsoft.Json (13.0.0.0), System.Collections.NonGeneric, System.ComponentModel.TypeConverter, System.Xml.XmlDocument, and a specific fix for System.Buffers (4.0.2.0) to resolve FileLoadExceptions on .NET Framework 4.5/4.6.1. Additionally, a \runtimeconfig.template.json\ is added to enable major-version roll-forward for .NET Core runtime compatibility.
src/Paket · high confidence
Reduced false-positive warnings for missing library references
The tool no longer warns about missing library references in scenarios where they are not directly referenced by the project, addressing previous false positives. Warnings are now only generated for direct package references, and specifically only when explicit references exist in the project file. This change ensures that users are not notified about missing dependencies that are not actually used or required by their direct project structure.
integrationtests/scenarios/i001442-dont-warn · high confidence
Refactored dependency resolution and caching infrastructure
The dependency resolution engine has been restructured to improve performance and reliability. The new architecture introduces a modular parser for \paket.dependencies\ files, supporting advanced version strategies (NuGet vs. Paket) and refined SemVer handling. Cache management has been overhauled with a new versioning scheme (v8.1) and optimized storage logic to prevent duplicate entries and handle long paths more robustly. Git operations now include safeguards against hanging on non-interactive build agents, and the resolver logic has been updated to better handle transitive dependencies, runtime resolution, and conflict detection.
src/Paket.Core/Dependencies · high confidence
Updated F\# Type Providers Starter Pack to version 5.94.0
The bundled F\# Type Providers Starter Pack has been updated to version 5.94.0. This update includes a fix for compilation issues and ensures compatibility with .NET Standard 1.6, which may affect how the type provider reads assembly metadata in environments targeting this specific framework version.
paket-files/fsprojects/FSharp.TypeProviders.StarterPack · high confidence
Updated Paket restore targets to respect IsPackable property
The Paket restore MSBuild targets (Paket.Restore.targets) have been updated to conditionally execute the \PaketDisableDirectPack\ and \PaketOverrideNuspec\ targets only when the project is packable (\IsPackable\ is empty or true) and references exist. This ensures that Paket's nuspec fixing and packing overrides do not interfere with non-packable projects or projects without package references, aligning the restore process with the project's packaging intent.
(repo-wide) · high confidence
Updated integration test scenario for source folder structure in symbol packages
The integration test scenario \i001538-symbols-src-folder-structure\ has been updated to correct the \src\ folder structure used when packing with symbols. The \before\ state now includes a C\# solution and project configuration that explicitly links source files from an external \Linked\ directory into the project structure, ensuring that the symbol package generation correctly accounts for these linked source files during the build process.
integrationtests/scenarios/i001538-symbols-src-folder-structure · medium confidence
Fixes
Added solution file for MyClassLibrary integration test scenario
A new Visual Studio solution file (MyClassLibrary.sln) has been added to the MyClassLibrary project directory within the integration test scenario i001219-props-files. This solution file defines the project structure and build configurations (Debug/Release) for the MyClassLibrary, ensuring the test environment is correctly set up to validate props and targets file imports.
integrationtests/scenarios/i001219-props-files/before/MyClassLibrary · high confidence
Fix --keep-major flag ignoring content:none in paket.dependencies
This change resolves an issue where the --keep-major flag failed to respect the content:none setting in paket.dependencies. Users relying on this flag to manage package versions will now see the correct behavior where content:none is properly honored during updates.
integrationtests/scenarios/i001701-keep-major · medium confidence
Fix WebSharper props import order in integration test scenario
The integration test scenario for WebSharper props (i001585) has been corrected to ensure that property definitions are placed after F\# targets in the generated project file. This change resolves issue \#1585 by adjusting the build order so that WebSharper's .props and .targets files are imported correctly, preventing potential build conflicts or missing definitions.
integrationtests/scenarios/i001585-websharper-props · high confidence
Fix handling of unknown dependencies in fix-nuspec
Resolves an issue where the fix-nuspec process would fail when encountering unknown dependencies. This change ensures that such dependencies are ignored, preventing build errors in scenarios involving reference files like paket.references.
integrationtests/scenarios/i002694 · medium confidence
Fix integration test for Content:once removal in .NET Framework projects
Updated the integration test scenario for \i001427-content-once-remove\ to correctly handle the removal of Fody-related content files (such as \FodyWeavers.xml\ and its XDT transforms) from .NET Framework class libraries. The changes adjust the expected project file output to reflect that the \Content:once\ directive properly excludes these files during the removal process, ensuring the generated \.csproj\ matches the baseline for .NET Framework targets (v4.5.2 and above).
integrationtests/scenarios/i001427-content-once-remove · high confidence
Fix unlisted package resolution with pinned dependencies
Resolves an issue where Paket failed to resolve dependencies when a package with a version range depended on a pinned dependency that had been unlisted. This fix ensures that unlisted packages are correctly handled during dependency resolution, preventing build failures in scenarios involving transitive unlisted dependencies.
integrationtests/scenarios/i001579-unlisted · medium confidence
Fix unstable MSBuild property ordering in generated project files
Resolved an issue where Paket-generated .csproj files had unstable ordering of properties and imports, which could cause build failures or inconsistent behavior. The fix ensures that property definitions are placed after C\# targets and that Paket-specific imports (props/targets) are consistently positioned, addressing GitHub issues \#1487 and \#1537.
integrationtests/scenarios/i001487-stable-props · high confidence
Fixes integration test scenario for applying changes with multiple dependency groups
Adds the necessary project scaffolding for the integration test scenario i004183, including the Paket restore targets, a sample F\# library, and a NuSpec defining dependencies for both .NET Standard 2.0 and 2.1. This ensures the test environment correctly simulates a project with multiple dependency groups to verify the fix for issue \#4183.
integrationtests/scenarios/i004183-apply-with-multiple-groups · high confidence
Restored broken app.config integration test fixture
The integration test scenario for issue \#1195 (Paket parsing errors in app.config files) has been restored with a valid 'before' state. The fixture now includes properly structured F\# project templates and app.config files with correct assembly binding redirects for dependencies such as Ploeh.Albedo, Ploeh.AutoFixture, Castle.Core, Newtonsoft.Json, and xunit.extensions, ensuring the test suite can accurately verify Paket's handling of these configuration files.
integrationtests/scenarios/i001195-broken-appconfig · high confidence
Support LOCKEDVERSION for packages outside the main group
The integration test scenario for issue \#1483 now includes a template that allows the use of the LOCKEDVERSION placeholder for dependencies that are not part of the main group. This change verifies that the system correctly handles version locking for packages in secondary groups, ensuring that the LOCKEDVERSION token is properly resolved and applied in those contexts.
integrationtests/scenarios/i001483-group-lock · medium confidence
Test coverage
Add baseline test scenario for localized .NET Standard packing; Add failing test for paket pack --template isolation; Add integration test for converting .NET Framework projects to SDK style; Add integration test for dotnet pack --include-symbols; Add integration test for invalid cache file handling; Add integration test for packing referenced packages; Add integration test scenario for .NET 9 Windows build failure; Add integration test scenario for .props file import locations; Add integration test scenario for missing AssemblyName; Add integration test scenarios for repository branch and commit metadata; Add missing metadata to integration tests; Add test scenario for missing nuspec error handling; Added .NET Core integration test scenario for Paket and NetStandard 2.0; Added Elasticsearch.Net reference to integration test scenario; Added F\# integration test scenario for cross-framework assembly references; Added F\# library test scenario for assembly attributes; Added Nuspec test fixtures and unit tests; Added WPF project scenario for integration testing; Added comprehensive unit tests for the dependency resolver; Added failing integration test for packing analyzer; Added failing integration test scenario for NuGet project conversion with analyzers; Added integration test fixtures for issue \#1848; Added integration test for .NET 2.0 library references in .NET 4.6.1 projects; Added integration test for binding redirects with cross-group package references; Added integration test for floating version package modification; Added integration test for global tools with project-to-project references; Added integration test for project-type pack templates; Added integration test for readonly object scenario; Added integration test scenario for .NET Framework 4.6.1; Added integration test scenario for .NET Standard library with Fody/Costura; Added integration test scenario for .NET Standard target framework support; Added integration test scenario for .NET class using AutoMapper; Added integration test scenario for .props file import locations; Added integration test scenario for Paket group conflict resolution; Added integration test scenario for Paket pack errors; Added integration test scenario for Paket template packaging; Added integration test scenario for Silverlight legacy project handling; Added integration test scenario for app.config binding redirects with custom namespaces; Added integration test scenario for automatic framework detection; Added integration test scenario for custom MSBuild output paths; Added integration test scenario for denormalized conversion; Added integration test scenario for explicit .NET 4.5 reference handling; Added integration test scenario for forced assembly redirects; Added integration test scenario for interproject reference version constraints; Added integration test scenario for issue \#1375; Added integration test scenario for minimum dependency versions from lock file; Added integration test scenario for pack versioning; Added integration test scenario for packed projects; Added integration test scenario for repository URL handling; Added integration test scenario for restore without locks; Added integration test scenario for single-template evaluation; Added integration test scenario for specific package dependency resolution; Added integration test scenarios for multitarget packing with P2P dependencies; Added integration test scenarios for package dependency resolution and blocking behavior; Added integration test scenarios for package reference attributes; Added integration test suite for group conditions; Added integration tests for Paket CLI and resolver behavior; Added integration tests for bootstrapper binding redirect scenarios; Added integration tests for transitive project reference packing; Added localized library test scenario; Added placeholder file for installer demo scenario; Added placeholder for install script integration test; Added regression test for issue \#1429 (pack-deps); Added test fixtures for globbing scenario i001472; Added test for pack command with ReflectedDefinitions; Added test playlist for Paket; Added test scenario for NuSpec dependency fixup; Added test scenario for file globbing on files without extensions; Added test scenario for lock file changes invalidating project properties; Added test scenario for packing global tools; Added test scenarios for packaging files into relative and root package directories; Added tests for NuGet OData response parsing; Added tests for NuGet config credential and feed parsing; Added tests for NuGet v3 JSON-LD autocomplete parsing; Added tests for Paket script generation logic; Added tests for environment-based web proxy configuration; Added tests for local NuGet source package recognition; Added tests for packaging metadata, template parsing, and remote push URL logic; Added tests for performance map pre-calculation and event boundary coalescing; Added tests for project dependency resolution logic; Added tests for reading and writing packages.config files; Added tests for the dependency simplifier logic; Added unit tests for DependenciesFile operations; Added unit tests for FSharp.Core redirects warning logic; Added unit tests for InstallModel XML generation; Added unit tests for Paket Bootstrapper components; Added unit tests for Paket bootstrapper download strategies; Added unit tests for Paket lock file generation and parsing; Added unit tests for ReferencesFile parsing and manipulation; Added unit tests for framework penalty and condition logic; Added unit tests for paket.local file parsing; Added unit tests for the InstallModel subsystem; Added unit tests for versioning and framework compatibility logic; Expanded test coverage for Paket project file parsing and handling; Initial test suite for Paket dependency manager; Integration test for Content:once behavior with Fody/Costura; Integration test for packing with include-pdbs true; Integration test scenario for .NET Standard content handling; Integration test scenario for .NET Standard content-once stability; Integration test scenario for Content:once with Fody/Costura; Integration test scenario for ExpressiveAnnotations package resolution; Integration test scenario for GAC binding redirects; Integration test scenario for Paket build-target import in dependency groups; Integration test scenario for copying content files to output directory; Integration test scenario for excluding specific NuGet references; Integration test scenario for local source override now includes a local NuGet source configuration; Integration test scenario for localized assembly packing; Integration test scenario for lowercase alias handling; Integration test scenario for package aliasing; New integration test for Rx-WinRT reference warnings; Reorganized FSI dependency manager integration tests for deterministic output; Support for HTTP-sourced DLLs in project references; Test scenario setup for auto-detected framework restrictions; Updated integration test fixture for npm type folder packaging; Updated integration test scenario for non-matching NuGet restrictions; Updated integration test scenario solution files.
Dependencies
Update build system to target .NET 10
The build scripts and project configurations have been updated to target .NET 10. This change ensures the build tooling is compatible with the latest .NET SDK version, affecting how the project is compiled and tested during development.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 59 → 51 (-7.8)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 88 → 86 (-2.7)
- Architecture 98 → 98 (+0.0)
- Maturity 57 → 55 (-2.5)
- Readiness 73 → 58 (-14.6)
- Security 50 → 39 (-11.2)
- Performance 70 → 70 (+0.0)
Resolved (4)
- Documentation: no licence statement (docs/content/index.md)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- redundant comment (tests/Paket.Bootstrapper.Tests/ArgumentParserTests.cs)
New (83)
- Duplicated block (10 lines × 2) (src/Paket.Core/Common/Async.fs)
- Duplicated block (10 lines × 2) (src/Paket.Core/Dependencies/NuGetCache.fs)
- Duplicated block (10 lines × 2) (src/Paket.Core/Dependencies/NuGetV2.fs)
- Duplicated block (10 lines × 2) (src/Paket.Core/PaketConfigFiles/ProjectFile.fs)
- Duplicated block (10 lines × 2) (src/Paket.Core/PaketConfigFiles/TemplateFile.fs)
- Duplicated block (11 lines × 3) (src/Paket.Core/PaketConfigFiles/DependenciesFile.fs)
- Duplicated block (12 lines × 2) (src/Paket.Core/PaketConfigFiles/DependenciesFile.fs)
- Duplicated block (15 lines × 2) (src/Paket.Core/PaketConfigFiles/LockFile.fs)
- Duplicated block (15 lines × 3) (src/Paket.Core/Versioning/FrameworkHandling.fs)
- Duplicated block (19 lines × 2) (src/Paket.Core/PaketConfigFiles/DependenciesFile.fs)
- Duplicated block (23–24 lines × 2) (src/Paket.Core/Versioning/Requirements.fs)
- Duplicated block (24 lines × 2) (src/Paket.Core/Versioning/FrameworkHandling.fs)
- Duplicated block (5 lines × 2) (src/Paket.Core/Common/NetUtils.fs)
- Duplicated block (5 lines × 2) (src/Paket.Core/Dependencies/DependenciesFileParser.fs)
- Duplicated block (5 lines × 2) (src/Paket.Core/PackageAnalysis/Queries.fs)
- Duplicated block (5 lines × 2) (src/Paket.Core/PackageManagement/AddProcess.fs)
- Duplicated block (5 lines × 2) (src/Paket.Core/PaketConfigFiles/TemplateFile.fs)
- Duplicated block (5 lines × 2) (src/Paket/Commands.fs)
- Duplicated block (5 lines × 2) (src/Paket/Commands.fs)
- Duplicated block (7 lines × 2) (src/Paket.Core/PaketConfigFiles/ProjectFile.fs)
- …and 63 more
Changes since last survey
- 30 commits — 21 feature/other, 9 fixes
By area
- (root) — 12 commits
- (repo) — 9 commits
- .github/workflows — 6 commits
- integrationtests/Paket.IntegrationTests — 2 commits
- integrationtests/scenarios — 1 commit
Notable commits
- fix: Fix NuGet package push on Windows
- fix: Fix build script namespace imports
- fix: Fix release notes parser input
- fix: Merge pull request #4417 from fsprojects/repo-assist/fix-issue-3603-package-release-notes-90f305c8d24e4d55
- fix: Merge pull request #4425 from fsprojects/repo-assist/fix-issue-4239-netcoreapp-monikers-73077d1ab172ba1f
- fix: Merge pull request #4432 from fsprojects/linux-integration-tests-fix
- fix: Merge pull request #4438 from fsprojects/fix-release-package-push
- fix: Merge pull request #4440 from fsprojects/fix/windows-net8-runtime
- fix: fix(pack): quote the condition list passed to fix-nuspecs
- change: Add trusted publishing release workflow
- change: Install .NET 8 runtime for Windows integration tests
- change: Merge branch 'master' into release-note
- change: Merge pull request #4430 from fsprojects/release-note
- change: Merge pull request #4436 from fsprojects/add-trusted-release-workflow
- change: Merge pull request #4437 from fsprojects/release-11.0.0-alpha001
- change: Prepare 11.0.0-alpha001 release
- change: build: report the netcore integration tests at normal verbosity
- change: bump for release
- change: ci(repo-assist): require a release-notes entry on code PRs
- change: ci: run the integration tests on Linux under .NET 10
- …and 10 more
Architecture
- Containers 1 added · 0 removed · contexts 0 added · 0 removed · edges 0 added · 0 removed
Added containers (1)
- cli:PaketTest
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fsprojects/Paket was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c8ff9af337b09928478edfc66e91f32af3250bd9 — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.