Skip to content

Instantly share code, notes, and snippets.

@wbamberg
Created November 24, 2020 01:06
Show Gist options
  • Save wbamberg/60b6bdfe39adaf349ef08b8b925784ba to your computer and use it in GitHub Desktop.
Save wbamberg/60b6bdfe39adaf349ef08b8b925784ba to your computer and use it in GitHub Desktop.

In matrix-doc:

/                                      <- overview
    /client-server                     <- client-server
    /server-server                     <- etc
    /rooms
        /v1                            <- room version 1
        /v2                            <- etc

matrix-doc could also contain:

  • a config.toml setting saying whether it is: "unstable", "current" or "historical"
  • a config.toml setting pointing to the current release, like "spec.matrix.org/latest"

It could use that to show the appropriate banners for unstable and historical pages, and to link to latest.

Deployed:

spec.matrix.org <- hardcoded homepage (not in Hugo/matrix-doc) <- links to spec documents using URLs like spec.matrix.org/latest/client-server <- these links redirect to the actual latest version

        unstable                    <- deployed from matrix-doc HEAD
            /                       <- overview
                /client-server      <- client-server
                /server-server      <- etc
                /rooms
                    /v1             <- room version 1
                    /v2             <- etc

        1.1                         <- deployed from matrix-doc 1.1 branch
            /                       <- overview
                /client-server      <- client-server
                /server-server      <- etc
                /rooms
                    /v1             <- room version 1
                    /v2             <- etc

        1.0                         <- deployed from matrix-doc 1.0 branch
            /                       <- overview 
                /client-server      <- client-server
                /server-server      <- etc
                /rooms
                    /v1             <- room version 1
                    /v2             <- etc

Making a release

To make a new major/minor release:

  • decide on the new release version (say, "1.1")
  • make a new branch from main, giving it whatever name (e.g. "1.1")
  • set the config.toml for this release to say it's the new current release
  • set the config.toml for the last release (say, "1.0") to say it's the historical release
  • on the server, update the "latest" redirect for the spec.matrix.org to point to the "1.1"
  • deploy the new release and the previous release

To make a patch release:

  • merge changes from main into the latest release branch.

Things this doesn't cover

  • "Releases" dropdown menu. I guess if we wanted to support this we would need to update the menu items for every historical release, whenever we make a new release? Or do something else entirely.

  • Changelogs. I'm really not sure of the best way to handle these any more.

  • Representing patch versions:

This doesn't

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