Skip to content

Releases: petabridge/Incrementalist

Incrementalist v1.1.0

03 Sep 16:23
460b7bb
Compare
Choose a tag to compare

1.1.0 September 3 2025

Major New Features & Improvements:

  • Custom Process Execution with run-process Verb:
    You can now use the new run-process verb to run any process (not just dotnet) against affected projects. This enables advanced scenarios, such as running custom scripts or tools before or after your build/test steps.

    Example:

    incrementalist run-process --process /bin/bash -- echo 'Hello from Incrementalist!'
  • Significant Performance Boost with Static Graph Engine:
    Incrementalist now uses the MSBuild Static Graph engine by default for solution and project parsing. This change should make Incrementalist significantly faster, especially on large solutions. The previous engine is still available via --engine Workspace for compatibility and comparison.

  • JSON Schema for Configuration Files:
    Added JSON schema support for incrementalist.json configuration files, enabling IDE IntelliSense and validation. This makes it easier to write and maintain configuration files with autocomplete and error checking.

Bug Fixes:

  • Fixed running tests on macOS by resolving symlink issues in temporary directories.
  • Improved project dependency detection logic for solutions with multiple target frameworks.
  • (Temporary) Reverted a previous dependency detection fix due to downstream issues.

Documentation:

  • Added a new page with real-world usage examples.

Incrementalist v1.1.0-beta1

12 May 21:57
5435470
Compare
Choose a tag to compare
Pre-release

1.1.0-beta1 May 12 2025

Major New Features & Improvements:

  • Custom Process Execution with run-process Verb:
    You can now use the new run-process verb to run any process (not just dotnet) against affected projects. This enables advanced scenarios, such as running custom scripts or tools before or after your build/test steps.

    Example:

    incrementalist run-process --process /bin/bash -- echo 'Hello from Incrementalist!'
  • Significant Performance Boost with Static Graph Engine:
    Incrementalist now uses the MSBuild Static Graph engine by default for solution and project parsing. This change should make Incrementalist significantly faster, especially on large solutions. The previous engine is still available via --engine Workspace for compatibility and comparison.

  • Dependency Updates:

    • Updated xunit.runner.visualstudio to 3.1.0 for improved .NET 8 compatibility and bug fixes.

Bug Fixes:

  • Fixed running tests on macOS by resolving symlink issues in temporary directories.
  • Improved project dependency detection logic for solutions with multiple target frameworks.
  • (Temporary) Reverted a previous dependency detection fix due to downstream issues.

Documentation:

  • Added a new page with real-world usage examples.

Changes:

  • 5435470 1.1.0 beta1 release notes (#427)
  • c8af157 Transform name-application-to-start parameter to run-process verb (#426)
  • 7f5bb45 Added name-application-to-start configuration (#419)
  • 4eb71b7 Bump xunit.runner.visualstudio from 3.0.2 to 3.1.0 (#423)
  • 5146500 Use Static Graph to improve performance of solutions and projects parsing (#424)
  • e4e8d56 Revert "Fix missing project dependency detection (#421)" (#425)
  • 2fe6cc5 Fix missing project dependency detection (#421)
  • 247e385 Fix running tests on macOS (#422)
  • 97b6c47 Added page on real-world examples (#414)
  • a45fd8d Update README.md
See More

This list of changes was auto generated.

Incrementalist v1.0.0

18 Apr 17:47
5011d52
Compare
Choose a tag to compare

1.0.0 April 17 2025

Incrementalist v1.0.0 is here! This release marks a significant step forward, introducing powerful new features focused on usability, performance, and integration with modern .NET development workflows.

Major New Features:

  • Built-in dotnet Command Execution: Directly execute dotnet CLI commands on projects affected by changes since a specified base revision (e.g., main or dev). Use the -r or --run flag followed by your standard dotnet command.

    # Build only affected projects compared to the 'dev' branch
    incrementalist -b dev -r -- build -c Release --nologo
    
    # Run tests for affected projects in parallel
    incrementalist -b dev -r --parallel -- test -c Release --no-build --nologo
  • File-based Configuration (.incrementalist.yml): Configure Incrementalist using a YAML file instead of command-line arguments. Store common settings, project filters, and default branches.

    # .incrementalist.yml
    base-branch: dev
    skip-glob: "**/obj/**,**/bin/**"
    target-glob: "src/**/*.csproj"
    log-level: Information
    run: build -c Release
    parallel: true

    Load the configuration: incrementalist -c .incrementalist.yml

  • File Globbing for Commands (--glob, --skip-glob, --target-glob): Precisely target or exclude projects for command execution using glob patterns. This allows for fine-grained control over which affected projects specific commands are run against.

    # Run tests only on affected *.Tests.csproj projects
    incrementalist -b dev -r --target-glob "**/*.Tests.csproj" -- test
    
    # Build all affected projects EXCEPT those in the 'samples' directory
    incrementalist -b dev -r --skip-glob "**/samples/**/*.csproj" -- build
  • Command-Line Verbs: Reorganized command-line arguments using verbs for better structure and clarity (Breaking Change introduced in 1.0.0-rc4). See documentation for updated commands.

Improvements:

  • Improved detection of changes in shared MSBuild files like Directory.Build.props and imported .props/.targets files.
  • Enhanced project dependency analysis for more accurate calculation of affected projects.
  • Improved logging system with configurable levels and better context.
  • More robust quoting for arguments passed to dotnet commands.
  • Added support for detecting unstaged file changes in Git.
  • Added IProgress<ProjectLoadProgress> support for MSBuild loading.
  • Updated documentation with examples for configuration files and globbing.
  • Upgraded dependencies (Roslyn, NuGet, Microsoft.Extensions.Logging, etc.) to latest versions.

Bug Fixes:

  • Resolved issues with configuration-based SkipGlob and TargetGlob being overwritten by unspecified CLI arguments (#402).
  • Fixed globbing pattern application when a full solution build is required (#395).
  • Corrected dependency graph calculation errors (#389).
  • Fixed globbing with absolute paths (#386).
  • Resolved issues with command-line option parsing, including duplicate definitions and --create-config behavior (#379, #382).
  • Fixed various issues related to command execution, parallelism, and error handling (--continue-on-error, --fail-on-no-projects).
  • Fixed NuGet packaging metadata (#337).
  • Corrected logging of null values during default config loading (#401).

Changes:

See More
Read more

Incrementalist v1.0.0-rc5

17 Apr 02:13
4089cd4
Compare
Choose a tag to compare
Pre-release

1.0.0-rc5 April 16 2025

Bug fixes and improvements:

1.0.0-rc4 April 16 2025

Major Changes:

1.0.0-rc3 April 16 2025

Bug fixes and improvements:

1.0.0-rc2 Apr 13 2025

Bug fixes and improvements:

  • Fixed issues with command-line parsing and configuration
  • Resolved globbing functionality for dotnet commands
  • Enhanced documentation with more examples

All changes:

1.0.0-rc1 Apr 13 2025

Added major new features to enhance usability and extend capabilities:

  • File-based Configuration: Added support for .incrementalist.yml configuration files. Store common settings and project filters in a single file rather than passing command-line arguments. Example: incrementalist -c .incrementalist.yml loads all settings from the file.

  • File Globbing Support: Added file globbing pattern support for command execution. Target files using glob patterns for selective builds or testing. Example: incrementalist -b dev -r --glob "**/*.Tests.csproj" -- test runs tests only on affected test projects.

  • .slnx Support: Added support for modern Visual Studio solution files (.slnx). Incrementalist now properly processes these files alongside standard .sln files, enabling better integration with Visual Studio's "Open Folder" feature.

All changes:

1.0.0-beta4 Feb 25 2025

1.0.0-beta3 Feb 24 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

See More
  • dfdd2c7 Don't exclude Solution-wide files from git diff / Solution analysis (#392) [ #388 ]
  • 092b1eb Refactor: AbsolutePath, RelativePath, TestSolutionBuilder, and dependency graph integration specs (#390)
  • 36ea40f added v1.0.0-rc2 (#385)
  • 66dee61 Fix globbing for dotnet commands (#384) [ #383 ]
  • 9d557c6 Resolve --create-config issues (#382) [ #380, #381 ]
  • ac3cfcb resolve Option 'c, config' is defined multiple times (#379) [ #378 ]
  • 9292ad3 Add globbing examples to config docs (#376)
  • ab16dd7 README: expand examples of configuration file support (#375)
  • 470e78c added v1.0.0-rc1 release notes (#373)
  • a117452 Handle no-op cases for our globbing tests (#374)
  • 16ab04b Added support for file globbing commands (#371)
  • db3dce1 enable Nullability and TreatWarningsAsErrors (#372)
  • cd31d68 added .slnx support (#370) [ #365 ]
  • 02469f2 Solution cleanup (#369)
  • bdab941 disable caching (#367) [ #350 ]
  • fea20dd [WIP] file-based configuration format (#357)
  • d07450f Bump Microsoft.Build.Locator from 1.7.8 to 1.9.1 (#362)
  • c9d060b Bump Microsoft.Extensions.Logging.Console from 9.0.3 to 9.0.4 (#364)
  • 8a11586 Bump Microsoft.Extensions.Logging.Console from 9.0.2 to 9.0.3 (#360)
  • 66acad7 Bump Microsoft.Extensions.Logging from 9.0.2 to 9.0.3 (#361)
  • 69c2a58 Bump NuGet.ProjectModel from 6.13.1 to 6.13.2 (#359)
  • b3f6572 Update RELEASE_NOTES.md
  • af755ea Added support for IProgress<ProjectLoadProgress> to MSBuild (#353)
  • 16a2294 Bump Microsoft.CodeAnalysis.Workspaces.MSBuild from 4.12.0 to 4.13.0 (#352)
  • 81a93ef Bump Microsoft.CodeAnalysis.CSharp.Workspaces from 4.12.0 to 4.13.0 (#351)
  • 83f5bfc Fix cli parsing (#349)
  • 04ac7be Update RELEASE_NOTES.md
  • 35d0bba Add more robust quoting for dotnet commands (#347)
  • 7b65872 Added some debug logging in the event that a command fails (#346)
  • b61c7f4 Added...
Read more

Incrementalist v1.0.0-rc4

17 Apr 01:25
a729cfc
Compare
Choose a tag to compare
Pre-release

1.0.0-rc4 April 16 2025

Major Changes:

1.0.0-rc3 April 16 2025

Bug fixes and improvements:

1.0.0-rc2 Apr 13 2025

Bug fixes and improvements:

  • Fixed issues with command-line parsing and configuration
  • Resolved globbing functionality for dotnet commands
  • Enhanced documentation with more examples

All changes:

1.0.0-rc1 Apr 13 2025

Added major new features to enhance usability and extend capabilities:

  • File-based Configuration: Added support for .incrementalist.yml configuration files. Store common settings and project filters in a single file rather than passing command-line arguments. Example: incrementalist -c .incrementalist.yml loads all settings from the file.

  • File Globbing Support: Added file globbing pattern support for command execution. Target files using glob patterns for selective builds or testing. Example: incrementalist -b dev -r --glob "**/*.Tests.csproj" -- test runs tests only on affected test projects.

  • .slnx Support: Added support for modern Visual Studio solution files (.slnx). Incrementalist now properly processes these files alongside standard .sln files, enabling better integration with Visual Studio's "Open Folder" feature.

All changes:

1.0.0-beta4 Feb 25 2025

1.0.0-beta3 Feb 24 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

See More
Read more

Incrementalist v1.0.0-rc3

16 Apr 16:56
73b0de8
Compare
Choose a tag to compare
Pre-release

1.0.0-rc3 April 16 2025

Bug fixes and improvements:

1.0.0-rc2 Apr 13 2025

Bug fixes and improvements:

  • Fixed issues with command-line parsing and configuration
  • Resolved globbing functionality for dotnet commands
  • Enhanced documentation with more examples

All changes:

1.0.0-rc1 Apr 13 2025

Added major new features to enhance usability and extend capabilities:

  • File-based Configuration: Added support for .incrementalist.yml configuration files. Store common settings and project filters in a single file rather than passing command-line arguments. Example: incrementalist -c .incrementalist.yml loads all settings from the file.

  • File Globbing Support: Added file globbing pattern support for command execution. Target files using glob patterns for selective builds or testing. Example: incrementalist -b dev -r --glob "**/*.Tests.csproj" -- test runs tests only on affected test projects.

  • .slnx Support: Added support for modern Visual Studio solution files (.slnx). Incrementalist now properly processes these files alongside standard .sln files, enabling better integration with Visual Studio's "Open Folder" feature.

All changes:

1.0.0-beta4 Feb 25 2025

1.0.0-beta3 Feb 24 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

See More
Read more

Incrementalist v1.0.0-rc2

14 Apr 03:14
36ea40f
Compare
Choose a tag to compare
Pre-release

1.0.0-rc2 Apr 13 2025

Bug fixes and improvements:

  • Fixed issues with command-line parsing and configuration
  • Resolved globbing functionality for dotnet commands
  • Enhanced documentation with more examples

All changes:

1.0.0-rc1 Apr 13 2025

Added major new features to enhance usability and extend capabilities:

  • File-based Configuration: Added support for .incrementalist.yml configuration files. Store common settings and project filters in a single file rather than passing command-line arguments. Example: incrementalist -c .incrementalist.yml loads all settings from the file.

  • File Globbing Support: Added file globbing pattern support for command execution. Target files using glob patterns for selective builds or testing. Example: incrementalist -b dev -r --glob "**/*.Tests.csproj" -- test runs tests only on affected test projects.

  • .slnx Support: Added support for modern Visual Studio solution files (.slnx). Incrementalist now properly processes these files alongside standard .sln files, enabling better integration with Visual Studio's "Open Folder" feature.

All changes:

1.0.0-beta4 Feb 25 2025

1.0.0-beta3 Feb 24 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

See More
Read more

Incrementalist v1.0.0-rc1

13 Apr 13:18
ab16dd7
Compare
Choose a tag to compare
Pre-release

1.0.0-rc1 Apr 13 2025

Added major new features to enhance usability and extend capabilities:

  • File-based Configuration: Added support for .incrementalist.yml configuration files. Store common settings and project filters in a single file rather than passing command-line arguments. Example: incrementalist -c .incrementalist.yml loads all settings from the file.

  • File Globbing Support: Added file globbing pattern support for command execution. Target files using glob patterns for selective builds or testing. Example: incrementalist -b dev -r --glob "**/*.Tests.csproj" -- test runs tests only on affected test projects.

  • .slnx Support: Added support for modern Visual Studio solution files (.slnx). Incrementalist now properly processes these files alongside standard .sln files, enabling better integration with Visual Studio's "Open Folder" feature.

All changes:

Changes:

See More

This list of changes was auto generated.

Incrementalist v1.0.0-beta4

25 Feb 14:06
b3f6572
Compare
Choose a tag to compare
Pre-release

1.0.0-beta4 Feb 25 2025

1.0.0-beta3 Feb 24 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

  • b3f6572 Update RELEASE_NOTES.md
  • af755ea Added support for IProgress<ProjectLoadProgress> to MSBuild (#353)
  • 16a2294 Bump Microsoft.CodeAnalysis.Workspaces.MSBuild from 4.12.0 to 4.13.0 (#352)
  • 81a93ef Bump Microsoft.CodeAnalysis.CSharp.Workspaces from 4.12.0 to 4.13.0 (#351)
  • 83f5bfc Fix cli parsing (#349)
  • 04ac7be Update RELEASE_NOTES.md
  • 35d0bba Add more robust quoting for dotnet commands (#347)
  • 7b65872 Added some debug logging in the event that a command fails (#346)
  • b61c7f4 Added some helpful guidance for running as a local tool (#345)
  • 7db2db6 added v1.0.0-beta2 release notes (#340)
See More

This list of changes was auto generated.

Incrementalist v1.0.0-beta3

25 Feb 03:32
04ac7be
Compare
Choose a tag to compare
Pre-release

1.0.0-beta3 Feb 21 2025

1.0.0-beta2 Feb 21 2025

1.0.0-beta1 Feb 20 2025

Major new feature: Built-in dotnet command execution support! You can now run commands directly on affected projects:

# Build only affected projects
incrementalist -b dev -r -- build -c Release --nologo

# Run tests for affected projects
incrementalist -b dev -r -- test -c Release --no-build --nologo

# Run in parallel for faster execution
incrementalist -b dev -r --parallel -- build -c Release --nologo
  • Added command execution support with new options:
    • -r, --run - Run dotnet CLI commands against affected projects;
    • --parallel - Execute commands in parallel for faster builds;
    • --continue-on-error - Continue executing if some commands fail;
    • --fail-on-no-projects - Return error if no projects are affected;
  • Improved MSBuild file detection:
    • Now properly detects changes in Directory.Build.props;
    • Better handling of shared MSBuild files and project dependencies;
  • Enhanced project dependency analysis for more accurate incremental builds;
  • Improved error handling and logging throughout; and
  • Upgraded all dependencies to their latest stable versions.

Changes:

See More

This list of changes was auto generated.