Skip to content

Comments

docs: Release process script and documentation#151

Merged
dcalhoun merged 9 commits intotrunkfrom
docs/release-process
Jun 27, 2025
Merged

docs: Release process script and documentation#151
dcalhoun merged 9 commits intotrunkfrom
docs/release-process

Conversation

@dcalhoun
Copy link
Member

What?

Improve the release process.

Why?

So far, the process is manual and undocumented, making it difficult for others to contribute.

How?

Add and document a release script.

The trunk branch is used for simplicity while iOS builds are still manually created and committed. Long term, we should perform that with CI tasks and remove the ability for repository admins from pushing directly to origin/trunk.

Testing Instructions

Test the script. This is expected to throw an error due to not running on the trunk branch.

make release VERSION_TYPE=minor DRY_RUN=true

Accessibility Testing Instructions

N/A, no user-facing changes.

Screenshots or screencast

N/A, no user-facing changes.

@dcalhoun dcalhoun added the [Type] Build Tooling Issues or PRs related to build tooling label Jun 27, 2025
@dcalhoun dcalhoun changed the title docs: Release process documentation and script docs: Release process script and documentation Jun 27, 2025
@dcalhoun dcalhoun marked this pull request as ready for review June 27, 2025 17:25
@dcalhoun dcalhoun requested a review from oguzkocer June 27, 2025 17:25
Copy link
Contributor

@oguzkocer oguzkocer left a comment

Choose a reason for hiding this comment

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

I skimmed through the changes and left a suggestion, but I am fine to merge it as is since it's still an improvement over a manual process.

Just for future reference, we have most of this already built in release-toolkit project, using fastlane. All apps are released with this process and it's constantly being improved by wordpress-mobile/apps-infrastructure team. It'd have been great to follow the same path or even make a request to their team to set up automated releases as they can do this type of thing relatively quickly. Now that it's already implemented this way, I don't want to block it, but I can see us removing it in not so distant future.

2. **Release process:**
- Increments the version number in `package.json`
- Builds the project using `make build`
- Commits all changes with the version number as the commit message
Copy link
Contributor

Choose a reason for hiding this comment

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

If it's going to make commits, it probably shouldn't do it while we are on trunk. The way this is handled for app releases is that the scripts would create a release/x.y.z branch and make the changes there. The tag is also created from this branch. Once it's done, it'd create a PR against trunk.

Copy link
Member Author

@dcalhoun dcalhoun Jun 27, 2025

Choose a reason for hiding this comment

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

If it's going to make commits, it probably shouldn't do it while we are on trunk. The way this is handled for app releases is that the scripts would create a release/x.y.z branch and make the changes there. The tag is also created from this branch. Once it's done, it'd create a PR against trunk.

I agree. I consider the use of the trunk branch for this as a temporary solution—ideally, a short one—for avoiding PRs that create a large amount of noise due to the current VCS tracking of iOS build output.

This is what I attempted to convey in the PR description:

The trunk branch is used for simplicity while iOS builds are still manually created and committed. Long term, we should perform that with CI tasks and remove the ability for repository admins from pushing directly to origin/trunk.

@dcalhoun
Copy link
Member Author

Just for future reference, we have most of this already built in release-toolkit project, using fastlane. All apps are released with this process and it's constantly being improved by wordpress-mobile/apps-infrastructure team. It'd have been great to follow the same path or even make a request to their team to set up automated releases as they can do this type of thing relatively quickly. Now that it's already implemented this way, I don't want to block it, but I can see us removing it in not so distant future.

Makes complete sense. I agree we should embrace existing tooling.

For context, my primary motivation for opening this PR was documenting the process so that I am not the only person with the knowledge. I then realized I could use an LLM to generate a script from my documentation very quickly. Hence, the script. 🙂

I'll merge this with the understanding it should be replaced sooner rather than later.

@dcalhoun dcalhoun merged commit ce3658a into trunk Jun 27, 2025
11 checks passed
@dcalhoun dcalhoun deleted the docs/release-process branch June 27, 2025 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Type] Build Tooling Issues or PRs related to build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants