Skip to content

[Backlog] Type-system follow-up: decide leaf transformation attribute rollout #681

Description

@lipkau

Problem

Issue #612 promotes JiraPS leaf return types to AtlassianPS.JiraPS.* classes and introduces JiraLeafTransformationAttribute<T> plus concrete leaf transformation attributes.

Those attributes are useful if a later parameter sweep types cmdlet parameters as leaf classes, but today most public parameters were intentionally not flipped as part of PR4.
This leaves a design question: keep the leaf transformers now as prepared surface area, remove them until a real parameter rollout needs them, or schedule a focused leaf-parameter sweep.

Proposal

Audit the promoted leaf types and public cmdlet parameters that could reasonably consume them.
For each leaf type, decide one of:

  • Keep the transformation attribute because an upcoming parameter change will use it.
  • Remove/defer the transformation attribute until a concrete public parameter needs it.
  • Implement a small parameter sweep with docs and tests where the typed parameter is clearly valuable.

Document the decision in code/tests/docs so future type-system work does not have to rediscover the rationale.

Acceptance criteria

  • Every concrete leaf transformation attribute introduced by issue [Backlog] Type-system PR4: promote 15 leaf types + tighten remaining object slots on core classes #612 is either used by a public parameter, explicitly retained with rationale, or removed/deferred.
  • Any retained-but-unused attributes have unit coverage for string, typed-object, and invalid input behavior.
  • If parameters are flipped to leaf types, their cmdlet help and parameter-type tests are updated in the same change.
  • Invoke-Build -Task Build, Test passes.

Related items

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area:ModuleBacklogFiled for tracking; not yet scheduledIssue:MetaTheme:TypeSystemType-system / class-promotion / domain-model workrefactoringCandidate for refactoring

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions