GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Set exit code of `Invoke-ScriptAnalyzer -EnableExit` to total number of diagnostics (#2054) by MatejKafka · Pull Request #2055 · PowerShell/PSScriptAnalyzer

Conversation

@MatejKafka

@MatejKafka Matěj Kafka (MatejKafka) commented Feb 4, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

PR Summary

Fixes #2054 by setting the exit to the total number of emitted diagnostics instead of just the last processed file from the pipeline.

PR Checklist

  • PR has a meaningful title
    • Use the present tense and imperative mood when describing your changes
  • Summarized changes
  • Change is not breaking
  • Make sure all .cs, .ps1 and .psm1 files have the correct copyright header
  • Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
  • This PR is ready to merge and is not Work in Progress.
    • If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@MatejKafka
Matěj Kafka (MatejKafka) requested review from Andy Jordan (andyleejordan) and Christoph Bergmeister (bergmeister) as code owners February 4, 2025 23:20
@MatejKafka
Matěj Kafka (MatejKafka) force-pushed the main branch from 40022c7 to b5d4932 Compare February 4, 2025 23:36
@andyleejordan

Andy Jordan (andyleejordan) commented Feb 5, 2025

Copy link
Copy Markdown
Member

Thanks Matěj Kafka (@MatejKafka)! I really like this. Could I ask you to do one small refactor? I checked and RunAnalysis() is returning an IEnumerable which is why you then called ToArray() (well, you could have also used LINQ's Count() extension method, but that's what we're trying to avoid). Instead, since the container of diagnostic records being returned is already a List could you change the return type of RunAnalysis to List? Then you can use the Count property instead of method, and continue to pass it to the next function that takes an IEnumerable (which List satisfies and won't cause any type changes) instead of changing it to take an array.

PSScriptAnalyzer/Engine/Commands/InvokeScriptAnalyzerCommand.cs

Line 439 in 9dacfa8

var diagnostics = new List<DiagnosticRecord>();

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

andyleejordan
Andy Jordan (andyleejordan) suggested changes Feb 5, 2025
View reviewed changes

@andyleejordan Andy Jordan (andyleejordan) left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh sorry GitHub UI see comment I just left in "Conversation" tab of PR. Thanks!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@MatejKafka
Matěj Kafka (MatejKafka) force-pushed the main branch from b5d4932 to 76bcd6b Compare February 5, 2025 12:52
@MatejKafka

Matěj Kafka (MatejKafka) commented Feb 5, 2025

Copy link
Copy Markdown
Contributor Author

Andy Jordan (@andyleejordan) Needed to make a few more changes in AnalyzeScriptDefinition, which returned an IEnumerable, which is why did not make this change in the first place, but agree it's the better option. :)

Btw, looking at the code a bit more, imo it would also make sense to move ReportSummary handling to EndProcessing – that way, it's consistent with the new EnableExit behavior, and I'd assume most users want the summary for the whole run, not for each piped file separately. Thoughts?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka
Set exit code of Invoke-ScriptAnalyzer -EnableExit to total number …
04a0149
…of diagnostics
@MatejKafka
Matěj Kafka (MatejKafka) force-pushed the main branch from 76bcd6b to 04a0149 Compare February 5, 2025 12:56
@andyleejordan

Andy Jordan (andyleejordan) commented Feb 6, 2025

Copy link
Copy Markdown
Member

Btw, looking at the code a bit more, imo it would also make sense to move ReportSummary handling to EndProcessing – that way, it's consistent with the new EnableExit behavior, and I'd assume most users want the summary for the whole run, not for each piped file separately. Thoughts?

Christoph Bergmeister (@bergmeister) thoughts on this? I'm inclined to agree but it seems like a riskier change. Otherwise I'm good with this PR as-is but wanted to ping you before merging.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@andyleejordan

Andy Jordan (andyleejordan) commented Feb 6, 2025

Copy link
Copy Markdown
Member

Matěj Kafka (@MatejKafka) I chatted with Patrick Meinecke (@SeeminglyScience) and confirmed that wouldn't break things, so I'm all for adding that small refactor. It makes sense, then I can do a final review and merge this.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka

Matěj Kafka (MatejKafka) commented Feb 7, 2025

Copy link
Copy Markdown
Contributor Author

One more thing – currently, the number of violations reported by -ReportSummary does not include parse errors, which is imo a bit weird, especially when the exit code includes them. Would you agree to also including parse errors in the total number of violations and the "Error = ..." print to be consistent?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka

Matěj Kafka (MatejKafka) commented Feb 7, 2025

Copy link
Copy Markdown
Contributor Author

Updated with changes to -ReportSummary. I tend to make a lot of minor cleanup changes while editing code. If you're not happy about any of the changes, just ping me and I'll remove them from the PR. :)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@andyleejordan

Andy Jordan (andyleejordan) commented Feb 10, 2025

Copy link
Copy Markdown
Member

Ah, yes, sorry. I misunderstood and that moving the report summary logic would be a change on the same order as the exit code change. Need to keep it very minimal.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka

Matěj Kafka (MatejKafka) commented Feb 10, 2025

Copy link
Copy Markdown
Contributor Author

Not sure I follow – are you referring to changing -ReportExit at all, or the extra changes on top of it?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@andyleejordan

Andy Jordan (andyleejordan) commented Feb 10, 2025

Copy link
Copy Markdown
Member

All the extra changes on top of it. I'm good to merge just commit 04a0149. For the extra report summary changes proposed, let's do it another PR.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka

Matěj Kafka (MatejKafka) commented Feb 10, 2025

Copy link
Copy Markdown
Contributor Author

Makes sense, I'll move the follow-up commits to separate PRs, thanks. :)

andyleejordan reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatejKafka
Matěj Kafka (MatejKafka) force-pushed the main branch from 5833d08 to 04a0149 Compare February 10, 2025 22:12
andyleejordan
Andy Jordan (andyleejordan) approved these changes Feb 10, 2025
View reviewed changes

@andyleejordan Andy Jordan (andyleejordan) left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic, thank you!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@andyleejordan
Andy Jordan (andyleejordan) enabled auto-merge (squash) February 10, 2025 23:36
@andyleejordan
Andy Jordan (andyleejordan) merged commit 0e46667 into PowerShell:main Feb 10, 2025
@andyleejordan Andy Jordan (andyleejordan) added the Issue-Bug label Feb 10, 2025
@MatejKafka Matěj Kafka (MatejKafka) mentioned this pull request Feb 21, 2025
Invoke-ScriptAnalyzer: Print summary only once per invocation #2063
Merged
6 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@bergmeister Christoph Bergmeister (bergmeister) Awaiting requested review from bergmeister bergmeister is a code owner
1 more reviewer
@andyleejordan Andy Jordan (andyleejordan) andyleejordan approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

Issue-Bug

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Invoke-ScriptAnalyzer -EnableExit sets exit code based on the last evaluated file with piped input

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@MatejKafka @andyleejordan
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.