Skip to content

Change control cards for product versions - #46

Draft
ArtyomSavchenko wants to merge 11 commits into
developfrom
product-change-control
Draft

Change control cards for product versions#46
ArtyomSavchenko wants to merge 11 commits into
developfrom
product-change-control

Conversation

@ArtyomSavchenko

@ArtyomSavchenko ArtyomSavchenko commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Related TraceX ticket: https://app.tracex.co/workbench/tracex-ws/card/6a05cf2a6fdb770f2db24ea4

Adds the ability to attach cards as change control to product versions, on top of the
existing change-control document. Built as a general, reusable mechanism for linking any
class to cards with custom logic, then wired up for products.

General layer (reusable)

  • New card.mixin.CardRelation mixin on core.class.Association (purpose, filter,
    requireLatest) — lets any class link cards with a semantic purpose and an optional
    eligibility filter, on top of the platform's generic relations.
  • RelationEditor now honors the mixin: candidate cards are narrowed by the association's
    card type, the stored filter, and (unless disabled) the latest version.
  • Exported filtersToQuery from view-resources to re-apply stored view filters as a query.

Products

  • Class-level config UI on the product panel: pick change-control card types and author a
    per-type filter (creates purpose-marked associations).
  • Change-control cards can be attached on the product version panel (generic relations) and
    in the "Create product version" dialog, restricted to the configured type + filter + latest.
  • Creating a child version is gated: if change-control card types are configured, at least
    one card must be attached (mirrors the existing change-control document requirement).
Screenshot 2026-07-27 at 09 44 20 Screenshot 2026-07-27 at 09 41 36 Screenshot 2026-07-27 at 09 41 51

Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
@ArtyomSavchenko
ArtyomSavchenko marked this pull request as ready for review July 27, 2026 02:45
Comment thread plugins/card/src/index.ts Outdated
export interface CardRelation extends Association {
purpose?: string
filter?: string
requireLatest?: boolean

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Bad name and behavior choice. I suggest to use something applyToAnyVersion or matchAnyVersion which is enabled only when set to true

@aonnikov

Copy link
Copy Markdown
Collaborator

What is so specific about cards that we need a mixin for relations?

Signed-off-by: Artem Savchenko <armisav@gmail.com>
@ArtyomSavchenko
ArtyomSavchenko marked this pull request as draft July 27, 2026 03:31
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Signed-off-by: Artem Savchenko <armisav@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants