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

Effekt Version Manager: automatic installer and updater #20

Merged
merged 32 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
b5d95c1
[WIP] Automatic installer
jiribenes Aug 9, 2024
5cfd08b
Refactor updater&installer into separate file
jiribenes Aug 9, 2024
170cd03
Attempt to backport changes
jiribenes Aug 10, 2024
3c78bb9
Nicer error logging
jiribenes Aug 10, 2024
2fbf610
Refactor, add doc comments
jiribenes Aug 10, 2024
961b251
Re-add node&npm version check
jiribenes Aug 10, 2024
ffc5696
Try to fix CI by bumping node
jiribenes Aug 10, 2024
a121fb1
Add 'restartServer' command, refactor cmds
jiribenes Aug 10, 2024
6f43974
Refactor, rename
jiribenes Aug 10, 2024
0c7ebe4
Rudimentary error handling in commands
jiribenes Aug 10, 2024
8253e4a
Effekt versions should be compared loosely
jiribenes Aug 10, 2024
cbc37e8
Click on status bar item to check for updates
jiribenes Aug 10, 2024
440a6da
Add more sofisticated tooltip with current version
jiribenes Aug 10, 2024
898b460
[WIP] Add installation verification
jiribenes Aug 10, 2024
1390d5e
Fix type mismatch when checking effekt version
jiribenes Aug 10, 2024
39d41c3
Migrate to 'compare-versions' instead of 'node-semver'
jiribenes Aug 26, 2024
8c91f4f
Try to use more descriptive function names
jiribenes Aug 26, 2024
2d4fe4d
Parse Effekt version properly
jiribenes Aug 26, 2024
aa52545
Try to handle unknown Effekt version when updating
jiribenes Aug 27, 2024
79e0e0b
Don't compare missing version
jiribenes Aug 27, 2024
8d11e78
Add Java (JRE) detection
jiribenes Sep 11, 2024
58a759d
Detect older versions of Effekt via a hack
jiribenes Sep 11, 2024
ceb9c1b
Fix Java version detection
jiribenes Sep 17, 2024
7f227b3
Remove misleading message about PATH.
jiribenes Sep 17, 2024
7a3a837
Force 'execCommand' to use utf8 and to have max 1MB buffer
jiribenes Sep 17, 2024
297b738
Refactor ci.yml
jiribenes Sep 17, 2024
25fac57
Auto-format
jiribenes Sep 17, 2024
8a32b5d
Fix spurious 'Effekt is not installed' message when refusing to update
jiribenes Sep 17, 2024
b3d30d0
Experimental Nix-managed NPM detection for better errors
jiribenes Sep 17, 2024
b7551fb
Update minimum NodeJS version
jiribenes Sep 23, 2024
71ae96e
Fix LSP on Windows (#25)
jiribenes Sep 29, 2024
36d28ee
On Windows, try 'effekt.cmd' first
jiribenes Sep 29, 2024
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v1
with:
node-version: 20.x
node-version: 18.x
- run: npm install -g typescript
- run: npm install -g vsce
- run: npm install
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- run: npm install -g typescript
- run: npm install -g vsce
- run: npm install
Expand Down
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"eg2.tslint"
"dbaeumer.vscode-eslint"
]
}
64 changes: 31 additions & 33 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,36 +1,34 @@
// A launch configuration that compiles the extension and then opens it inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "npm: watch"
},
{
"name": "Extension Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test"
],
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "npm: watch"
}
]
}
"configurations": [
{
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why does everybody suddenly start to use tabs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I actually took these files from the VSCode template extension, just to update the structure :)

"type": "extensionHost",
"request": "launch",
"name": "Launch Client",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}"],
"outFiles": [
"${workspaceRoot}/client/out/**/*.js",
"${workspaceRoot}/server/out/**/*.js"
],
"autoAttachChildProcesses": true,
"preLaunchTask": {
"type": "npm",
"script": "watch"
}
},
{
"name": "Language Server E2E Test",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/client/out/test/index",
"${workspaceRoot}/client/testFixture"
],
"outFiles": ["${workspaceRoot}/client/out/test/**/*.js"]
}
]
}
36 changes: 6 additions & 30 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,8 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"out": false // set this to true to hide the "out" folder with the compiled JS files
},
"search.exclude": {
"out": true // set this to false to include "out" folder in search results
},
"cSpell.words": [
"alt",
"bitbucket",
"bytecode",
"classpath",
"ctrl",
"jvm",
"languageclient",
"minijava",
"mj",
"org",
"p",
"prettysourcetree",
"prettytree",
"sbegin",
"sourcetree",
"sstart",
"targettree",
"tbegin",
"tsc",
"tstart",
"usr"
]
"editor.insertSpaces": false,
"typescript.tsc.autoDetect": "off",
"typescript.preferences.quoteStyle": "single",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}
49 changes: 31 additions & 18 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,33 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "compile",
"group": "build",
"presentation": {
"panel": "dedicated",
"reveal": "never"
},
"problemMatcher": [
"$tsc"
]
},
{
"type": "npm",
"script": "watch",
"isBackground": true,
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"panel": "dedicated",
"reveal": "never"
},
"problemMatcher": [
"$tsc-watch"
]
}
]
}
Loading
Loading