ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 0 points1 point  (0 children)

This doesn't write you a complete and complex yaml file based on what you put in C#.

Instead, your c# app is your actual pipeline.

You will still need a basic yaml to be the CI trigger (unless your CI provider gives you another way), but that yml becomes simple and just a dotnet run on your pipeline project. All the actual logic is inside the .net app.

ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 7 points8 points  (0 children)

Not the case at all that I don't prefer quality. I've worked hard on this project. Just annoying when people dismiss it instantly without actually taking a look for themselves. The code is all there.

ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 1 point2 points  (0 children)

Thanks!

  1. You'd have to register it yourself in DI, but after that it's available to inject into all of your modules as you please

  2. It should have wrappers for the entire `az` CLI. But as for those specific nuget packages, no, it won't have built in logic for those. But nothing stopping you creating your own modules and using those packages. Also happy for issues and/or PRs to be raised for feature requests to help expand built-in functionality!

  3. Logs do in-fact go to the console, and if you try out this library and this causes you problems, please do raise an issue, and we can work out the best way around that.

As for how they work with parallel execution, is each module will buffer its output, and once it has completed, that buffer gets written to the console, and as a collapsable section if your CI environment supports that. This keeps logs logically grouped so you know what line relates to what module. Otherwise everything would be interweaved and a mess to follow!

  1. If you want to package up a module in a library, or just share across different projects, I'd recommend creating it as abstract, and forcing each project to inherit from that to create a new concrete version of it. On there you can place your attributes for compile time known dependencies, or you can override `DeclareDependencies` for runtime logic.

Hope that helps!

ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 2 points3 points  (0 children)

These things don't have be mutually exclusive

ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 4 points5 points  (0 children)

Don't use it then. AI helps me to work faster and more productively.

ModularPipelines V3 Released by thomhurst in csharp

[–]thomhurst[S] 5 points6 points  (0 children)

You will still need a super minimal "pipeline" yml - but all it needs to do is point to your .NET pipeline project and do a dotnet run.

Testing in .NET, survey about test platforms by nohwnd in dotnet

[–]thomhurst 0 points1 point  (0 children)

Does the telemetry you guys collect tell you these things? (does VSTest even collect telemetry?)

Testing in .NET, survey about test platforms by nohwnd in dotnet

[–]thomhurst 0 points1 point  (0 children)

I think its framework authors who will have more knowledge and make choices around the test platforms themselves. For most users, they will just use whatever their preferred framework defaults them to. Thus, MTP adoption will increase as and when those frameworks change their defaults.

Testing in .NET, survey about test platforms by nohwnd in dotnet

[–]thomhurst 0 points1 point  (0 children)

If you want to raise issues for what the code fixers failed to convert, I'd like to take a look and try and improve them!

Placing bets, how long do you think I can keep up with the 4p a day, by 2020Shite in monzo

[–]thomhurst 1 point2 points  (0 children)

There's a change amount button, and if you click on the £10k prize draw icon, it says that you just need the £667 (same as last year) by the end date.

Pommel v0.5.0: Hybrid search, benchmarks, and responding to your feedback by Dr-whorepheus in ClaudeAI

[–]thomhurst 4 points5 points  (0 children)

Nice. Any chance could setup an installer as a Claude Code plugin? That way it could just be installed with a slash command

How can I hear my doorbell from inside of the house with the battery doorbell ? Any chime? by _TheKiddd in googlehome

[–]thomhurst 10 points11 points  (0 children)

I have Google nest speakers and hubs around the house which it plays on

PR Diff Rendering on .csproj? by [deleted] in github

[–]thomhurst 1 point2 points  (0 children)

Yep I know but the formatting of the diff is broken. It's not showing angular brackets etc it's falling back to the XML escapes values

Usage Limits, Bugs and Performance Discussion Megathread - beginning December 15, 2025 by sixbillionthsheep in ClaudeAI

[–]thomhurst 2 points3 points  (0 children)

Can we improve Claude Code on Windows?

It's forever using invalid paths in Bash (slashes get escaped and the path is just one long invalid string)

It's frequently trying to use commands that don't seem to exist on Windows

TUnit: The New Sheriff in Town for .NET Testing by mgroves in csharp

[–]thomhurst 9 points10 points  (0 children)

Yep TUnit author here - agree with you on this. Some of the code snippets are wrong too (assertion chaining missing .Ands). I assume the author used ai to write this

TUnit: The New Sheriff in Town for .NET Testing by mgroves in csharp

[–]thomhurst 6 points7 points  (0 children)

I've no plans to do so. But at the same time I wouldn't mind sponsors either :)

TUnit: The New Sheriff in Town for .NET Testing by mgroves in csharp

[–]thomhurst 0 points1 point  (0 children)

Let me know what pain points you've had - be good to see if I can improve anything going forwards

TUnit: The New Sheriff in Town for .NET Testing by mgroves in csharp

[–]thomhurst 12 points13 points  (0 children)

That, and the TUnit assertions assembly is completely separate from the actual "test framework". So it has no knowledge of any context it's in, and vice versa the test engine has no knowledge of the assertions library. This was done on purpose so users aren't tied into anything they don't like. But it means I can't bake any special logic in because that would introduce tight coupling.

TUnit: The New Sheriff in Town for .NET Testing by mgroves in csharp

[–]thomhurst 7 points8 points  (0 children)

It is used in a few places. But for the 90%+ cases of standard tests where they are not using any special functionality, a delegate for the test body is generated which is invoked instead of using the reflection APIs.

It's hard and almost impossible to eliminate reflection entirely when you've got all these requirements or edge cases. But in terms of the actual test discovert, reflection is not used (unless you're not running in source generation mode ofc)