Skip to content

Conversation

@tortmayr
Copy link
Contributor

@tortmayr tortmayr commented Sep 15, 2025

What it does

Remove dependency to shelljs for CLI application, refactor release/releng commands and introduce bundling with esbuild

Remove dependency to shelljs

Shelljs has some issues in its core architecture which prevent from proper bundling.
We only use a very small subset of shelljs features. Therefore I opted for removing the dependency alltogether and introduce replacement functions in our utility library that directly use node builtins under the hood

Refactor release/releng commands

  • Remove the existing release commands and introduce a new set of releng commands that
    can also be used in CI and enable (partly) automated releases
  • These commands have already been used for the 2.5.0 release (i.e. have been tested and work)
  • Introduce helpers for working with (reading, updating etc.) workspace package jsons

Bundle application with es build

  • Introduce bundling with esbuild for the CLI package
  • Package is now dependency free and ships the CLI app in one bundle (+ source maps)
  • Update package scripts accordingly
  • Introduce proper watch mode for CLI package
  • Introduce vs code lauch config for debugin the CLI application. When starting the config the desired arguments/commands
    can be passed via input box

Add workflows

  • Add dispatch workflow to trigger a new release preparation PR for a repository

Fixes /issues/1363

How to test

Follow-ups

Changelog

  • This PR should be mentioned in the changelog
  • This PR introduces a breaking change (if yes, provide more details below for the changelog and the migration guide)

@tortmayr tortmayr force-pushed the releng branch 10 times, most recently from d8fc821 to bed45f0 Compare September 15, 2025 10:34
Remove dependency to shelljs for CLI application, refactor
release/releng commands and introduce bundling with esbuild

## Remove dependency to shelljs
Shelljs  has some issues in its core architecture which prevent it from
proper bundling.
We only use a very small subset of shelljs features.
Therefore I opted for removing the dependency alltogether and introduce
replacement functions in our utility library
that directly use node builtins under the hood

## Refactor release/releng commands
- Remove the existing release commands and introduce a new set of releng
commands that
  can also be used in CI and enable (partly) automated releases
- These commands have already been used for the 2.5.0 release (i.e. have
been tested and work)
- Introduce helpers for working with (reading, updating etc.) workspace
package jsons

## Bundle application with es build
- Introduce bundling with es build for the CLI package
- Package is now dependency free and ships the CLI app in one bundle (+
source maps)
- Update package scripts accordingly
- Introduce proper watch mode for CLI package
- Introduce vs code lauch config for debugin the CLI application. When
starting the config the desired arguments/commands
 can be passed via input box

## Add workflows
- Add dispatch workflow to trigger a new release preparation PR for a
repository

Fixes /issues/1363
@tortmayr tortmayr force-pushed the releng branch 2 times, most recently from c021161 to bb54957 Compare September 15, 2025 13:04
Copy link
Contributor

@martin-fleck-at martin-fleck-at left a comment

Choose a reason for hiding this comment

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

Change looks good to me besides one minor formatting issue being copy-pasted ;-)

Fix typos in command description
Ensure that non-glsp workspace dependencies also get properly updated
when using the version command
@tortmayr tortmayr merged commit 9e4723e into master Sep 16, 2025
5 checks passed
@tortmayr tortmayr deleted the releng branch September 16, 2025 13:32
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.

Bundle CLI tool

3 participants