Skip to content

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

Merged
merged 4 commits into from
Sep 8, 2023

Conversation

alcaeus
Copy link
Member

@alcaeus alcaeus commented Sep 6, 2023

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.

@alcaeus alcaeus requested review from jmikola and GromNaN September 6, 2023 13:15
@alcaeus alcaeus self-assigned this Sep 6, 2023

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).
Copy link
Member Author

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.

Copy link
Member

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).

Copy link
Member

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.

Copy link
Member

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.

Copy link
Member Author

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
Copy link
Member Author

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
Copy link
Member Author

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.

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 OK with signing the tag.

Copy link
Member

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).
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 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).
Copy link
Member

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).

@alcaeus alcaeus force-pushed the phporm-83-release-guidelines branch from e63dcec to e2bd33f Compare September 7, 2023 07:15
Copy link
Member

@jmikola jmikola left a 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**!
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
**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.

Copy link
Member Author

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).
Copy link
Member

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.
Copy link
Member

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)?

Copy link
Member Author

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.

@alcaeus alcaeus merged commit f5f93a3 into mongodb:master Sep 8, 2023
@alcaeus alcaeus deleted the phporm-83-release-guidelines branch September 8, 2023 13:10
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.

3 participants