-
Notifications
You must be signed in to change notification settings - Fork 13
116 integrate infs to vscode extension #120
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
Conversation
- Added activation events for workspace containing .inf files. - Introduced new commands for toolchain management: install, update, select version, run doctor, and show output. - Implemented configuration settings for custom infs binary path, auto-install prompt, release channel, and update checks. - Enhanced activation logic to check for toolchain availability and version compliance. - Created utility functions for platform detection, binary detection, and execution of commands. - Added tests for detection helpers, exec utility, platform detection, and semantic version comparison.
- Added `registerInstallCommand` to handle the installation of the inference toolchain in VS Code. - Introduced `installToolchain` function to manage the installation process, including downloading, extracting, and verifying the toolchain. - Created utility functions for downloading files and extracting archives, supporting `.tar.gz` and `.zip` formats. - Implemented progress reporting during installation and error handling for various stages. - Added tests for download and extraction functionalities to ensure reliability. - Updated the manifest handling to support fetching the latest release based on platform and channel.
- Implemented the `inference.runDoctor` command to check the toolchain status. - Created a status bar item to display the health of the inference toolchain. - Updated the status bar based on the results from the doctor command. - Added utility functions for parsing doctor output and managing status bar updates. feat: add version selection and update commands - Introduced `inference.selectVersion` command to allow users to choose toolchain versions. - Implemented `inference.updateToolchain` command to check for and install updates. - Enhanced version management with functions to fetch available versions and handle installations. fix: improve semver comparison - Updated semver comparison logic to correctly handle pre-release tags. test: add unit tests for doctor and version functionalities - Created tests for the doctor command output parsing. - Added tests for version fetching and parsing to ensure correct functionality. chore: refactor toolchain and UI modules - Organized toolchain-related functions into separate files for better maintainability. - Refactored UI components for status bar management.
…hain detection context - Introduced a new walkthrough in package.json to guide users through setting up the Inference toolchain, including installation, verification, project creation, and building programs. - Updated extension.ts to set context for toolchain installation status, improving user feedback on toolchain detection and installation status.
- Added tests for stable and pre-release version preference in installation. - Improved platform detection tests for Windows, Linux, and macOS. - Enhanced semver comparison to handle pre-release versions and identifiers. - Updated version parsing to handle build metadata and edge cases. - Implemented robust error handling for toolchain installation and version fetching. - Introduced a manual QA guide for the Inference VS Code extension. - Added a new command for performing version changes with progress notifications. - Improved download and extraction utilities to handle edge cases and timeouts.
- Removed the `inference.channel` setting from package.json and related code. - Updated the update checking logic to no longer respect the channel setting. - Adjusted tests to reflect the removal of channel-based logic. - Added new tests for grammar and language configuration.
- Introduced unit tests for manifest parsing, settings schema validation, status bar state determination, update logic, version parsing, and version picker functionality. - Implemented doctor format for displaying check results. - Added functionality to resolve the INFERENCE_HOME directory. - Developed update check logic to determine available updates based on current version. - Created version picker logic to build QuickPick items from available versions. - Enhanced UI with a configuration tree to display toolchain and settings information. - Implemented status bar state management based on toolchain health.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR integrates the infs CLI toolchain manager into the VS Code extension, transforming it from a syntax-only extension to a full-featured development environment. The implementation adds one-button toolchain installation, version management, health diagnostics, and automatic terminal PATH integration.
Changes:
- Added toolchain detection, installation, and version management commands
- Integrated Configuration sidebar view with toolchain status and settings
- Implemented automatic terminal PATH integration for seamless CLI access
- Added comprehensive test suite covering platform detection, version parsing, download/extraction, and error handling
Reviewed changes
Copilot reviewed 51 out of 53 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| editors/vscode/package.json | Bumped version to 0.0.3, added commands, views, walkthroughs, and test dependencies |
| editors/vscode/src/extension.ts | Implemented activation logic with toolchain detection, version checking, and command registration |
| editors/vscode/src/commands/*.ts | Added install, doctor, update, selectVersion, and versionChange commands |
| editors/vscode/src/toolchain/*.ts | Implemented detection, installation, platform support, manifest parsing, and doctor diagnostics |
| editors/vscode/src/ui/*.ts | Created status bar and configuration tree view components |
| editors/vscode/src/utils/*.ts | Added download, extract, exec, and semver utilities |
| editors/vscode/src/config/settings.ts | Implemented settings reader for extension configuration |
| editors/vscode/test/*.test.ts | Added grammar and language-config tests |
| editors/vscode/src/test/*.test.ts | Added comprehensive unit and integration tests |
| editors/vscode/README.md | Updated documentation with toolchain management features |
| editors/vscode/QA_GUIDE.md | Added manual QA guide with 11 test sections |
| apps/infs/src/toolchain/manifest.rs | Removed caching logic to simplify manifest fetching |
| apps/infs/src/commands/doctor.rs | Updated doctor command to exit with error code on failures |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Closes #116