There are some atypical development and release procedures in use with this repository:
- The currently released version of this repository lives in parallel in the
main
branche of pantheon-upstreams/wordpress-composer-managed.
pantheon-upstreams/wordpress-composer-managed
closely mirrors the development repository at pantheon-systems/wordpress-composer-managed and is automatically updated by a CircleCI process. - Changes are made by submitting a PR against the
default
branch ofpantheon-systems/wordpress-composer-managed
. - Merging a PR to
default
does not create a new release ofpantheon-upstreams/wordpress-composer-managed
. This allows us to batch more than one relatively small change into a single new "release" such that the number of separate update events appearing on customer dashboards is more controlled.
- Commits modifying the
.circleci
directory,devops
directory or this file are omitted frompantheon-upstreams
. This prevents downstream Pantheon sites from being littered with our internal CI configuration, and allows us to enhance CI without generating irrelevant site updates. However, it means you must not create commits that modify both .circleci and other files in the same commit. - Commit authors are rewritten to
Pantheon Automation <[email protected]>
as a request from Product. The author names appear on the dashboard and this creates a more professional presentation.
- Update CHANGELOG.md. In the past, the copy has been created in consultation with the product owner.
- Ensure the commit message for the last commit in this release says what we want to have appearing on the
dashboard as an available update. See CORE-2258 for
the inaugural example of such a commit message. All changes are committed to
pantheon-upstreams
as a single commit, and the message that is used for it is the one from the last commit.- Typically the CHANGELOG.md commit is the last one and so is the one whose commit message should be wordsmithed.
- Trigger the new release to
pantheon-upstreams
by--ff-only
-mergingdefault
intorelease
and pushing the result:A CircleCI job causes the release to be created.git fetch git checkout release && git pull git merge --ff-only origin/default git push origin release
- The
default
branch does not accept merge commits. This is because this branch serves as the staging area for commits queued to be released to site upstreams, and the commit messages appear on customer dashboards as available updates. PreventingMerged "[CORE-1234] Added widget to branch default [#62]"
-style commit messages enhances the user experience.
- All branches do not accept pushes, except by GitHub user
pantheon-circleci
and owners of thepantheon-upstreams
organization, because GitHub hardcodes those users as able to push. This is just to avoid accidental direct pushes, because commits to the upstreams repo are supposed to be made only from CircleCI as part of an intentional release with the commit authors rewritten.