Skip to content
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

T365569: release 3.0.0 (WBS Deploy 3.0.0) #708

Merged
merged 15 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 13 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,47 +134,23 @@ For more information on testing, see the [README](./test/README.md).

## Release process

WBS Deployment Kit and WBS Service Images are released using this repository. The process involves defining all upstream component versions to be used, building service images, testing all the images together and finally publishing them.
WBS Deploy and WBS Images are released using this repository. The process involves updating all upstream component versions to be used, building images, testing all the images together and finally publishing them.

### Release checklist Phabricator template

```
[ ] **Pending issues as subtasks**. If any open tickets need to be resolved and/or related changes need to be included in the release, add them as subtasks of this release ticket. (If this release was triggered by a MediaWiki bugfix release, consider only including bug/security issue fixes, and avoid breaking changes.)

[ ] **Create branches**

- **For bugfix releases**
- **Create a release preparation branch.** The release branch itself should already exist, e.g., `mw-1.40`. Create a release preparation branch off the existing release branch. Choose a name for the release prep branch like `releaseprep-1.40.2`. (Don't name it `mw-*`! That's the naming convention for release branches.)
- **Backport changes from main only if absolutely necessary.** Bugfix releases should contain as few changes as possible. Make sure that the `variables.env` file is not changed by incoming changes from main.
- **For major releases**
- **Create a new release branch off main,** e.g., `mw-1.44`. This branch is now equivalent to main. It will hold all bugfix releases for that major version in the future.
- **Create a release preparation branch off that release branch.** e.g., `releaseprep-1.44.0`. This second branch is meant for preparing the first release on that release branch.

[ ] **Update `variables.env`** on the release preparation branch. You can find further instructions in the [variables.env](https://github.com/wmde/wikibase-release-pipeline/blob/main/variables.env) file itself.

[ ] **Update `CHANGES.md`** on the release preparation branch. Add a section following the example of previous releases: update the different values. The spec will eventually point to the release tag's `variables.env` once the release is published.

[ ] **Create a release PR** that merges the release preparation branch, e.g., `releaseprep-1.44.0`, into the corresponding release branch (`mw-1.44` or equivalent).

[ ] **CI should be green**. Tests may need adjustments in order to pass for the new version. Bugfix releases are likely to pass without any adjustments.

[ ] **Do a sanity check by manually reviewing a running instance**. This can be done locally on your machine or by [deploying](https://docs.google.com/document/d/1BGxcqt9CHbb-8dfWjK-lZmNoNcD08urb23JqtgoVTeg/edit#heading=h.6a8ctlepqn5d) to the [test system](https://wikibase-product-testing.wmcloud.org). You can find prebuilt images from your PR on the [GitHub Container Registry](https://github.com/wmde/wikibase-release-pipeline/pkgs/container/wikibase%2Fwikibase) tagged with `dev-BRANCHNAME`, e.g., `dev-releaseprep-wmde.17`. This tag can be referenced to set up an instance running your PR version.

[ ] **Get two reviews on the release preparation PR** so that it is technically ready to be merged. Merging will eventually trigger the release to Docker Hub.

[ ] **Prepare communication** by creating a [release announcement](https://drive.google.com/drive/folders/1kHhKKwHlwq_P9x4j8-UnzV72yq0AYpsZ) using a template.

[ ] **Coordinate with ComCom on timing the publication of the release**. Talk to SCoT (ComCom, technical writer) about this.

[ ] **Publish the release** by merging the release preparation branch into the release branch. **ATTENTION: This will automatically push images to Docker Hub, thereby releasng the new version!**

[ ] **Update the [Docker install instructions](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md)** to reflect changes in the latest version. If you were making a bugfix release for an older release, this can be skipped.

[ ] **Make sure the communication is sent.**

[ ] **Update the deploy directory.** ☠️☠️☠️ Currently, for this to happen, we need to merge another PR to the release branch. This PR's only change should be making the `deploy` directory reference the new version. For this PR's pipeline to properly run, before merging, you need to manually delete from the git repo the tag of the version you just released. Merging this deploy directory update PR is technically a re-release. Hopefully this weirdness will be fixed soon.

[ ] **Merge back to main**. Now is the time to merge anything you want back to main on the release branch.
- [ ] **Pending issues as subtasks**. If any open tickets need to be resolved and/or related changes need to be included in the release, add them as subtasks of this release ticket.
- [ ] **To release breaking changes** as a new major version of WBS Deploy, create a new branch called `deploy-X`, where `X` is the new major version.
- [ ] **Create a release PR** with the following changes targeting the appropriate `deploy-X` release branch.
- [ ] **Update `variables.env`** by adjusting WBS versions and upstream versions. You can find further instructions in the [variables.env](https://github.com/wmde/wikibase-release-pipeline/blob/main/variables.env) file itself.
- [ ] **Update `CHANGES.md`** by adding a section following the example of previous releases.
- [ ] **CI should be green**. Tests may need adjustments in order to pass for the new version. Minor releases are likely to pass without any adjustments. Try re-running tests on failure, some specs could be flaky.
- [ ] **Do a sanity check by manually reviewing a running instance using your build**. This can be done locally on your machine or on a public server. You can find built images from your release PR on the [GitHub Container Registry](https://github.com/wmde/wikibase-release-pipeline/pkgs/container/wikibase%2Fwikibase) tagged with `dev-BRANCHNAME`, e.g., `dev-releaseprep`. This tag can be used to set up an instance running your release PR version.
- [ ] **Get two reviews on the release PR** so that it is ready to be merged. **Merging to `deploy-X` later will trigger the release to Docker Hub.** Do not merge yet!
- [ ] **Prepare communication** by creating a [release announcement](https://drive.google.com/drive/folders/1kHhKKwHlwq_P9x4j8-UnzV72yq0AYpsZ) using a template.
- [ ] **Coordinate with ComCom on timing the publication of the release**. Talk to SCoT (ComCom, technical writer) about this.
- [ ] **Publish the release** by merging the release branch into the `deploy-X` branch. **ATTENTION: This will automatically push images to Docker Hub!**
- [ ] **Merge back to main in a separate PR** from `deploy-X` to have adjustments to `CHANGES.md` and alike available on `main` too. Changes from `variables.env` should only be taken from a release of the latest version so that `main` always references the build of the latest components.

You`re done. **Congratulations!**
```
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -245,3 +245,4 @@ done
if ! $build_target_set; then
build_all
fi

lorenjohnson marked this conversation as resolved.
Show resolved Hide resolved
21 changes: 21 additions & 0 deletions build/Elasticsearch/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite Elasticsearch Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/Elasticsearch/README.md)
- July 2024 [2.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/Elasticsearch/README.md)
- July 2024 [1.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/Elasticsearch/README.md)

## Legacy versions

- 17 April 2024 [7.10.2-wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/Elasticsearch/README.md)
- 17 April 2024 [7.10.2-wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/Elasticsearch/README.md)
- 29 April 2024 [7.10.2-wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/Elasticsearch/README.md)
21 changes: 21 additions & 0 deletions build/QuickStatements/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite QuickStatements Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/QuickStatements/README.md)
- July 2024 [2.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/QuickStatements/README.md)
- July 2024 [1.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/QuickStatements/README.md)

## Legacy versions

- 17 April 2024 [wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/QuickStatements/README.md)
- 17 April 2024 [wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/QuickStatements/README.md)
- 29 April 2024 [wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/QuickStatements/README.md)
21 changes: 21 additions & 0 deletions build/WDQS-frontend/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite WDQS-Frontend Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/WDQS-frontend/README.md)
- July 2024 [2.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/WDQS-frontend/README.md)
- July 2024 [1.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/WDQS-frontend/README.md)

## Legacy versions

- 17 April 2024 [wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/WDQS-frontend/README.md)
- 17 April 2024 [wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/WDQS-frontend/README.md)
- 29 April 2024 [wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/WDQS-frontend/README.md)
21 changes: 21 additions & 0 deletions build/WDQS-proxy/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite WDQS-Proxy Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/WDQS-proxy/README.md)
- July 2024 [2.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/WDQS-proxy/README.md)
- July 2024 [1.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/WDQS-proxy/README.md)

## Legacy versions

- 17 April 2024 [wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/WDQS-proxy/README.md)
- 17 April 2024 [wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/WDQS-proxy/README.md)
- 29 April 2024 [wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/WDQS-proxy/README.md)
21 changes: 21 additions & 0 deletions build/WDQS/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite WDQS Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/WDQS/README.md)
- July 2024 [2.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/WDQS/README.md)
- July 2024 [1.x.x](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/WDQS/README.md)

## Legacy versions

- 17 April 2024 [0.3.137-wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/WDQS/README.md)
- 17 April 2024 [0.3.137-wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/WDQS/README.md)
- 29 April 2024 [0.3.135-wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/WDQS/README.md)
21 changes: 21 additions & 0 deletions build/Wikibase/dockerhub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Wikibase Suite Wikibase Image

Wikibase Suite (WBS) eases self-hosting [Wikibase](https://wikiba.se) in production, allowing you to maintain a knowledge graph similar to [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page).

If you want to host your own WBS instance, head over to the [WBS Deploy documentation](https://github.com/wmde/wikibase-release-pipeline/blob/main/deploy/README.md).

# Documentation

Version specific documentation for this image is hosted in our [git repository](https://github.com/wmde/wikibase-release-pipeline/).

## Currently supported versions

- July 2024 [3.x.x on MediaWiki 1.42](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-3/build/Wikibase/README.md)
- July 2024 [2.x.x on MediaWiki 1.41](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-2/build/Wikibase/README.md)
- July 2024 [1.x.x on MediaWiki 1.39](https://github.com/wmde/wikibase-release-pipeline/blob/deploy-1/build/Wikibase/README.md)

## Legacy versions

- 17 April 2024 [1.41.1-wmde.20](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.20/build/Wikibase/README.md)
- 17 April 2024 [1.40.3-wmde.19](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.19/build/Wikibase/README.md)
- 29 April 2024 [1.39.7-wmde.18](https://github.com/wmde/wikibase-release-pipeline/blob/wmde.18/build/Wikibase/README.md)
2 changes: 1 addition & 1 deletion deploy/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ services:
depends_on:
wikibase:
condition: service_healthy
restart: always
restart: unless-stopped
volumes_from:
- wikibase

Expand Down
7 changes: 7 additions & 0 deletions test/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"npm-run-all": "^4.1.5",
"prettier": "^3.2.5",
"prettier-plugin-organize-imports": "^3.2.4",
"semver-parser": "^4.1.6",
"stylelint-config-wikimedia": "0.16.1",
"ts-node": "^10.9.2",
"tslib": "^2.6.2",
Expand Down
40 changes: 24 additions & 16 deletions test/specs/repo/extensions/universal-language-selector.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { parseSemVer } from 'semver-parser';
import page from '../../../helpers/pages/page.js';

describe( 'UniversalLanguageSelector', function () {
Expand All @@ -8,23 +9,30 @@ describe( 'UniversalLanguageSelector', function () {
it( 'Should be able to see the language selector menu', async function () {
await page.open( '' );

await $( '#searchform input' ).click();
// MediaWiki 1.39 default skin sets up language selector differently than subsequent versions,
// this exception can be removed once MW 1.39 is no longer supported.
if ( parseSemVer( testEnv.vars.MEDIAWIKI_VERSION ).minor === 39 ) {
await $( '#searchInput' ).click();
await $( '.imeselector' ).click();

// work around lang selector not showing up the first time
// blur the search bar
await $( '.page-Main_Page' ).click();
// focus search bar again, lang selector should be there now
await $( '#searchform input' ).click();
await expect( $( '.imeselector-menu h3' ) ).toHaveText( 'English' );
} else {
await $( '#searchform input' ).click();
// work around lang selector not showing up the first time
// blur the search bar
await $( '.page-Main_Page' ).click();
// focus search bar again, lang selector should be there now
await $( '#searchform input' ).click();
await $$( '.imeselector' )
.filter( async ( selector ) => selector.isClickable() )[ 0 ]
.click();

await $$( '.imeselector' )
.filter( async ( selector ) => selector.isClickable() )[ 0 ]
.click();

// We need to use getHTML(). If an element isn't interactable
// getText() returns an empty string.
// https://webdriver.io/docs/api/element/getText/
await expect(
$( 'div.imeselector-menu h3.ime-list-title' ).getHTML()
).resolves.toMatch( /English/ );
// We need to use getHTML(). If an element isn't interactable
// getText() returns an empty string.
// https://webdriver.io/docs/api/element/getText/
await expect(
$( 'div.imeselector-menu h3.ime-list-title' ).getHTML()
).resolves.toMatch( /English/ );
}
} );
} );
Loading
Loading