Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 25, 2025

Updated altcover from 8.2.825 to 8.9.3.

Release notes

Sourced from altcover's releases.

8.9.3

8.9.3

  • Add -p/--package and equivalents to specify package roots for Cobertura output for all coverage collection methods, plus the PowerShell ConvertTo-Cobertura cmdlet
  • [ADVISORY] The Fake.build related assemblies (in the altcover.api and altcover.fake packages) support Fake 6.1.0
  • [PERFORMANCE] revise the OpenCover to LCov conversion to speed the mapping of methods from source files.

8.8.165

8.8.165 (Habu series release 31)

  • [ADVISORY] the Fake.build related assemblies (in the altcover.api and altcover.fake packages), and the Avalonia 0.10-based visualizer, rely on components with known vulnerabilities. The Fake.build project appears nigh-moribund so has not released an update, whereas Avalonia 11 completely rewrites all the earlier APIs and has not documented anything to assist in the rewrite of the application.
  • [BUGFIX] Issue #​197 - correctly split file paths in the Cobertura output
  • [NET9 preparation] Recode the recorder into C# as compiler/build target changes in F#​9 make maintaining net2.0 compatibility in F# too much bother.

8.8.74

8.8.74

  • [BUGFIX] Issue #​222 - distinguish methods differing only in number of generic parameters (JSON and cobertura in particular, but with small changes for all all output formats)
  • [BUGFIX] Issue #​223 - handle degenerate source paths for Cobertura output

8.8.53

8.8.53

  • [BUGFIX] Fix summary data for --outputFile option
  • [BUGFIX] Fix interaction of --zipFile prepare option and --outputFile collect option
  • [BUGFIX] Issue #​220 - improve dependency resolution to the GAC

Full Changelog: SteveGilham/altcover@release/v8.8.21...release/v8.8.53

8.8.21

8.8.21

  • [BREAKING; BUGFIX] Issue #​206 : Update to net6+ for dotnet test integration and respect the $(IsTestProject) setting from the Microsoft.NET.Test.Sdk package.
  • Simplify the use of the AltCover MSBuild tasks via the associated package-level .targets file by not even including the VSTest integration unless both '$(AltCover)' == 'true' AND '$(IsTestProject)' == 'true'.
  • Mitigate instances of System.IO.IOException: The process cannot access the file '[coverage report]' because it is being used by another process.
  • Explicitly add GAC locations to the paths inspected for dependency resolution

8.6.48

8.6.48

  • [BUGFIX] Correctly package the visualizer for net5.0, as well as building it against the later platform

Commits viewable in compare view.

Updated LanguageExt.Core from 5.0.0-beta-63 to 5.0.0-beta-65.

Release notes

Sourced from LanguageExt.Core's releases.

5.0.0-beta-64

Quite a big release here. It's not had a huge amount of testing, but thought it would be good to get it out before I disappear for Christmas, in case anyone wants to have a play with the new features.

Monad.Recur

As suggested here and at various times over the years, we could support the same tailRecM pattern as seen in Cats and Scalaz libraries from the Scala ecosystem. I have been a little sceptical of the approach, mostly because it forces the user to manually trampoline. I wasn't keen on going all in, but then I woke up Saturday morning thinking about it (that's how sad my life is) and felt inspired to implement it.

150+ file changes later and we now have support. tailRecM in Scala becomes Monad.recur in language-ext. Every monad is expected to implement the Monad.Recur trait method, but you could also use the placeholder function (Monad.unsafeRecur) that still uses regular recursion. This is because:

  • Sometimes it's not important to implement it right now
  • It's not always trivial to implement and you may struggle to do so for certain monadic-types
  • Some monads may already have their own trampoline built-in (like IO<A>), so using regular recursion is fine

There's also two other helper functions: Monad.iterableRecur and Monad.enumerableRecur which are default Monad.Recur implementations for collections.

You're unlikely to need recursion for collections anyway, because it'd be like the most insanely nested set of for-loops ever. But, technically you could have lots of singleton lists that blow a stack in a recursion scenario, so these helper functions save you the hassle of working out how to unfold a recursive bind on collections.

Here's the implementation of Monad.Recur for Option:

static K<Option, B> Monad<Option>.Recur<A, B>(A value, Func<A, K<Option, Next<A, B>>> f)
{
    while (true)
    {
        var mr = +f(value);
        if (mr.IsNone) return Option<B>.None;
        var mnext = (Next<A, B>)mr;
        if(mnext.IsDone) return Some(mnext.Done);
        value = mnext.Loop;
    }
}

If you're wondering what the prefix + operator is, it's the downcast-operator from K<Option, A> to Option<A>. Like calling f(value).As(), just more elegant.

What's really nice about this implementation is how 'light' it is. It's a simple while-loop with a test to see if we're done: if(mnext.IsDone) or a continuation-value (mnext.Loop) to be passed to the 'bind' function f. As well as the standard Option monad-bind logic of earlying-out when in a None state.

There were two reasons I decided to ignore my earlier concerns about this approach and this is one of them: Option is a struct and is designed to be a lightweight data-type. The only other way to support recursion would have been to make it into an interpreter style monad (like the IO monad) which would bring more overhead where we don't want it. So, this manual opt-in to recursion when you need it and the subsequent tight while-loop makes recursion with simple data-monads very effetive.

It's certainly not very elegant in C#, I would mostly advise using maps, folds, and traversals (where possible). But there's always that one time where recursion would be better, so now you can guarantee its safety.

I still want to build support for tail-recursion into the 'control' monads (those that are lazy computations and therefore can be backed by an interpreted DSL). I still believe that's more effective and elegant for the end-user.

Iterable now supports IAsyncEnumerable

So Iterable which started life as a wrapper for IEnumerable now supports both synchronous and asynchronous lazy streams. This is continuing the goal of killing Task and async/await. Only when you use an Iterable do you care how you consume it. If you want asynchronicity then you can either call AsAsyncEnumerable() or use any of the *IO suffixed methods (like CountIO, FoldIO, etc.)

IterableNE is a new non-empty Iterable

Every wanted to work with a lazy stream that must have at least one item in it? Well, now you can: IterableNE. It's impossible for an IterableNE to be constructed without at least one item in it, so you can assume it will always have a Head value.

It also supports synchronous and asynchronous sequences.
... (truncated)

Commits viewable in compare view.

Updated TUnit from 1.6.20 to 1.6.28.

Release notes

Sourced from TUnit's releases.

1.6.28

What's Changed

Other Changes

Full Changelog: thomhurst/TUnit@v1.6.27...v1.6.28

1.6.27

What's Changed

Other Changes

Full Changelog: thomhurst/TUnit@v1.6.25...v1.6.27

1.6.25

What's Changed

Other Changes

Dependencies

Full Changelog: thomhurst/TUnit@v1.6.20...v1.6.25

Commits viewable in compare view.

Updated YoloDev.Expecto.TestSdk from 0.14.3 to 0.15.5.

Release notes

Sourced from YoloDev.Expecto.TestSdk's releases.

0.15.5

0.15.5 (2025-10-02)

Dependencies

0.15.4

0.15.4 (2025-07-23)

Bug Fixes

Dependencies

0.15.3

0.15.3 (2025-03-03)

Features

Dependencies

0.15.2

0.15.2 (2025-02-19)

Dependencies

0.15.1

0.15.1 (2025-02-17)

Bug Fixes

Miscellaneous Chores

Dependencies

0.15.0

0.15.0 (2025-02-04)

⚠ BREAKING CHANGES

Features

Miscellaneous Chores

Dependencies

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps altcover from 8.2.825 to 8.9.3
Bumps LanguageExt.Core from 5.0.0-beta-63 to 5.0.0-beta-65
Bumps TUnit from 1.6.20 to 1.6.28
Bumps YoloDev.Expecto.TestSdk from 0.14.3 to 0.15.5

---
updated-dependencies:
- dependency-name: altcover
  dependency-version: 8.9.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-dependencies
- dependency-name: LanguageExt.Core
  dependency-version: 5.0.0-beta-65
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-dependencies
- dependency-name: TUnit
  dependency-version: 1.6.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-dependencies
- dependency-name: YoloDev.Expecto.TestSdk
  dependency-version: 0.15.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file dotnet labels Dec 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant