diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..bc0daab
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,11 @@
+# Compiled output
+**/dist/
+**/lib/
+**/node_modules/
+
+# Build files
+**/.eslintrc.js
+**/esbuild.js
+
+# Other generated files
+**/*.map
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
index dcde970..0149f8c 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -2,7 +2,6 @@
module.exports = {
root: true,
extends: '@eclipse-glsp',
- ignorePatterns: ['**/{node_modules,lib}', '**/.eslintrc.js'],
parserOptions: {
tsconfigRootDir: __dirname,
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 1d326d0..2eebb49 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -25,5 +25,5 @@ to learn how to report vulnerabilities.
-- [ ] 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)
+- [ ] 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)
diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml
new file mode 100644
index 0000000..3dff521
--- /dev/null
+++ b/.github/workflows/prepare-release.yml
@@ -0,0 +1,116 @@
+name: Prepare Release
+
+on:
+ workflow_dispatch:
+ inputs:
+ release_type:
+ description: 'Release type (major, minor, patch, next, or custom)'
+ required: true
+ type: choice
+ options:
+ - major
+ - minor
+ - patch
+ - next
+ - custom
+ custom_version:
+ description: 'Custom version (required if release_type is custom)'
+ required: false
+ type: string
+ release_repo:
+ description: 'GLSP repository to release'
+ required: true
+ type: choice
+ options:
+ - glsp
+ - glsp-client
+ - glsp-theia-integration
+ - glsp-server
+ - glsp-server-node
+ - glsp-eclipse-integration
+ - glsp-vscode-integration
+ - glsp-playwright
+ branch:
+ description: 'Branch to use for the release repo (default: default branch)'
+ required: false
+ type: string
+ draft:
+ description: 'Create PR as draft'
+ required: false
+ type: boolean
+ default: false
+ workflow_call:
+ inputs:
+ release_type:
+ description: 'Release type (major, minor, patch, next, or custom)'
+ required: true
+ type: string
+ custom_version:
+ description: 'Custom version (required if release_type is custom)'
+ required: false
+ type: string
+ release_repo:
+ description: 'GLSP repository to release'
+ required: true
+ type: string
+ branch:
+ description: 'Branch to use for the release repo (default: default branch)'
+ required: false
+ type: string
+ draft:
+ description: 'Create PR as draft'
+ required: false
+ type: boolean
+ default: false
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout release helper repo (@eclipse-glsp/glsp)
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ with:
+ repository: eclipse-glsp/glsp
+ path: glsp-release-helper
+ ref: releng
+
+ - name: Checkout release repo (${{ inputs.release_repo || github.event.inputs.release_repo }})
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ with:
+ repository: eclipse-glsp/${{ inputs.release_repo || github.event.inputs.release_repo }}
+ path: release-repo
+ ref: ${{ inputs.branch || github.event.inputs.branch }}
+
+ - name: Set up Node.js
+ uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
+ with:
+ node-version: 20
+
+ - name: Install Yarn
+ run: npm install -g yarn
+
+ - name: Install dependencies in glsp-release-helper
+ working-directory: ./glsp-release-helper
+ run: yarn install
+
+ - name: Configure Git
+ run: |
+ git config --global user.name "eclipse-glsp-bot"
+ git config --global user.email "57175764+eclipse-glsp-bot@users.noreply.github.com"
+
+ - name: Prepare release
+ id: prepare_release
+ working-directory: ./glsp-release-helper
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ DRAFT_FLAG=""
+ if [[ "${{ inputs.draft || github.event.inputs.draft }}" == "true" ]]; then
+ DRAFT_FLAG="-d"
+ fi
+
+ if [[ "${{ inputs.release_type || github.event.inputs.release_type }}" == "custom" ]]; then
+ yarn glsp releng prepare custom "${{ inputs.custom_version || github.event.inputs.custom_version }}" -r ${{ github.workspace }}/release-repo $DRAFT_FLAG
+ else
+ yarn glsp releng prepare "${{ inputs.release_type || github.event.inputs.release_type }}" -r ${{ github.workspace }}/release-repo $DRAFT_FLAG
+ fi
diff --git a/.gitignore b/.gitignore
index a61f277..49cc49f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
node_modules/
*.log
lib
+dist
tsconfig.tsbuildinfo
eslint.xml
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..b50995a
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,17 @@
+# Dependencies
+node_modules/
+
+# Build outputs
+lib/
+dist/
+
+# Generated files
+*.min.js
+*.min.css
+
+# Lock files
+package-lock.json
+yarn.lock
+
+# Logs
+*.log
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..f554902
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,24 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Debug GLSP CLI",
+ "type": "node",
+ "request": "launch",
+ "program": "${workspaceFolder}/dev-packages/cli/dist/cli.js",
+ "args": "${input:cliArgs}",
+ "cwd": "${workspaceFolder}",
+ "console": "integratedTerminal",
+ "sourceMaps": true,
+ "outFiles": ["${workspaceFolder}/dev-packages/cli/dist/*.js"]
+ }
+ ],
+ "inputs": [
+ {
+ "id": "cliArgs",
+ "description": "CLI arguments (space-separated, e.g., 'checkHeaders ./')",
+ "default": "",
+ "type": "promptString"
+ }
+ ]
+}
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index d0174bf..9210738 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -5,6 +5,7 @@ Version 1.2
August 19, 2020
## Our Pledge
+
In the interest of fostering an open and welcoming environment, we as community members, contributors, committers, and project leaders pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
diff --git a/dev-packages/README.md b/dev-packages/README.md
index e331619..fed630d 100644
--- a/dev-packages/README.md
+++ b/dev-packages/README.md
@@ -1,4 +1,5 @@
# Eclipse GLSP - Dev Packages [](https://ci.eclipse.org/glsp/job/eclipse-glsp/job/glsp-client/job/master)
+
Common shared development packages for Eclipse GLSP components that are implemented with Typescript.
## Components
diff --git a/dev-packages/cli/README.md b/dev-packages/cli/README.md
index 6ca2665..0bb99e6 100644
--- a/dev-packages/cli/README.md
+++ b/dev-packages/cli/README.md
@@ -11,6 +11,24 @@ Install `@eclipse-glsp/cli` as a dev dependency in your application.
yarn add @eclipse-glsp/cli --dev
```
+## Usage
+
+```console
+Usage: glsp [options] [command]
+
+Options:
+ -V, --version output the version number
+ -h, --help display help for command
+
+Commands:
+ coverageReport [options] Generate a test coverage report for a glsp component
+ checkHeaders [options] Validates the copyright year range (end year) of license header files
+ updateNext|u [options] [rootDir] Updates all `next` dependencies in GLSP project to the latest version
+ generateIndex [options] Generate index files in a given source directory.
+ releng Commands for GLSP release engineering (Linux only, intended for CI/Maintainer use).
+ help [command] display help for command
+```
+
## checkHeaders
The `checkHeaders` command can be used to validate the copyright year (range) of license headers.
@@ -23,19 +41,21 @@ $ glsp checkHeaders -h
Usage: glsp checkHeaders [options]
-Validates the copyright year range of license header files
+Validates the copyright year range (end year) of license header files
Arguments:
rootDir The starting directory for the check
Options:
- -t, --type The scope of the check. In addition to a full recursive check, is also possible to only consider pending changes or the last commit (choices: "full", "changes", "lastCommit", default:
- "full")
+ -t, --type The scope of the check. In addition to a full recursive check, is also possible to only
+ consider pending changes or the last commit (choices: "full", "changes", "lastCommit",
+ default: "full")
-f, --fileExtensions File extensions that should be checked (default: ["ts","tsx"])
- -e, --exclude File patterns that should be excluded from the check. New exclude patterns are added to the default patterns (default: [**/@(node_modules|lib|dist|bundle)/**])
- --no-exclude-defaults Disables the default excludes patterns. Only explicitly passed exclude patterns (-e, --exclude) are considered
+ -e, --exclude File patterns that should be excluded from the check. New exclude patterns are added to
+ the default patterns (default: [**/@(node_modules|lib|dist|bundle)/**])
+ --no-exclude-defaults Disables the default excludes patterns. Only explicitly passed exclude patterns (-e,
+ --exclude) are considered
-j, --json Also persist validation results as json file (default: false)
- -s, --severity The severity of validation results that should be printed. (choices: "error", "warn", "ok", default: "error" (only))
-a, --autoFix Auto apply & commit fixes without prompting the user (default: false)
-h, --help display help for command
```
@@ -52,37 +72,12 @@ Usage: glsp coverageReport [options]
Generate a test coverage report for a glsp component
Options:
- -p, --projectRoot The root directory of the GLSP component (default: "")
+ -p, --projectRoot The root directory of the GLSP component (default:
+ "")
-c, --coverageScript