Skip to content

Decouple the concept of project from project versions #1736

@nscuro

Description

@nscuro

Current Behavior

Currently, multiple versions of the same project are represented as separate, independent records in the PROJECT table.

The concept of a project version is treated very loosely: the fact that two PROJECT records represent different versions of the same project is merely implied by both sharing the same NAME column.

This poses a challenge for features such as portfolio ACL, where it becomes increasingly impractical to explicitly grant access to individual project versions.

Proposed Behavior

Decouple project from project version. Enable features such as portfolio ACL to apply to projects, rather than individual project version.

Most of what is currently associated with a project would switch to being associated with a project version instead. A rough sketch:

erDiagram
    project {
        bigint id pk
        text name
    }

    project_version {
        bigint id pk
        bigint project_id fk
        text name
    }

    component {
        bigint id pk
        bigint project_version_id fk
        text name
        text version
        text purl
    }

    team {
        bigint id pk
        text name
    }

    project_version |o--o{ component: "contains"
    project_version }|--|| project: "is version of"
    project }o--o{ team: "is accessible by"
Loading

Checklist

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking changeenhancementNew feature or requestp2Non-critical bugs, and features that help organizations to identify and reduce risksize/LHigh effortspike/researchRequires more research before implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions