Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r0.1.0 release of the Push Gateway specification #1521

Merged
merged 7 commits into from
Aug 30, 2018

Conversation

turt2live
Copy link
Member

Two part PR

The second part is: matrix-org/matrix.org#209 - please review both.

Description

Because this is the first release, it has several moving parts to it:

  • The version variables have been defined.
  • The towncrier changelog has been prepared for future modifications.
  • The templating has been updated to better support future versions of the specification.
  • A release process document has been created.

Because this is the first release, it has several moving parts to it:
* The version variables have been defined.
* The towncrier changelog has been prepared for future modifications.
* The templating has been updated to better support future versions of the specification.
* A release process document has been created.
@@ -20,7 +20,7 @@ host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/push/v1
basePath: /_matrix/push/%PUSH_GATEWAY_MAJOR_VERSION%
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure that this is a thing that needs to be populated from a variable. What is the advantage of doing so?

Copy link
Member Author

Choose a reason for hiding this comment

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

In the event we ever want to link to the current version of the API, or we release a new version, we don't have to update a bunch of links that we may have forgotten about. It doesn't really do much for us right now besides add yet another variable, however it will help us in the future when building links.

Copy link
Member

Choose a reason for hiding this comment

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

But this presupposes that the whole API surface will get a new version code at once. I don't think that is a good assumption.

Copy link
Member Author

Choose a reason for hiding this comment

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

It feels even worse to have variables for each API. I really don't want a case where we forget to update a link or worse end up releasing a spec with the wrong version codes.

Suggestions welcome.

Copy link
Member

Choose a reason for hiding this comment

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

why assume that /v1/notify won't be valid in the future?

Copy link
Member Author

Choose a reason for hiding this comment

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

Having talked it over out of band, I have removed it from this. I was confusing the other variable with this one, making communicating the problem harder.

of these gets released independently of each other with their own version numbers.

Once a specification is ready for release, a branch should be created to track the
changes in. This should be the name of the specification (as it appears in the directory
Copy link
Member

Choose a reason for hiding this comment

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

we're presupposing that there will be changes to a released spec after it is released? I guess I don't mind if we want to document the process for doing so if we need to, but building it right into the release process seems to send the wrong message.

Copy link
Member

Choose a reason for hiding this comment

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

ah, or maybe it makes more sense to consider this as a release branch for preparing the release - in which case it probably wants a different name, like client_server/release-r0.4.0

Copy link
Member Author

Choose a reason for hiding this comment

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

This is based off of looking at the history of branches on matrix-doc. Historically this branch has acted similar to the hotfixes branch on synapse, where minor things like typos, css, etc get merged in. In practice, I'm fairly certain we don't have a proper process to get potential hotfixes into the matrix.org served version of the spec. We should probably call it an actual release branch either way though, rather than making it exclusively a hotfix branch.

Copy link
Member Author

Choose a reason for hiding this comment

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

Worth noting that I'm also the worst and reserved the updates branch naming convention for this PR.

to the new version.
1. Update any version/link references across all specifications.
1. Update the index to list the version correctly.
1. Add the changes to the matrix-org/matrix.org repository (for historic tracking).
Copy link
Member

Choose a reason for hiding this comment

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

should this happen after the rest of the process, so that r0.4.0 is tagged up before we update matrix.org?

Copy link
Member Author

Choose a reason for hiding this comment

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

This should probably be a thing, yes.

1. Update any version/link references across all specifications.
1. Update the index to list the version correctly.
1. Add the changes to the matrix-org/matrix.org repository (for historic tracking).
* This is done by making a PR to the `unstyled_docs/spec` folder for the version and
Copy link
Member

Choose a reason for hiding this comment

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

it needs latest symlinks too.

@@ -0,0 +1,47 @@
# How to release a specification
Copy link
Member

Choose a reason for hiding this comment

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

+1 for putting this here. I don't know if you know about https:/matrix-org/internal-config/wiki/Specification; either way, I think this makes that redundant and it should be taken away once this is merged.

Copy link
Member Author

Choose a reason for hiding this comment

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

I was not aware of that, and somehow failed to find it. I was thinking "it's insane that no one has documented this before" though...

1. Update the changelog section of the specification you're releasing to make a reference
to the new version.
1. Update any version/link references across all specifications.
1. Update the index to list the version correctly.
Copy link
Member

Choose a reason for hiding this comment

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

how? which file needs changing?

1. Update the index to list the version correctly.
1. Ensure the `targets.yml` file lists the version correctly.
1. Commit the changes and PR them to master.
1. Tag the release with the format `client_server/r0.4.0`.
1. Add the changes to the matrix-org/matrix.org repository (for historic tracking).
Copy link
Member

Choose a reason for hiding this comment

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

I think there are some bear-traps in here waiting to ensnare the unwary, but the easiest way to find them is probably to try the process out and see what happened for real.

If we ever have a v2 endpoint for the push gateway, we'd likely spec it alongside the v1 stuff, updating applicable references elsewhere.
The following other versions are also available, in reverse chronological order:

- `HEAD <https://matrix.org/docs/spec/push_gateway/unstable.html>`_: Includes all changes since the latest versioned release.
- `r0.1.0 <https://matrix.org/docs/spec/push_gateway/r0.1.0.html>`_
Copy link
Member

Choose a reason for hiding this comment

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

we haven't historically included the "live" version of the spec in this section: https://matrix.org/docs/spec/client_server/r0.3.0.html#other-versions-of-this-specification does not link to r0.3.0.

Copy link
Member

Choose a reason for hiding this comment

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

(so this probably shouldn't go in until r0.1.0 is tagged and released)

Copy link
Member Author

Choose a reason for hiding this comment

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

ftr: pulling it out and re-generating the output, then pushing buttons for the release, then putting the changelog item back into master

Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

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

lgtm modulo query about old versions

@turt2live turt2live merged commit 4c9d672 into master Aug 30, 2018
@turt2live turt2live deleted the push_gateway/r0.1.0_updates branch August 30, 2018 00:02
RiotTranslateBot pushed a commit to RiotTranslateBot/matrix-doc that referenced this pull request Aug 22, 2023
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