Skip to content

revert(core): includes resolution#9092

Merged
ematipico merged 1 commit intomainfrom
revert/workspace-change
Feb 16, 2026
Merged

revert(core): includes resolution#9092
ematipico merged 1 commit intomainfrom
revert/workspace-change

Conversation

@ematipico
Copy link
Member

Summary

Closes #9052

Test Plan

Green CI, as the test introduced by the PR was removed.

Docs

@changeset-bot
Copy link

changeset-bot bot commented Feb 16, 2026

🦋 Changeset detected

Latest commit: 631e02c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added the A-Project Area: project label Feb 16, 2026
@ematipico ematipico force-pushed the revert/workspace-change branch from 8043bab to 631e02c Compare February 16, 2026 09:15
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 16, 2026

Walkthrough

This PR reverts recent path-resolution changes that selected a separate resolution_directory when extends_root was set. update_settings and plugin-loading now always use workspace_directory, removing the conditional extends_root branch. A test that asserted glob resolution from the project root was deleted. A new changeset documents the revert for a patch release and references issue #9052.

Possibly related PRs

Suggested reviewers

  • arendjr
  • dyc3
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'revert(core): includes resolution' clearly indicates this is a reversion of changes related to includes/extends resolution, matching the changeset and code modifications.
Description check ✅ Passed The description references the linked issue #9052 and explains the reversion removes a problematic test, relating directly to the changeset.
Linked Issues check ✅ Passed The PR reverts PR #8519's path resolution changes by removing extends_root logic and simplifying resolution to always use workspace_directory, directly addressing issue #9052's negated directory pattern problem.
Out of Scope Changes check ✅ Passed All changes are scoped to reverting the problematic includes resolution feature: the changeset documents the reversion, code removes extends_root logic, and tests clean up related test cases.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch revert/workspace-change

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@crates/biome_service/src/workspace/server.rs`:
- Around line 1183-1194: The plugins are being loaded with
workspace_directory.clone().unwrap_or_default(), which yields an empty path for
root configs with no workspace and causes wrong resolution in load_plugins;
change the call site (around settings.merge_with_configuration and the
self.load_plugins invocation) to compute a concrete base_dir: let base_dir =
workspace_directory.clone().or_else(|| std::env::current_dir().ok()).map(|p|
p.canonicalize().unwrap_or(p)).unwrap_or_else(|| PathBuf::from("/")); then pass
&base_dir to self.load_plugins (or otherwise ensure the path is absolute) so
plugins resolve against a sensible fallback instead of an empty path. Ensure the
change references the same symbols: settings.merge_with_configuration,
workspace_directory, and self.load_plugins/load_plugins.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.changeset/calm-carpets-enter.md (1)

5-5: Rephrase to focus on the user-facing fix rather than the revert.

The current description is implementation-focused ("This PR reverts..."). Users care about what was broken and is now fixed. Consider something like: "Fixed an issue where negated directory patterns in files.includes (e.g., "!directory") were not honoured when extends was set to "//". Also: "changes on how" → "changes to how".

📝 Suggested user-focused description
-Fixed [`#9052`](https://github.com/biomejs/biome/issues/9052). This PR reverts changes introduced by https://github.com/biomejs/biome/pull/8519, which caused unwanted changes on how paths are resolved.
+Fixed [`#9052`](https://github.com/biomejs/biome/issues/9052), where negated directory patterns in `files.includes` (e.g., `"!directory"`) were not honoured when `extends` was set to `"//"`.

Based on learnings, changesets should describe user-facing changes rather than internal implementation details like PR reverts.

@ematipico ematipico merged commit 6edd600 into main Feb 16, 2026
13 checks passed
@ematipico ematipico deleted the revert/workspace-change branch February 16, 2026 09:27
@github-actions github-actions bot mentioned this pull request Feb 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Project Area: project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐛 Ignore syntax doesn't work only when using microsyntax in extends

2 participants