-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Closed
Labels
Issue-Discussionthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifResolution-FixedThe issue is fixed.The issue is fixed.WG-DevEx-SDKhosting PowerShell as a runtime, PowerShell's APIs, PowerShell Standard, or development of moduleshosting PowerShell as a runtime, PowerShell's APIs, PowerShell Standard, or development of modules
Milestone
Description
I've run an analysis comparing public APIs available in PowerShell 6.2.3 vs 7.0.0-rc.2 and there are some public APIs that are missing.
While this is in many cases intentional, and likely to not be an issue, some may affect programs and tools trying to link against multiple versions of PowerShell (modules and some hosts). Trying to reference such an API would cause a sudden crash in one of these tools (the hard part being that the point at which the crash occurs may be hard to control).
I'm still refining the analysis, but here is a list of classes and members that have been removed:
Types
[Workflow]System.Management.Automation.PSJobProxy[Workflow]System.Management.Automation.PSChildJobProxy[Workflow]System.Management.Automation.JobDataAddedEventArgsSystem.Management.Automation.PowerShellStreamType(arguably workflow, but has generic name and namespace. Removed in Cleanup workflow - remove PSProxyJob #10083).[Workflow]System.Management.Automation.WorkflowInfoDiscussed with @daxian-dbw and @adityapatwardhan and decided that this is workflow-specificSystem.Management.Automation.Runspaces.PSSessionType(arguably workflow, but possibly worth restoring with single value depending on how it's used)
Fields
[Workflow]System.Management.Automation.CommandTypes::Workflow[Workflow]System.Management.Automation.PSEngineEvent::WorkflowJobStartEvent[Workflow]System.Management.Automation.ModuleType::Workflow[Internal]System.Management.Automation.Internal.DebuggerUtils::SetVariableFunction[Internal]System.Management.Automation.Internal.DebuggerUtils::RemoveVariableFunction[Internal]System.Management.Automation.Internal.DebuggerUtils::GetPSCallStackOverrideFunction[Internal/Workflow]System.Management.Automation.Internal.PSMonitorRunspaceType::WorkflowInlineScript
Methods and constructors (captures events and properties)
[Internal]Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache::ImportClasses(System.String,System.Tuple`2[System.String,System.Version],System.Collections.ObjectModel.Collection`1[System.Exception])[Internal]Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache::GetCachedClasses()Fixed in Change name of ClrVersion parameter back #11623Microsoft.PowerShell.Commands.NewModuleManifestCommand::get_ClrVersion()Fixed in Change name of ClrVersion parameter back #11623Microsoft.PowerShell.Commands.NewModuleManifestCommand::set_ClrVersion(System.Version)[Workflow]Microsoft.PowerShell.Commands.RegisterPSSessionConfigurationCommand::get_SessionType()[Workflow]Microsoft.PowerShell.Commands.RegisterPSSessionConfigurationCommand::set_SessionType(System.Management.Automation.Runspaces.PSSessionType)Discussed with @daxian-dbw and @adityapatwardhan and decided that this is ok to removeMicrosoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods::GetTarget(System.Management.Automation.PSObject)(arguably internal, but not internally namespaced. Return type changed in Removing Hardlink from Mode property in default file system format #8789)Fixed in RestoreSystem.Management.Automation.Debugger::SetBreakpoints(System.Collections.Generic.IEnumerable`1[System.Management.Automation.Breakpoint])SetBreakpointsAPI #11622[Workflow]System.Management.Automation.PowerShell::AsJobProxy()Discussed with @daxian-dbw and @adityapatwardhan and decided that this is not a real breaking changeSystem.Management.Automation.ScriptBlock::set_IsFilter(System.Boolean)Formerly threw InvalidOperationException. Should assess whether this is considered breaking. Changed in Code Cleanup: Tidy up scriptblock.cs #9732Discussed with @daxian-dbw and @adityapatwardhan and decided that this is not a real breaking changeSystem.Management.Automation.ScriptBlock::set_IsConfiguration(System.Boolean)Formerly threw InvalidOperationException. Should assess whether this is considered breaking. Changed in Code Cleanup: Tidy up scriptblock.cs #9732[Workflow]System.Management.Automation.PSModuleInfo::get_ExportedWorkflows()Discussed with @daxian-dbw, @adityapatwardhan and @JamesWTruher and decided that being a workflow-oriented, Windows-only API, this break is okSystem.Management.Automation.Tracing.Tracer::EndpointRegistered(System.String,System.String,System.String)Removed in Remove Workflow from PSSessionType #9618[Internal/Workflow]System.Management.Automation.Internal.DebuggerUtils::GetWorkflowDebuggerFunctions()
I'll continue this analysis to look into custom attributes
Metadata
Metadata
Assignees
Labels
Issue-Discussionthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifResolution-FixedThe issue is fixed.The issue is fixed.WG-DevEx-SDKhosting PowerShell as a runtime, PowerShell's APIs, PowerShell Standard, or development of moduleshosting PowerShell as a runtime, PowerShell's APIs, PowerShell Standard, or development of modules