-
Notifications
You must be signed in to change notification settings - Fork 33
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
T349803, T369642, T352252, T368382: nx monorepo setup for versioning, and CHANGELOG generation #735
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…EDIAWIKI_VERSION)
lorenjohnson
changed the base branch from
main
to
docker-compose-building-tagging--extended
July 18, 2024 13:21
lorenjohnson
changed the title
Nx monorepo non js
nx monorepo setup for building, versioning, and CHANGELOG generation
Jul 18, 2024
lorenjohnson
changed the title
nx monorepo setup for building, versioning, and CHANGELOG generation
T352252, nx monorepo setup for versioning, and CHANGELOG generation
Jul 18, 2024
lorenjohnson
changed the title
T352252, nx monorepo setup for versioning, and CHANGELOG generation
T369642, T352252: nx monorepo setup for versioning, and CHANGELOG generation
Jul 18, 2024
lorenjohnson
changed the title
T369642, T352252: nx monorepo setup for versioning, and CHANGELOG generation
T349803, T369642, T352252: nx monorepo setup for versioning, and CHANGELOG generation
Jul 18, 2024
lorenjohnson
changed the title
T349803, T369642, T352252: nx monorepo setup for versioning, and CHANGELOG generation
T349803, T369642, T352252, T368382: nx monorepo setup for versioning, and CHANGELOG generation
Jul 18, 2024
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
2 times, most recently
from
July 18, 2024 15:58
6f17df7
to
28a5fd8
Compare
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
from
August 18, 2024 05:10
9622f44
to
a080662
Compare
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
from
August 18, 2024 05:15
a080662
to
744d0b5
Compare
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
3 times, most recently
from
August 18, 2024 15:11
1b991cf
to
62f3ae5
Compare
…of Docker (adding NX_RUN_LOCAL option)
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
from
August 18, 2024 15:50
62f3ae5
to
98da202
Compare
lorenjohnson
force-pushed
the
nx-monorepo-non-js
branch
from
August 19, 2024 15:20
062f500
to
cdf1145
Compare
rti
reviewed
Sep 2, 2024
rti
reviewed
Sep 3, 2024
Co-authored-by: rti <[email protected]>
rti
reviewed
Sep 3, 2024
rti
reviewed
Sep 3, 2024
rti
reviewed
Sep 3, 2024
rti
reviewed
Sep 3, 2024
Co-authored-by: rti <[email protected]>
rti
approved these changes
Sep 3, 2024
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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Remaining work:
- [ ] Update "Release checklist" / documentation accordinglyIncludes work detailed in: #733.
Addresses partially or completely all of these Phab tickets:
Implementation summary:
Note: Initial work started in #731 and #733. These PRs can be re-opened, reviewed, and merged before this PR if it is helpful for review.
Uses nx / nx release for managing all the steps of release up until actually pushing things to Docker Hub, including:
package.json
in each project)CHANGELOG.md
entries in each project from commits between previous version and the currentThere are several more things we can do here, including integrating this into Github Actions, but this is the starting place which gives us what we need to manually generate a consistent and correct version of a project (either an image or deploy) independently along with an automatically generated
CHANGELOG.md
entries.While this uses the "non-Javascript" version of the nx installation to keep the noise down a bit, it does still require node and npm to be installed on the local dev machine. A Docker'ized version of this setup is probably possible, but may be adding a lot of extra friction (or not), TBD. For now I'm focused on getting the configuration correct.
Note: The names of the mixed-case
build/*
directories have been made all lowercase to match the name of the image that goes up on Dockerhub. Because of how git handles case changes you will need torm -rf build
within the root of the repository before you will be able to successfully check out this branch. The same in reverse...Adoption:
Try it out!:
./nx release --first-release --dry-run
and look carefully at the log of the various things that would happen to understand how this all works.Versioning will rely on our tags. Recommended: Removing all your local git tags and re-pull the current set of tags from the Github remote:
Versions are automatically derived according to commits messages. To make sure this works correctly make commit messages using Conventional Commits prefixes (
feat:
,fix:
, andchore:
), and optionally but preferably with the product name scope (feat(wikibase):
, etc). You could choose to forego this in development as we rely upon squash commits, but it is crucial that the squash commit message uses this format. Breaking Changes need to have "BREAKING CHANGE: ` in the commit footer message. Please read through and get familiar with Conventional Commits here: https://www.conventionalcommits.org/en/v1.0.0. *One engineer carefully make the first pre-release series using this sequence for each project, initially with
--dry-run
, but remove and go ahead and make the release once you're satisfied with the results:For example, to see how the next pre-release of wikibase would be setup: