Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/edge' into add-py-environments-edge
Browse files Browse the repository at this point in the history
* origin/edge:
  fix(api): ot3controller should utilize `check_ready_for_movement` (#11752)
  chore(docs): updating Google Tag Manager on docs subdomain #11855
  refactor(app): add gripper attach, detach, and calibrate user-flow logic and skeletons (#11826)
  chore(build): fix push targets in api and s-d (#11879)
  fix(app): moveToLocation should be moveToMaintenancePosition (#11878)
  refactor(api): implement new Deck dependencies (#11853)
  refactor(api): implement new Deck collaborations (#11844)
  feat(app): create modals and add steps for 96 channel attach and detach (#11815)
  chore(build): Derive application versions from git (#11863)
  refactor(api): add support for Well.has_tip to the engine core (#11870)
  refactor(app, shared-data): calibration/moveToLocation to calibration/moveToMaintenancePosition (#11849)
  test(engine): add missing module_view test (#11872)
  • Loading branch information
y3rsh committed Dec 14, 2022
2 parents 79f29db + 2432eee commit 645b257
Show file tree
Hide file tree
Showing 196 changed files with 5,203 additions and 6,677 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ module.exports = {
'@typescript-eslint/consistent-type-assertions': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',

'node/handle-callback-err': 'off',
// TODO(mc, 2021-01-29): fix these and remove warning overrides
'jest/no-deprecated-functions': 'warn',
'jest/valid-title': 'warn',
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/api-test-lint-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
id: 'setup'
- uses: './.github/actions/python/lint'
Expand All @@ -71,6 +73,8 @@ jobs:
runs-on: '${{ matrix.os }}'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: setup python environment Windows and Mac
if: matrix.os != 'ubuntu-22.04'
uses: './.github/actions/python/setup-single-environment'
Expand Down Expand Up @@ -120,6 +124,8 @@ jobs:
if: github.event_name == 'push'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
- name: 'set complex environment variables'
uses: actions/[email protected]
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/app-test-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: 'actions/setup-node@v3'
with:
node-version: '16'
Expand Down Expand Up @@ -150,6 +152,7 @@ jobs:
APPLE_ID: ${{ secrets.OT_APP_APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.OT_APP_APPLE_ID_PASSWORD }}
HOST_PYTHON: python
OPENTRONS_PROJECT: robot-stack
run: |
make -C app-shell dist-${{ matrix.os }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docs-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
- name: 'set complex environment variables'
uses: actions/[email protected]
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/g-code-confirm-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup'
with:
project: 'g-code-testing'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/g-code-testing-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup'
with:
project: g-code-testing
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/hardware-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:
steps:
- name: Checkout opentrons repo
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'

# TODO(amit, 2022-03-08): Enable once ot3 emulation is ready
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/hardware-testing-protocols.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ jobs:
steps:
- name: Checkout opentrons repo
uses: 'actions/checkout@v3'
fetch-depth: 0

- name: Setup Project
uses: './.github/actions/python/setup'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ll-test-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ jobs:
if: github.event_name != 'pull_request'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: 'actions/setup-node@v3'
with:
node-version: '16'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/notify-server-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
id: 'setup'
- uses: './.github/actions/python/lint'
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pd-test-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ jobs:
runs-on: '${{ matrix.os }}'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: 'actions/setup-node@v3'
with:
node-version: '16'
Expand Down Expand Up @@ -112,6 +114,8 @@ jobs:
if: github.event_name != 'pull_request'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: 'actions/setup-node@v3'
with:
node-version: '16'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/robot-server-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
id: 'setup'
- uses: './.github/actions/python/lint'
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/shared-data-test-lint-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
id: 'setup'
- uses: './.github/actions/python/lint'
Expand All @@ -65,6 +67,8 @@ jobs:
runs-on: '${{ matrix.os }}'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: 'install udev for usb-detection'
if: startsWith(matrix.os, 'ubuntu')
run: sudo apt-get update && sudo apt-get install libudev-dev
Expand Down Expand Up @@ -139,6 +143,8 @@ jobs:
if: github.event_name == 'push'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: 'install udev for usb-detection'
run: sudo apt-get update && sudo apt-get install libudev-dev
- uses: './.github/actions/python/setup-all-environments'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/start-ot3-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ jobs:
inputs: |
{
"oe-core-ref": "-",
"monorepo-ref": "${{ github.head_ref }}",
"monorepo-ref": "refs/heads/${{ github.head_ref }}",
"infra-stage": "stage-prod"
}
2 changes: 2 additions & 0 deletions .github/workflows/update-server-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup-all-environments'
- name: Lint
run: make -C update-server lint
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/usb-bridge-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
runs-on: 'ubuntu-22.04'
steps:
- uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- uses: './.github/actions/python/setup'
with:
project: usb-bridge
Expand Down
106 changes: 45 additions & 61 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
Below you will find instructions for release processes for projects within our monorepo. The main goal of our process is to
neatly document any changes that may happen during QA, such as bug fixes, and separate production concerns from our development branch.

## Releasing Robot Software Stack
## Releasing Robot Software Stacks

Our release process is still a work-in-progress. The app and API projects are currently versioned together to ensure interoperability.

1. Ensure you have a buildroot release created in GitHub with all the changes you want in this release, if any. If there are no buildroot changes, you don't have to create a new release; the last tag in buildroot is used for release builds.
1. Ensure you have a release created in GitHub for the robot stack you're releasing - buildroot for ot-2, oe-core for ot-3 - with all the changes you want in this release, if any. If there are no system changes, you don't have to create a new release; the last tag in the system repo is used for release builds.
2. Checkout `edge` and make a release branch, without any new changes. The branch name should match `release_*` to make `make bump` usage easier and make it clear this is a release.

```shell
Expand All @@ -18,38 +18,27 @@ git push --set-upstream origin release_${version}
```

3. Open a PR into `release` for your empty release branch.
4. Create a new branch for your initial version bump:
4. Seek input on the user-facing release notes at `app-shell/build/release-notes.md` to add the new notes for the app and user-facing release notes at `api/release-notes.md` to add the new notes for the robot software. These changes should get wordsmithing approval and use a `chore` merge commit. This can happen in parallel, but should be done before the alpha process concludes.

```shell
git checkout -b chore_bump-${version}
```
5. Create a tag using `make bump` for the new version. See the notes on [`make bump` usage](#make-bump-usage) below. Since this is entering qa, you'll want to bump the version to the target release version with an `-alpha.0` prerelease tag.

5. In the bump branch, bump the version to the appropriate alpha (read [the section below](#make-bump-usage) carefully)
6. Inspect version bumps
7. Edit the user-facing changelog at `app-shell/build/release-notes.md` to add the new notes for the app
8. Edit the user-facing changelog at `api/release-notes.md` to add the new notes for the robot software
9. `git add --all`
10. `git cz`
6. Review the tag with `git show ${project}@${version}` (or `git show v${version}` for the robot-stack project). If it points to the commit you meant, push the tag - this starts the build process. This is a release candidate that will undergo QA.

- Type: `chore`
- Scope: `release`
- Message: `${version}`
```shell
git push origin ${project}@${version}
```

11. Gather reviews on release notes until everybody is satisfied. Check the docs at sandbox.docs.opentrons.com/release\_\${version}
12. Once your chore bump branch is ready, squash merge the `chore_bump-${version}` into the `release_${version}` branch.
13. Tag the release branch as the version you just bumped to; this is a release candidate that will undergo QA:
or

```shell
git tag -a v${version} -m 'chore(release): ${version}'
git push origin v${version}
```

Changelogs for the release are automatically generated when the tag is pushed and sent to the release page in github.

14. Run QA on this release. If issues are found, create PRs targeted on the release branch. To create new alpha releases, repeat steps 4-14.
15. Once QA is a pass, bump to the target release version (review [the section below](#make-bump-usage) again)
7. Run QA on this release. If issues are found, create PRs targeted on the release branch. To create new alpha releases, repeat steps 4-7.

16. Do a NORMAL MERGE into `release`. Do NOT squash or rebase. This should be done from your local command line (and will succeed as long as the release PR is reviewed and status checks have passed):
8. Once QA is a pass, do a NORMAL MERGE into `release`. Do NOT squash or rebase. This should be done from your local command line (and will succeed as long as the release PR is reviewed and status checks have passed):

```shell
# note: make sure you have pulled the latest changes for branch
Expand All @@ -59,7 +48,7 @@ git merge --ff-only release_${version}
git push origin release
```

17. Tag the release:
10. Run [`make bump](#make-bump-usage) to tag the release and start release builds:

```shell
git tag -a v${version} -m 'chore(release): ${version}'
Expand All @@ -68,20 +57,20 @@ git push origin v${version}

The tag push will kick off release builds and create a release page where those builds and automatically generated in-depth changelogs will be posted.

18. Open a PR of `release` into `edge`. Give the PR a name like `chore(release): Merge changes from ${version} into edge`. Once it passes, on the command line merge it into `edge`:
11. Open a PR of `release` into `edge`. Give the PR a name like `chore(release): Merge changes from ${version} into edge`. Once it passes, on the command line merge it into `edge`:

```shell
git checkout edge
git pull
git merge --no-ff release
```

19. Use the PR title for the merge commit title. You can then `git push origin edge`, which will succeed as ong as the PR is approved and status checks pass.
20. Release the docs for this version (see below under Releasing Web Projects)
12. Use the PR title for the merge commit title. You can then `git push origin edge`, which will succeed as ong as the PR is approved and status checks pass.
13. Release the docs for this version (see below under Releasing Web Projects)

## Releasing Robot Software Stack Hotfixes

1. Ensure you have a buildroot release created in GitHub with all the changes you want to see, if any. If there aren't any, you don't have to create a new buildroot release; by default, the last tag is used for release builds.
1. Ensure you have a system release created in GitHub (buildroot for OT2, oe-core for OT3) with all the changes you want to see, if any. If there aren't any, you don't have to create a new release; by default, the last tag is used for release builds.
2. Checkout `release` and make a release branch, without any new changes. The branch name should match `hotfix_*` to make it clear this is a hotfix, and make `make bump` usage simpler.

```shell
Expand All @@ -92,35 +81,15 @@ git push --set-upstream origin hotfix_${version}
```

3. Target the hotfix PRs on this branch.
4. Once the fixes have been merged into the original hotfix branch, create a new branch for your initial version bump:
4. Wordsmith the release notes in `app-shell/build/release-notes.md` and `api/release-notes.md` in a PR that uses the `chore` commit type.
5. Once the fixes and release notes have been merged into the hotfix branch, bump to an alpha version to begin qa using [`make bump`](#make-bump-usage).
6. Inspect the created tag and then push it:

```shell
git checkout -b chore_bump-${version}
```

5. In the bump branch, bump the version to the appropriate alpha (read [the section below](#make-bump-usage) carefully)
6. Inspect version bumps
7. Edit the user-facing changelog at `app-shell/build/release-notes.md` to add the new notes for the app
8. Edit the user-facing changelog at `api/release-notes.md` to add the new notes for the robot software
9. `git add --all`
10. `git cz`

- Type: `chore`
- Scope: `release`
- Message: `${version}`

11. Push this commit
12. Once your chore bump branch is ready, squash merge the `chore_bump-${version}` into the `hotfix_${version}` branch.
13. Tag the release branch as the version you just bumped to; this is a release candidate that will undergo QA:

```bash
git tag -a v${version} -m 'chore(release): ${version}'
git push origin v${version}
git push ${tag}
```

14. Run QA on this release. If issues are found, create PRs targeted on the release branch. To create new alpha releases, repeat steps 4-14.
15. Once QA is a pass, bump to your target version (review [the section below](#make-bump-usage) again)
16. Do a NORMAL MERGE into `release`. Do NOT squash or rebase. This should be done from your local command line (and will succeed as long as the release PR is reviewed and status checks have passed):
7. Once QA is a pass, do a NORMAL MERGE into `release`. Do NOT squash or rebase. This should be done from your local command line (and will succeed as long as the release PR is reviewed and status checks have passed):

```shell
# note: make sure you have pulled the latest changes for branch
Expand All @@ -130,28 +99,43 @@ git merge --ff-only release_${version}
git push origin release
```

17. Tag the release:

```shell
git tag -a v${version} -m 'chore(release): ${version}'
git push origin v${version}
```
8. Tag the release using [`make bump`](#make-bump-usage)

Pushing the tag will create release builds and a github release page with the in-depth changelogs.

18. Open a PR of `release` into `edge`. Give the PR a name like `chore(release): Merge changes from ${version} into edge`. Once it passes, on the command line merge it into `edge`:
9. Open a PR of `release` into `edge`. Give the PR a name like `chore(release): Merge changes from ${version} into edge`. Once it passes, on the command line merge it into `edge`:

```shell
git checkout edge
git pull
git merge --no-ff release
```

19. Use the PR title for the merge commit title. You can then `git push origin edge`, which will succeed as long as the PR is approved and status checks pass.
20. Release the docs for this version (see below under Releasing Web Projects)
10. Use the PR title for the merge commit title. You can then `git push origin edge`, which will succeed as long as the PR is approved and status checks pass.
11. Release the docs for this version (see below under Releasing Web Projects)

### tag usage

If you know the version (at this stage, it should be a new minor or patch version with an alpha tag) you can specify it with `version` and `project`, where `project` is one of our multi-application projects: `docs`, `robot-stack`, `labware-library`, `protocol-designer`, `ot3`:

```shell
make bump project=${project} version=${version}
```

i.e.

If not, you can follow the prompts:

```shell
make bump
Enter the project (labware-library,docs,robot-stack,ot3,protocol-designer):
The current version of ${project} is ${current-version}
The next prerelease version of ${project} would be ${version}
The next release version of ${project} would be ${version}
Enter version exactly or bump type (prerelease,alpha,beta,candidate,release)
version:
```

`make bump` runs `lerna version` (with git tag and push disabled) to bump all required files. You can pass options to lerna with the `version` environment variable. See the [lerna version docs][lerna-version] for available options. The most important options are:

- First positional argument: bump type _or_ explicit version
Expand Down
Loading

0 comments on commit 645b257

Please sign in to comment.