Community Meetings
October 18, 2016
Notes
- For Plaster templates, PowerShell source is located in
src/directory whereasPSScriptAnalyzerSettings.psd1is located in the project root. When PSScriptAnalyzer is pointed to the root, it should scan onlysrc/. PSSA settings file needs a include/exclude directory key to facilitate such behavior. - Some possible actions to alleviate PSAvoidUsingConvertToSecureStringWithPlainText issues
- Provide more information in the violation description and possible point to relevant online resources
- Can narrow down the applicability of the rule by scanning for
Read-Hostfollowed byConvertTo-Securestring -AsPlainTextinvocation
- Provide a more convenient way to suppress rules through comments, e.g.,
will suppress### disable rule: PSUseApprovedVerbs function obtain-foo { }PSUseApprovedVerbson the entire script following the### disable ruleflag.
(We would like to thank all the people who could attend the community call and provide their valuable suggestions. Also, we would like to apologize to all the people who dialed in at 10:00 am because of the the incorrect meeting time posted on the blog.)
Agenda
- Feedback on 1.8.0
- PSAvoidUsingConvertToSecureStringWithPlainText issues: #574, #562, #627.
- Other Open Issues
- Deprecated Rules should be included and be available to call manually
- Add suggestion to read About_TOPIC files to Script Analyzer rules
- Support for custom rules as streams
- Additional properties in the emitted diagnostic records
- Should PSScriptAnalyzer suggest use of the RemotingCapability cmdlet attribute when a ComputerName parameter is used?
- Provide a way to customize Custom Rule environment
- Help generate a report card for modules
- PSScriptAnalyzer doesn't seem to be using the SuppressMessageAttribute ctor fields as intended
May 24, 2016
Notes
- DSC Parse error fix changes
- Change SaveDscResourceDependency to SaveDscDependency
- Have logic to clear module cache
- Settings file precedence
- No module name in project-scoped settings file
- Find way to filter module manifest .psd1 files for analysis so that non-module manifest .psd1 are not flagged by the rules
- Analyze helper function for presence of shouldprocess
- Implement rulesets functionality and enable them to be easily discoverable by the user
- implementing tags may prove useful for this feature
Agenda
- Thank the community
- Brief overview of the next release
- Engine
- Add a
SaveDSCResourceDependencyswitch to allowInvoke-ScriptAnalyzerto download a DSC Resource module from PSGallery in the event of aModuleNotFoundDuringParseparse error. - Add
SuggestedCorrectionsproperty toDiagnosticRecord- This property emits text that can rectify the violation which triggered the rule
- The primary purpose of this feature is to enable quick-fix scenarios in editors (vscode)
- Add
Nameas a positional parameter inGet-ScriptAnalyzerRule - Add
Removeverb toUseShouldProcessForStateChangingFunctionsrule - Add a
ScriptPathproperty to DiagnosticRecord that returns the full path of the script - Fix the parsing of
Settingsparameter value when a hashtable is given - Fix writing error record while running rule suppression
- Fix rule suppression in DSC Configuration definitions
- Add a
- Rules
- Add suggested correction feature to the following rules:
PSAvoidUsingCmdletAliasesPSAvoidUsingPlainTextForPasswordPSMisleadingBacktickPSUseToExportFieldsInManifestPSMissingModuleManifestField
- Fix extents of:
UseSingularNounUseApprovedVerbAvoidUsernameAndPasswordParams
- Add suggested correction feature to the following rules:
- Engine
- Discuss the following issues:
03/29/2016
Notes
- Implement style-based rules (not enabled by default)?
- Keith: used to having two separate
- Need a way to tell the difference between style rules and functionality rules
- SourceName getting cutoff in smaller conhost buffers
- Autocorrection of rules
- Prototyped already using a single extent emitted by Inovke-ScriptAnalzyer
- Useful going forward with style rules
- Don't need command-line autocorrect right now
- User-configurable rules
- Generic set of configurability: ability to override severity
- Global switch: "treat warnings as error"
- Cmdlet alias rule has a whitelist
- AvoidUserNameAndPasswordParams can also take a whitelist of strings
- Could edit the number of allowed positional params in AvoidPositionalParams
- Also have a switch for positional params allowed for built-in
- Alias the SuppressMessage attribute
- Totally fine to take an array of rules to suppress
- Username and password is still firing a noisy extent
Agenda
-
Thank community for feedback/issues/suggestions. Also for PRs containing bug fixes and updates to help content
-
Need Opinion: Identify Style based rules in default rule set
- We need to consider adding certain Style based rules that have community consensus to the default rule set
-
Need Opinion: Up for grab items:
- How do we make progress on these? There are new rules/features suggested in the list.
-
Feature asks: [Discuss scope/specifics]
-
Metadata management for Rules
- Need a way of configuring rule behavior (Ex: cmdlet alias rule, deprecated cmdlet rule, shouldprocess)
-
Auto correction in ScriptAnalyzer
- ScriptAnalyzer needs to emit suggested ‘extent’ for rule violations
-
SuppressMessage usage suggestion:
-
-
Go over issues page
-
[Low Pri - FYI] ScriptAnalyzer v1.5 release content [4/1]:
- Perf optimization when handling Severity
- Updates to fix inconsistencies in severity emitted by rules (Get vs Invoke)
- Updates to PSCredential Usage error message and UserName and Password message
- Change image to WMF 5 for Appveyor
- New code review process using reviewable.io
- API layer now accepts Profile input
02/02/2016
Topics Discussed:
- Highlight items in v1.3.0 release
- Thanks to community for contributions to rule, documentation and general feedback!
- Support for PowerShell v3
- Have not seen any issues in this area – Connect with community to understand the usage
- How is the current release working in terms of rule accuracy, Engine stability, perf? – Any other feedback.
- Ability of the ruleset to recognize variable scopes - global, local, script, private
- Go over remaining items from changelog
- Open Items – Issues, Bugs
- Feedback on “ScriptDefinition” feature – Ability to consume scripts as streams
- [Feature] Feature to enable supplying configuration data to rules – Ex: cmdlet alias rule – supplying list of aliases to whitelist/blacklist – How does the community feel about this feature?
- [Feature] Scope for module manifest work
- [Rule] Credential/Securestring enforcement for parameters
- Issue #397 - Should PSScriptAnalyzer suggest use of the RemotingCapability cmdlet attribute when a ComputerName parameter is used?
- Issue #416 – Using ScriptAnalyzer engine in a multithreaded environment in the same process – currently this is a singleton instance for perf reasons – Get better understanding of the ask..
- Issue #434 - Should suggest explicit *ToExport entries in module manifest
- [Contribution required] Looking for contributions to issues marked as “New Rules, Up for grabs”
- Wiki – Opened this to be editable by world – Content the community wants to publish here? Can we use the existing Agenda/Meeting notes template?
######[Announce on Twitter about upcoming meetings]
- Skype Recording of the online meeting:
10/13/2015
Recording of the Skype Meeting:
Agenda:
Discuss features to get community opinion:
- Additional properties in the emitted diagnostic records
- ScriptAnalyzer categories for rule severities
- Optional logging metrics for rule applications
- Support for custom rules as streams
- Close issues that have no consensus
Open Items:
- PS v3 support – status
- Up-for-Grabs issues in GitHub – need takers
- Documentation status
Updates from our team:
- PSSA v1.1.0 released to gallery – our most significant release so far – Profile support/API support/New rules etc
- https://github.com/PowerShell/PSScriptAnalyzer/releases/tag/1.1.0
New Rule/Bug fixes:
- [Rule] Validate BOM Encoding
- [Rule] Validate UTF8 encoding in help files
- [Fix] Handling PSDrives
- [Improvements] Positional Parameter rule
08/18/2015
Recording of the Skype Meeting:
07/07/2015
- PS v3 support
- For V3/v4, make sure the help info are consistent
- Important for script migration
- Profiles
- What profiles of rules we ship instead of how profiles work
- Different scenarios
- Provide default rule profiles
- Rules
- Validate help comments
- Help file should be utf-8
-
Have a Youtube channel
-
Recording of the Skype Meeting
06/16/2015
- Suppressing rule scenario requirements
- Scott's team [ScriptAnalyzer ISE Plugin] to finish the suppression feature -> right click and enable suppression source/file
- Profile discussion
- Kirk: Only need to turn some things off
- Chendra: VS dev teams need a few rules to develop and verify?
- Joel: Only want to disable some rules for modules like ShowUI and XML.
- Pass along rule profiles
- Additional request for PowerShell grammars via DSLs
- LaunguagePx
- Open issues
- Backticks: bad?
- Create a stylistic rule set as add-on?
- Style guide:
- Every style guide can be different
- Too late to decide certain language uses such as : whether a backtick should be used
- Collaboration: every rule can be linkable
05/08/2015
-
Rule suppression baseline (Issue opened by Keith on GitHub)
-
We need to distinguish the line between publishing and good practice
-
Validate if suppression works with namespace imported
-
How to engage more community members to use this tool : providing easier compilation process
-
Two binaries, hard to make it a nice upgradable module
-
Break the binaries, version problem
-
-
Wording of "Guidelines" may not be restrictive enough compared to "Rules"
-
Version 3.0/5.0/nanoserver, it would be useful if the tool could figure out what version a module supports without minimum version specified.(Issue opened by Keith on GitHub)
-
Kirk will work on a version that is compatible with PS 3.0 and will publish it in his forked branch.
-
We will need lots of community’s feedback/input on what rules to implement, what should be the severity of the rules
-
A full documentation of what we consider as “best practice” will be posted on the repository and we want to know if you have more!
-
A video recording of the meeting has been posted here: https://onedrive.live.com/redir?resid=ef4b329a5eb9ea4d!120&authkey=!AO0elIRHskAjtCM&ithint=folder%2cmp4

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
