-
Notifications
You must be signed in to change notification settings - Fork 385
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
Conversation
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.
api/push-gateway/push_notifier.yaml
Outdated
@@ -20,7 +20,7 @@ host: localhost:8008 | |||
schemes: | |||
- https | |||
- http | |||
basePath: /_matrix/push/v1 | |||
basePath: /_matrix/push/%PUSH_GATEWAY_MAJOR_VERSION% |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
meta/releasing_a_spec.md
Outdated
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
meta/releasing_a_spec.md
Outdated
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). |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
meta/releasing_a_spec.md
Outdated
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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://github.com/matrix-org/internal-config/wiki/Specification; either way, I think this makes that redundant and it should be taken away once this is merged.
There was a problem hiding this comment.
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...
meta/releasing_a_spec.md
Outdated
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. |
There was a problem hiding this comment.
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?
meta/releasing_a_spec.md
Outdated
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). |
There was a problem hiding this comment.
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.
specification/push_gateway.rst
Outdated
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>`_ |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
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
There was a problem hiding this 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
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: