Skip to content

Establish CHANGELOG and "releases"? #216

@yarikoptic

Description

@yarikoptic

I know that it sounds odd but since dandi-infrastructure is used by derivative efforts (LINC and EMBER), those teams (and DANDI people in a few weeks after) would appreciate from having a conventional track of changes and description of rationale for them. Since auto is doing a decent job in populating CHANGELOG and linking to PRs etc, I would suggest us to

  • adopt time based versioning like git-annex does where it would be

    {MAJOR}.{DATE}.{PATCH}

    • MAJOR - to increment only when backward compatibility gets "broken" as a service gets removed or alike
    • DATE - the date for release
    • PATCH - if needed on top of DATE

    @jwodder -- can auto or something else implement such version minting based on labels?

  • automate "releases" which would simply mint a new version from master and update CHANGELOG. Pretty much any PR, unless bundling multiple changes together, could have its own "release"

  • PR titles should be descriptive enough to summarize the change, and extended description should provide some context for the change: "why and how"

Overall, it

  • it should not add extra burden - labeling is easy
  • produce summary CHANGELOG for folks to consult/navigate upon merges into their solutions
  • allow downstream projects to reference specific state of deployment based on the release labels ("upgrade infrastructure setup from 1.20250101.0 to 3.20250217.0 of DANDI ...) instead of "sync to DANDI from our prior sync 2 months ago")

WDYT @waxlamp @satra et al?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions