-
Notifications
You must be signed in to change notification settings - Fork 1.5k
PHPORM-83: Document release process #2604
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
Conversation
|
||
The following steps outline the release process for both new minor versions (e.g. | ||
releasing the `master` branch as X.Y.0) and patch versions (e.g. releasing the | ||
`vX.Y` branch as X.Y.Z). |
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.
Current branches use a naming strategy without a leading v
(i.e. 3.9
). In the interest of consistency, I'd change this to v4.0
starting with the 4.0 release series.
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's mostly inconsistent with previous versions and other major projects that don't use the v
leading the version branches (laravel, symfony, doctrine).
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.
IIRC, "v" prefixing was used to clearly distinguish branches from tags. I assume the ".x" suffix used by Laravel and Doctrine accomplishes the same thing.
That said, our tags always consist of three parts (e.g. X.Y.Z
), so the real benefit here might just be removing the need to context switch between our various repositories.
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.
Okay, I guess it doesn't really matter. Consistency across our projects is the most important thing.
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.
Correct, that was the main motivation to do this.
merge the ensuing release commits up to master with `--strategy=ours`, which | ||
will ignore changes from the merged commits. | ||
|
||
## Update composer.json |
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.
No CI changes at the moment since we most likely won't be in step with PHPLIB and PHPC releases.
Create a tag for the release and push: | ||
|
||
```console | ||
$ git tag -a -m "Release X.Y.Z" X.Y.Z |
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.
Keeping -a
for the time being, but we can consider changing this to -s
to enforce signed tags.
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 OK with signing the tag.
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 already have a DRIVERS epic and tracking tickets for this. See PHPC-1584. I'd propose creating a PHPORM ticket and linking that up.
|
||
**Documentation** | ||
|
||
Documentation for this library may be found in the [Readme](https://github.com/mongodb/laravel-mongodb/blob/$VERSION/README.md). |
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 different from PHPLIB, as the documentation is not hosted on https://docs.mongodb.com, but rather in the readme file (and later in a docs file). I figured it was best to use the tag name in the URL to ensure that the link always sends people to the documentation for the released version.
|
||
The following steps outline the release process for both new minor versions (e.g. | ||
releasing the `master` branch as X.Y.0) and patch versions (e.g. releasing the | ||
`vX.Y` branch as X.Y.Z). |
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's mostly inconsistent with previous versions and other major projects that don't use the v
leading the version branches (laravel, symfony, doctrine).
e63dcec
to
e2bd33f
Compare
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.
A few suggestions and no objections.
CONTRIBUTING.md
Outdated
**Happy coding**! |
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.
**Happy coding**! | |
Happy coding! | |
Bold formatting above makes sense to distinguish the text from the remainder but I don't think it adds anything here. Let me know if this is enough bike-shedding for you. I can go deeper.
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.
Done - I didn't want to bother to update the contribution docs too much here, but I believe a second pass in the near future is in order.
|
||
The following steps outline the release process for both new minor versions (e.g. | ||
releasing the `master` branch as X.Y.0) and patch versions (e.g. releasing the | ||
`vX.Y` branch as X.Y.Z). |
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.
IIRC, "v" prefixing was used to clearly distinguish branches from tags. I assume the ".x" suffix used by Laravel and Doctrine accomplishes the same thing.
That said, our tags always consist of three parts (e.g. X.Y.Z
), so the real benefit here might just be removing the need to context switch between our various repositories.
* [$CONTRIBUTOR_NAME](https://github.com/$GITHUB_USERNAME) | ||
``` | ||
|
||
Release announcements should also be posted in the [MongoDB Product & Driver Announcements: Driver Releases](https://mongodb.com/community/forums/tags/c/announcements/driver-releases/110/php) forum and shared on Twitter. |
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.
Do you want to remove this? Or is it consistent with how other languages announce their extra-driver releases (e.g. Ruby announcing Mongoid)?
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.
Ruby does indeed post these for Mongoid as well. IIRC the announcements should cover all products maintained by the DBX team, hence the inclusion here.
PHPORM-83
This PR adds a
RELEASE.md
file, which is mostly copied over from PHPLIB and adjusted to account for the minor differences in projects.