Support platform-specific exts, improve cache eviction, add release attrset, filter by vscode version #21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the following features.
To close Improve discarding strategy #17, for each extension, I recorded how many times it was missing in the responses from a site. When an extension is missing, it's fetched during an automated update along with the new extensions from a response. The missing times counter of such an extension is incremented. If an extension is missing in the responses a specified number of times it is not tried again and thus gets evicted from cache.
To close rust-analyzer failing with a bad hash #5 and close Support platform-specific extensions #20, I now fetch the platform-specific extensions and put them into the common extensions attrset along with the universal extensions. If an extension has both universal and non-universal versions, the non-universal version is preferred.
To close Filter out pre-release versions #18, I added a separate attrset that can be generated via
extensions.${system}.vscode-marketplace-release
.To address the suggestion Filter out pre-release versions #18 (comment), I added an attrset that contains the extensions compatible with VSCode of "your-version". This attrset can be generated like
(extensions.${system}.forVSCodeVersion "your-version").vscode-extensions
.