FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Refactors VPK MSBuild tasks and introduces Flow download by Keboo · Pull Request #755 · velopack/velopack · GitHub

Refactors VPK MSBuild tasks and introduces Flow download - #755

Draft
Keboo wants to merge 21 commits into
developfrom
buildProjectUpdate
Draft

Refactors VPK MSBuild tasks and introduces Flow download#755
Keboo wants to merge 21 commits into
developfrom
buildProjectUpdate

Conversation

Keboo commented Dec 8, 2025

Copy link
Copy Markdown
Member

Overhauls the Velopack.Build project to streamline VPK tool execution and improve integration:

  • Unifies MSBuild Tasks: Introduces a new VpkTask base class, centralizing common logic for PackTask and PublishTask. This simplifies the task implementations and standardizes how vpk commands are built and executed.
  • Streamlines VPK Tool Resolution: Refactors how the vpk executable is located, utilizing assembly metadata to directly find the tool within the build output rather than relying on dotnet tool installation and management. This removes complexity and external dependencies.
  • Removes Obsolete Build Configuration: Eliminates the SelfContained.targets file and related properties, simplifying the project's build logic.
  • Adds Velopack Flow Download Integration: Introduces a FlowRepository and FlowDownloadCommand to enable downloading releases directly from the Velopack Flow service.
  • Modernizes Build Project: Cleans up ProcessExtensions by moving argument parsing logic to a shared partial class, removes unused usings, and updates test project configurations.

codecov Bot commented Dec 8, 2025
edited
Loading

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.79%. Comparing base (612bf47) to head (d603178).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #755      +/-   ##
===========================================
- Coverage    52.48%   51.79%   -0.69%     
===========================================
  Files          125       79      -46     
  Lines        13264    10634    -2630     
  Branches       585       15     -570     
===========================================
- Hits          6961     5508    -1453     
+ Misses        6157     5119    -1038     
+ Partials       146        7     -139     
Flag Coverage Δ
nodejs 1.89% <ø> (ø)
rust 51.67% <ø> (ø)
vpk ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Keboo force-pushed the buildProjectUpdate branch from 83122b2 to 4f89b68 Compare December 9, 2025 08:24
Keboo marked this pull request as draft December 9, 2025 16:05
Keboo force-pushed the buildProjectUpdate branch from a5238e9 to 2a3e04e Compare March 3, 2026 06:07
Keboo force-pushed the buildProjectUpdate branch from b42b3e0 to e18145c Compare March 20, 2026 06:21
Keboo added 17 commits June 21, 2026 10:38
Removes `DotNetToolRunner` and `VpkToolResolver`, directly packages the `vpk` executable in `Velopack.Build.csproj`, updates `PackTask` and `PublishTask` to invoke the embedded `vpk`, and extracts shared process argument handling to `ProcessExtensions.Shared.cs`.
Implements argument building for PackTask and PublishTask using their properties to invoke `vpk` commands, and refines VpkToolRunner's vpk.dll path discovery.
Adds VpkTask base class for shared logic; refactors PackTask and PublishTask to inherit; updates VPK tool path resolution to include 'any' subdirectory; adds `PackRustAssets` property; refines `VelopackEntryExecutableName` logic; enhances HelperFile search path handling; includes `legacyConsole` and `yes` arguments by default for pack and publish commands.
Embeds vpk tool pack location in assembly metadata, uses metadata for vpk.dll path discovery, enables implicit usings, removes unused usings and an empty property group, and refines MSBuild conditional syntax.
Deletes src/SelfContained.targets, its import from Directory.Build.props, and solution reference.
Removes System.Collections.Generic from PackTask.cs and System, System.Collections.Generic, System.Threading, System.Threading.Tasks from PublishTask.cs.
Removes default values for `DeltaMode` and `SignParallel` in `PackTask`, adjusts `SignParallel` argument generation, adds comprehensive `PackTask` argument building unit tests, updates `Velopack.Build.Tests` to `net9.0` with revised dependencies, and removes the test project README.
Adds unit tests for PublishTask methods, verifying the correct generation of Velopack CLI arguments and environment variables based on task properties.
Introduces `FlowRepository` and `FlowDownloadCommand` for Velopack Flow, along with corresponding option mapping and tests.
Adds VelopackBaseUrl and Timeout properties to PackTask, changes DeltaMode to an enum, and implements a PreExecuteAsync step in PackTask to download releases via vpk download flow when delta mode is active.
Introduces a `--skip-duplicate` flag for the `flow publish` command to prevent re-uploading an existing release by checking the Velopack Flow service.
Adds specific error handling for `http_listener_error` during interactive authentication, converts `AcquireInteractiveAsync` to an instance method, and renames the `baseUrl` command option to `base-url`.
Converts DeltaMode property in PackTask from enum to string, updating comparison and argument passing logic for string values.
Adds `PublishVpkForPackage` target to build `Velopack.Vpk`, updates `IncludeVpkInPackage` to use `TfmSpecificPackageFile` for Vpk output, and refines `IncludeTfmDependenciesInPackage` exclusions and inclusions.
Removes the dedicated item for including runtime directories in the package.
Keboo force-pushed the buildProjectUpdate branch from 0a566d9 to d603178 Compare June 21, 2026 18:00
Keboo added 4 commits June 21, 2026 11:00
Integrates Riok.Mapperly for mapping commands to tasks and updates the project to C# 14. This change also refines PackTask properties, improves nullability handling with a new shim for .NET Framework, and optimizes build targets to prevent automatic package generation when building inside Visual Studio.
Specifies the x64 .NET runtime for MSBuild tasks to ensure they execute in the correct environment and simplifies the logic for including dependencies in the build package. This also removes or disables unused properties and imports within the task definitions.
Switches from running a bundled vpk.dll to using 'dotnet tool exec vpk'. This removes the need to package the vpk tool binaries directly and allows users to specify a vpk version and NuGet source via MSBuild properties.
Drops net472 support and implements a fallback for the VpkVersion property using assembly metadata. This allows the MSBuild task to automatically use the matching version of the vpk tool if one isn't explicitly provided.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant


Back | FazBrowse Home | New Git URL