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

Update versioning, introduce changelog and automate publishing #258

Merged
merged 5 commits into from
Dec 8, 2023

Conversation

sgraband
Copy link
Contributor

@sgraband sgraband commented Dec 1, 2023

Update theia version to latest

Use latest version instead of next for demo applications.
Should make the apps more stable and avoids confusion,
when updating Theia Cloud next versions.

Update components to version 0.9.0-next

Set the version for all components to 0.9.0-next.
Reference the 0.9.0-next version for all internal dependencies.
In a follow up the builds will be adjusted so that during next builds the git-sha will be appended to the version during publishing.
Additionally, the docker images will be pushed to a version-specific next tag (e.g. 0.9.0-next).
NPM packages will be pushed with a git-sha attached and to a generic next tag, as 0.9.0-next is not a valid tag for npm packages.

Make node/landing-page a npm workspace and remove the usage of yarn from the READMEs and node scripts.

Update CI to new versions and automate publishing

Provide reuseable workflows for publishing npm packages and docker images.
Both will:

  • Build on PRs for testing.
  • Publish under the next tag and a specific sha version on main merges.
  • Publish the version and the latest tag when a releases is published via GH.
    Note that the next publishing only happens for versions that end with -next.
    This way release versions (e.g. 0.9.0) are not automatically published when merged to master, instead a release is required.
    This allows easy creation of patch versions with out merging them on main.

Each component has its own workflow that calls the reuseable workflows.
These workflows are only triggered when files of that component changed.

Add version section on README + add changelog

Introduce changelog and describe versioning in README.md.

Helm repo PR: eclipse-theia/theia-cloud-helm#45

Contributed on behalf of STMicroelectronics

Use latest version instead of next for demo applications.
Should make the apps more stable and avoids confusion,
when updating Theia Cloud next versions.

Contributed on behalf of STMicroelectronics
Set the version for all components to 0.9.0-next.
Reference the 0.9.0-next version for all internal dependencies.
In a follow up the builds will be adjusted so that during next builds
the git-sha will be appended to the version during publishing.
Additionally, the docker images will be pushed to a version-
specific next tag (e.g. 0.9.0-next).
NPM packages will be pushed with a git-sha attached and to a
generic next tag, as 0.9.0-next is not a valid tag for npm packages.

Make node/landing-page a npm workspace and remove the usage
of `yarn` from the READMEs and node scripts.

Contributed on behalf of STMicroelectronics
Provide reuseable workflows for publishing npm packages and docker images.
Both will:
- Build on PRs for testing.
- Publish under the next tag and a specific sha version on main merges.
- Publish the version and the latest tag when a releases is published via GH.
Note that the next publishing only happens for versions that end with -next.
This way release versions (e.g. 0.9.0) are not automatically published
when merged to master, instead a release is required.
This allows easy creation of patch versions with out merging them on main.

Each component has its own workflow that calls the reuseable workflows.
These workflows are only triggered when files of that component changed.

Contributed on behalf of STMicroelectronics
Introduce changelog and describe versioning in README.md.

Contributed on behalf of STMicroelectronics
Copy link
Contributor

@jfaltermeier jfaltermeier left a comment

Choose a reason for hiding this comment

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

Thank you very much. looks very good to me already. I have a few comments I've added inline.

On thing that is missing are release workflows for our demo applications used for testing:

  • theiacloud/theia-cloud-demo
  • theiacloud/theia-cloud-activity-demo
  • theiacloud/theia-cloud-activity-demo-theia

Those were published manually before but we had no CI check workflows on PRs

.github/workflows/reusable-docker.yml Show resolved Hide resolved
run: npm ci

- name: Build package
run: npm run build -w ${{ inputs.package_workspace }}
Copy link
Contributor

Choose a reason for hiding this comment

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

If this package would have a dependency to a further package in the npm workspace, I believe the build would fail.
We don't have this case at the moment for packages we want to publish to npm, but if we have some time left we could investigate passing multiple workspaces to this build step.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Its not the smoothest solutions but you could just append additional -w <packageName> to the ${{ inputs.package_workspace }} parameter.

We could also make the input an array i believe. I will take a look if i still have time after the other improvements.

.github/workflows/test-service.yml Show resolved Hide resolved
dockerfiles/landing-page/Dockerfile Outdated Show resolved Hide resolved
node/common/package.json Show resolved Hide resolved
node/monitor-theia/package.json Show resolved Hide resolved
demo/dockerfiles/demo-theia-monitor-vscode/Dockerfile Outdated Show resolved Hide resolved
Always build landing-page container from sources & remove Dockerfile.local.

Update vsix and the package-lock of the node/monitor package.

Add paths to run the service tests.

Make sure last next tag points to release.

Create reuseable workflow for manually publishing demo applications.

Set Node version to 16.14.0 instead of 16.x.

Improve README.

Contributed on behalf of STMicroelectronics
@sgraband sgraband requested a review from jfaltermeier December 6, 2023 15:31
@sgraband sgraband merged commit 750b762 into main Dec 8, 2023
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants