Skip to content

Releases: SchoofsKelvin/vscode-sshfs

Release 1.26.1

16 Apr 20:02
Compare
Choose a tag to compare

Changes

  • Apply a patch to ssh2 and make use of it to fix OpenSSH 8.8+ disabling ssh-rsa (SHA1) by default (#309) (8f62809)
    • Patch file in .yarn/patches based on https://github.com/Eugeny/ssh2/tree/rsa-sha applied to ssh2@1.11.0
    • The patch adds an option convertSha1 to publickey and agent authentication methods on top of Eugeny's modifications
      • When the option is present, ssh-rsa keys will be treated as rsa-sha2-512 or rsa-sha2-256, if the server supports it
    • Added a flag OPENSSH-SHA1 (enabled by default) to pass this convertSha1 flag when using publickey or agent auths
    • Part of this change required creating a custom ssh2 authHandler (based on the built-in version) to pass the option if desired
  • Changed the lastVersion extension version tracking to a new versionHistory system to better track bug origins (5314e21)
  • Fix error notifications appearing for missing Python config file (d878b78, #379)
    • The FS_NOTIFY_ERRORS flag was supposed to default to 'write' for VS Code 1.56+ but defaulted to true (i.e. 'all') instead
    • Added /pyproject.toml to the ignore list (added as a configBasedExtensionTips in product.json in VS Code 1.77)

Release 1.26.0

25 Mar 22:40
Compare
Choose a tag to compare

Changes

  • Internally we now have a subscribeToGlobalFlags to use up-to-date global flags (1fb7a52)
    • Currently, this makes it that changing the global flags can immediately have an effect for some flags
    • Global flags are those defined in your User Settings or Workspace(Folder) Settings
    • Mind that if you override those flags by specifying them in your SSH FS config, it'll keep using them
  • Added the DEBUG_FS flag to allow enabling detailed conditional logging in sshFileSystem (76a28be, #341)
    • This flag will auto-update when it changes in global flags, unless it's overriden in your SSH FS config
    • Mostly meant for internal debugging or helping with debugging specific user-reported issues
  • Added the DEBUG_FSR flag to allow enabing detailed conditional logging for the FileSystemRouter (7d59992)
    • Similar to DEBUG_FS this is mostly meant for internal debugging or when useful for user-reported issues
    • This flag will also auto-update when it changes in global flags.
    • This is a singleton flag and thus unaffected by overriding it in your SSH FS configs
  • Improved the above DEBUG_FS flag and refactored the already-existing FS_NOTIFY_ERRORS flag (20cf037, #341)
    • The FS_NOTIFY_ERRORS flag will auto-update when it changes in global flags, unless it's overriden in your SSH FS config
    • The FS_NOTIFY_ERRORS flag is now a string representing a comma-separated list instead of just a boolean
    • While disabled by default for older VS Code versions, starting from VS Code 1.56.0 the default is write
    • The write flag will show a notification should an error happen for a "write" operation
    • Write operations are: createDirectory, writeFile, delete, and rename
    • Since readDirectory, readFile and stat are disabled by default, it should prevent extension detection spam (see #341)
  • Added the SHELL_CONFIG flag to force a specific remote shell configuration (5721f1c, #331)
  • Refactored how (and also from where) configuration files are loaded (831a247)
    • The extension is now better at splitting up where it loads configs from into layers (global, workspace, ...)
    • When settings change, only the appropriate layer (e.g. a workspace folder) is reloaded, instead of reloading everything
    • Loading config files from the VS Code settings in remote workspaces is now supported
    • All layers, including (remote) workspace folders should fully support the sshfs.configpaths setting
    • Although this can change, for workspace folders, paths specified in the global/workspace settings are also scanned
  • Add a new extend config option that allows a config to extend one or more other configs (6eff0be, #268)
    • The extension will automatically detect and report missing or cyclic dependencies, skipping them
    • Note that if a config tries to extend a non-existing config, it will be skipped and an error will also be shown
  • Start screen of Settings UI will use the cached list of configs instead of reloading them (5900185)
    • This should make navigating to the start screen (especially when navigating back and forth between configs) faster
    • The Refresh button is now renamed to Reload and will still reload the configs (from disk, remote workspaces, ...)
  • Add support for extending configs to the Settings UI (a5372a4, #268)
    • This adds a visual editor to the Settings UI for the extend config option

Development changes

  • Move the whole flag system from config.ts to flags.ts (11b8f05)
  • Updated Yarn to version 3.5.0 (4d389f3)
  • Upgrade a ton of dependencies (8909d05)
    • Replace deprecated vsce with @vscode/vsce@^2.18.0
    • Upgrade TypeScript from ~4.5.5 to ~5.0.2
    • Upgrade Webpack from ^5.69.1 to ^5.76.3
    • Upgrade a bunch of plugins and other dependencies
  • Fix linter warnings in Markdown files and remove default webview/README.md (4a62035)
  • Fix build workflow to account for incompatibility from using a new vsce version (6985ead)
  • Updated the GitHub workflows (eac8a06, #372)
    • Added issue/** to the push and pull_request triggers to automatically build on these branches
    • The build workflow upgraded from ubuntu-18.04 to ubuntu-22.04
    • All actions are upgraded to a more recent version
    • Caching of Yarn dependencies is now handled by actions/setup-node
    • Migrated from actions/create-release and actions/upload-release-asset to softprops/action-gh-release
  • Fix Webpack only listening on IPv6 instead of all interfaces + update VS Code default styles (574d466)
  • Added the FieldList and derivate FieldConfigList field types to the Settings UI (796d1c2)

Release 1.25.0

01 Jun 21:14
Compare
Choose a tag to compare

Major change

  • Updated from ssh2@0.8.9 to ssh@1.6.0 (2e14709)
    • Part of this update forces me to ditch ssh2-streams which played a major role for SFTP
    • The ssh2 package has a built-in but unexposed alternative we can more or less use directly
    • The @types/ssh2 is semi-outdated and has lots of inaccuracies, along with missing internal things
    • For this major update a ssh2.ts replacing @types/ssh2 is added to the common module
    • This does pull in a lot of new fixes/features added since ssh2@1.0.0 though
    • Some feature requests are now easier/possible to implement with these new features
  • Add initial support for Windows OpenSSH servers (fixes #338) (9410ac2)
    • This adds initial support for Command Prompt, and theoretically PowerShell (untested)
    • The REMOTE_COMMANDS is not yet supported, as it uses the pty's tty for cross-terminal communication
    • Future REMOTE_COMMANDS support for PowerShell (since it can interact with named pipes) is planned
    • Future REMOTE_COMMANDS support for Command Prompt is currently not yet planned, but might be possible
    • Mind that some (future) features won't work (maybe just for now, maybe forever) on Windows

New features

  • Added FS_NOTIFY_ERRORS flag to display notifications for FS errors (ddfafd5, #282)
  • Added a ${workingDirectory} variable that gets replaced during terminal creation (ddfafd5, #323)
    • This applies to both the Terminal Command setting and ssh-shell task type
    • See the issue (#323) for why this got added and how you can use it

Changes

  • Small improvements to Dropdown(WithInput) UI components (9c83b07)
  • Delay and wait for loadConfigs() after logging version info (8c8b950)
    • This solves a small issue/annoyance where logs regarding loading logs appear before the version logging
  • When ${workingDirectory} is present in a terminal command, the extension doesn't auto-cd anymore (749a611)
    • Normally the extension runs cd <workingDirectory>; <terminalCommand> or similar
  • Auto-silence FileNotFound erors for stat (dc20709, #334)
    • The extension will no longer show notification bubbles for failed stat operations due to non-existing files

Development changes

  • Added semver as dependency in preparation of FS_NOTIFY_ERRORS flag (57b8ec6)
  • Pin some dependencies and in-range upgrade recursively (c7ac129)
    • More specifically, we now use typescript@~version instead of typescript@^version
    • All dependencies are upgraded within their (package.json-specified) ranges, to get latest patches
  • Update to Yarn 3.1.1 and TypeScript ~4.5.5 (83cf22a)
    • Also ditched @yarnpkg/plugin-version which wasn't even really used in the first place
  • Created a common module which now holds fileSystemConfig.ts and webviewMessages.ts (85f7a69)
  • Improve webview ESLint setup, namely update @typescript-eslint/* and remove unused plugins (2673c72)
  • Add prettier and its Yarn PnP SDK integration + VS Code settings (e95c16a)

Release 1.24.1

07 Dec 08:01
Compare
Choose a tag to compare

Changes

  • The default newFileMode is now 0o664 instead defaulting to the underlying library's 0o666 (af76438, #214)
    • This changes the permission for newly created files, defaulting to rw-rw-r-- instead of rw-rw-rw-
    • While 0o664 is the default umask for non-root users and 0o644 for root, we default to 0o664 regardless

Development changes

  • Fix/improve map-error.js utility (now also uses formatId from webpack.plugin.js) (768bfda)
  • Update build process (fa3bc68)
    • Build workflow broke due to using yarn dlx vsce and an vsce major version update requiring Node 14
    • The workflow is now configured to use Node 14 instead of Node 12
    • vsce is now added as a devDependency, which will also result in a speedup due to Yarn caching
  • The FieldNumber component in the webview now doesn't always default to 22 as value (00b52d7)
    • This component is only used for the port field, which now passes 22 to FieldNumber by default
  • Extracted checkbox CSS from FieldCheckbox to something generic using CSS classes to allow reuse (10cfa31)
    • Also added getValueClassName(): string to FieldBase to allow extra classes. Defaults to "value"

Release 1.24.0

02 Nov 14:09
Compare
Choose a tag to compare

Changes

  • Set $TERM to xterm-256color instead of the default vt100 (16ffd1e, #299)
  • Terminals that exit within 5 seconds should now remain open until a key is pressed (55d7216)
  • Refactored the REMOTE_COMMANDS beta feature (#270) to use the new ShellConfig system (b9f226e)
    • Commands (currently only code) are now written to a unique folder and passed to $PATH
    • Commands are written in shell scripts (#!/bin/sh shebang) and should work on all shells/systems
    • Using $PATH should allow support for recursive shells, switching shells, ...

Fixes

  • Write REMOTE_COMMANDS profile script to separate file for each user (69c2370, #292)
    • Multiple users making use of this feature would use the same /tmp/... file, resulting in permission issues

New features

  • Added a ShellConfig system to support more shells regarding environment, home detection and REMOTE_COMMANDS (cc823c6)

Release 1.23.1

06 Oct 21:43
Compare
Choose a tag to compare

Hotfix

  • Fix the issue with failing home detecting for csh/tcsh shells (7605237, #295)

Development changes

  • More improvements in logging, especially regarding async stack tracing (e326a16)
    • Properly "set boundaries", detect/analyze and log toPromise/catchingPromise calls

Release 1.23.0

02 Oct 18:30
Compare
Choose a tag to compare

Fixes

  • Fix remote code command (#267) not working without the filesystem already connected (#292) (b821bae)
  • Fix bug with broken connections when connections are initiated by spawning named terminals (6f6e3ad)
  • Fix issue where .bashrc echoing would result in home directory detection failing (860f65a, #294)

Changes

  • Proxy hop field now actually lists all known configs to pick from, instead of "TO DO" (1f7e333, #290)
  • Remote code command (#267) now prompts to create an empty file for non-existing path (30c213a)
  • Remote code command (#267) now displays a help message when not providing arguments (518e246)

Development changes

  • Webpack setup has been improved quite a bit, mostly to clean up long ugly paths and make builds deterministic:
    • The custom ProblemMatcherReporter plugin is moved to /webpack.plugin.js and renamed to WebpackPlugin
    • Now both webpack configs (extension and webview) make use of this plugin
    • The plugin has the ability to remap module names/paths, accounting for several things:
      • Paths in the global /Yarn/Berry/ folder are now displayed as /yarn/ and are simplified for easier reading
      • Paths in the local .yarn folder get the same treatment as global ones, but using .yarn/ as the prefix
      • Other paths that are located within the (config's) project are made relative to the (config's) project root
    • The plugin enhances the stats printer to use the clean simplified paths instead of e.g. ../../../Yarn/etc
    • The plugin handles generating chunk ids (optimization.chunkIds option)
      • Acts mostly like a simplified version of the built-in deterministic option
      • Uses the path remapping, resulting in paths not being different depending on where your global Yarn folder is
      • These deterministic builds result in e.g. the same output chunk filenames
      • Building the same commit on GitHub Actions or your own PC should result in e.g. the same source maps
    • The excludeModules is now configured (and better handled) by the plugin
    • Commits: 3d1aff3, 865969f, c121647
  • The problem matcher for the Extension Webview - Watch task has been simplified and fixed due to the above change (3d1aff3)
  • Updated Yarn to 3.0.2 (with manual git issue fix applied) (06c8e21)
  • Updated TypeScript to ^4.4.3 (06c8e21)
  • Added enhance-changelog.js which add commits to "top-level" items in the changelog's "Unreleased" section (dce279d)

Release 1.22.0

21 Sep 19:19
Compare
Choose a tag to compare

Fixes

  • Partially fix issue with debug mode on code-server (05e1b69, #279)

Development changes

  • I've added a CHANGELOG.md file to the repository containing the changelog for earlier versions. It'll contain already committed changes that have yet to be released.
  • The extension now only enters debug mode when the environment variable VSCODE_SSHFS_DEBUG is the (case insensitive) string "true". The ExtensionContext.extensionMode provided by Code does not influence this anymore. This is part due to #279, implemented in 05e1b69 which supersedes 48ef229.

Release 1.21.2

05 Aug 19:51
Compare
Choose a tag to compare

Fixes:

  • Fix bug in connect command with Root starting with ~ (803dc59, #280)

Changes:

  • Remove (SSH FS) label from editor titles (fcbd6d7, #278)

Release 1.21.1

01 Aug 18:43
Compare
Choose a tag to compare

NOTE: Due to an issue in OpenVSX, the extension won't be updated on OpenVSX. Affected users can still download and install the .vsix file manually. Extension is properly released on VS Marketplace. While the OpenVSX issue isn't actually fixed as far as I know, today's attempt to publish v1.21.1 to OpenVSX succeeded.


Fixes:

Changes:

  • Better error handling and CHECK_HOME flag support for tryGetHome (87d2cf8)

Development changes:

  • Improve map-error.js to work for /dist/extension.js and error report better (bda36c9)
  • Improve logging of errors through promises (c7f1261)