-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: tailwindlabs/tailwindcss
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v4.1.5
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: tailwindlabs/tailwindcss
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 3 commits
- 42 files changed
- 4 contributors
Commits on May 2, 2025
-
Design system driven upgrade migrations (#17831)
This PR introduces a vastly improved upgrade migrations system, to migrate your codebase and modernize your utilities to make use of the latest variants and utilities. It all started when I saw this PR the other day: #17790 I was about to comment "Don't forget to add a migration". But I've been thinking about a system where we can automate this process away. This PR introduces this system. This PR introduces upgrade migrations based on the internal Design System, and it mainly updates arbitrary variants, arbitrary properties and arbitrary values. ## The problem Whenever we ship new utilities, or you make changes to your CSS file by introducing new `@theme` values, or adding new `@utility` rules. It could be that the rest of your codebase isn't aware of that, but you could be using these values. For example, it could be that you have a lot of arbitrary properties in your codebase, they look something like this: ```html <div class="[color-scheme:dark] [text-wrap:balance]"></div> ``` Whenever we introduce new features in Tailwind CSS, you probably don't keep an eye on the release notes and update all of these arbitrary properties to the newly introduced utilities. But with this PR, we can run the upgrade tool: ```console npx -y @tailwindcss/upgrade@latest ``` ...and it will upgrade your project to use the new utilities: ```html <div class="scheme-dark text-balance"></div> ``` It also works for arbitrary values, for example imagine you have classes like this: ```html <!-- Arbitrary property --> <div class="[max-height:1lh]"></div> <!-- Arbitrary value --> <div class="max-h-[1lh]"></div> ``` Running the upgrade tool again: ```console npx -y @tailwindcss/upgrade@latest ``` ... gives you the following output: ```html <!-- Arbitrary property --> <div class="max-h-lh"></div> <!-- Arbitrary value --> <div class="max-h-lh"></div> ``` This is because of the original PR I mentioned, which introduced the `max-h-lh` utilities. A nice benefit is that this output only has 1 unique class instead of 2, which also potentially reduces the size of your CSS file. It could also be that you are using arbitrary values where you (or a team member) didn't even know an alternative solution existed. E.g.: ```html <div class="w-[48rem]"></div> ``` After running the upgrade tool you will get this: ```html <div class="w-3xl"></div> ``` We can go further though. Since the release of Tailwind CSS v4, we introduced the concept of "bare values". Essentially allowing you to type a number on utilities where it makes sense, and we produce a value based on that number. So an input like this: ```html <div class="border-[123px]"></div> ``` Will be optimized to just: ```html <div class="border-123"></div> ``` This can be very useful for complex utilities, for example, how many times have you written something like this: ```html <div class="grid-cols-[repeat(16,minmax(0,1fr))]"></div> ``` Because up until Tailwind CSS v4, we only generated 12 columns by default. But since v4, we can generate any number of columns automatically. Running the migration tool will give you this: ```html <div class="grid-cols-16"></div> ``` ### User CSS But, what if I told you that we can keep going... In [Catalyst](https://tailwindcss.com/plus/ui-kit) we often use classes that look like this for accessibility reasons: ```html <div class="text-[CanvasText] bg-[Highlight]"></div> ``` What if you want to move the `CanvasText` and `Highlight` colors to your CSS: ```css @import "tailwincdss"; @theme { --color-canvas: CanvasText; --color-highlight: Highlight; } ``` If you now run the upgrade tool again, this will be the result: ```html <div class="text-canvas bg-highlight"></div> ``` We never shipped a `text-canvas` or `bg-highlight` utility, but the upgrade tool uses your own CSS configuration to migrate your codebase. This will keep your codebase clean, consistent and modern and you are in control. Let's look at one more example, what if you have this in a lot of places: ```html <div class="[scrollbar-gutter:stable]"></div> ``` And you don't want to wait for the Tailwind CSS team to ship a `scrollbar-stable` (or similar) feature. You can add your own utility: ```css @import "tailwincdss"; @Utility scrollbar-stable { scrollbar-gutter: stable; } ``` ```html <div class="scrollbar-stable"></div> ``` ## The solution — how it works There are 2 big things happening here: 1. Instead of us (the Tailwind CSS team) hardcoding certain migrations, we will make use of the internal `DesignSystem` which is the source of truth for all this information. This is also what Tailwind CSS itself uses to generate the CSS file. The internal `DesignSystem` is essentially a list of all: 1. The internal utilities 2. The internal variants 3. The default theme we ship 4. The user CSS 1. With custom `@theme` values 2. With custom `@custom-variant` implementations 3. With custom `@utility` implementations 2. The upgrade tool now has a concept of `signatures` The signatures part is the most interesting one, and it allows us to be 100% sure that we can migrate your codebase without breaking anything. A signature is some unique identifier that represents a utility. But 2 utilities that do the exact same thing will have the same signature. To make this work, we have to make sure that we normalize values. One such value is the selector. I think a little visualization will help here: | UTILITY | GENERATED SIGNATURE | | ---------------- | ----------------------- | | `[display:flex]` | `.x { display: flex; }` | | `flex` | `.x { display: flex; }` | They have the exact same signature and therefore the upgrade tool can safely migrate them to the same utility. For this we will prefer the following order: 1. Static utilities — essentially no brackets. E.g.: `flex`, `grid-cols-2` 2. Arbitrary values — e.g.: `max-h-[1lh]`, `border-[2px]` 3. Arbitrary properties — e.g.: `[color-scheme:dark]`, `[display:flex]` We also have to canonicalize utilities to there minimal form. Essentially making sure we increase the chance of finding a match. ``` [display:_flex_] → [display:flex] → flex [display:_flex] → [display:flex] → flex [display:flex_] → [display:flex] → flex [display:flex] → [display:flex] → flex ``` If we don't do this, then the signatures will be slightly different, due to the whitespace: | UTILITY | GENERATED SIGNATURE | | ------------------ | ------------------------- | | `[display:_flex_]` | `.x { display: flex ; }` | | `[display:_flex]` | `.x { display: flex; }` | | `[display:flex_]` | `.x { display: flex ; }` | | `[display:flex]` | `.x { display: flex; }` | ### Other small improvements A few other improvements are for optimizing existing utilities: 1. Remove unnecessary data types. E.g.: - `bg-[color:red]` -> `bg-[red]` - `shadow-[shadow:inset_0_1px_--theme(--color-white/15%)]` -> `shadow-[inset_0_1px_--theme(--color-white/15%)]` This also makes use of these signatures and if dropping the data type results in the same signature then we can safely drop it. Additionally, if a more specific utility exists, we will prefer that one. This reduced ambiguity and the need for data types. - `bg-[position:123px]` → `bg-position-[123px]` - `bg-[123px]` → `bg-position-[123px]` - `bg-[size:123px]` → `bg-size-[123px]` 2. Optimizing modifiers. E.g.: - `bg-red-500/[25%]` → `bg-red-500/25` - `bg-red-500/[100%]` → `bg-red-500` - `bg-red-500/100` → `bg-red-500` 3. Hoist `not` in arbitrary variants - `[@media_not_(prefers-color-scheme:dark)]:flex` → `not-[@media_(prefers-color-scheme:dark)]:flex` → `not-dark:flex` (in case you are using the default `dark` mode implementation 4. Optimize raw values that could be converted to bare values. This uses the `--spacing` variable to ensure it is safe. - `w-[64rem]` → `w-256` --------- Co-authored-by: Jordan Pittman <jordan@cryptica.me> Co-authored-by: Philipp Spiess <hello@philippspiess.com>
Configuration menu - View commit details
-
Copy full SHA for 4e42756 - Browse repository at this point
Copy the full SHA 4e42756View commit details -
Skip
.css
files when migrating templates (#17854)This PR fixes an issue where the upgrade tool also migrates `.css` files as-if they are content files. This is not the intended behavior. ## Test plan Ran this on my personal website. Before: <img width="1316" alt="image" src="https://github.com/user-attachments/assets/2b7337c6-7b88-4811-911f-139ab2e31b3b" /> After: <img width="1046" alt="image" src="https://github.com/user-attachments/assets/55f09355-37cb-419b-9924-973cf2681c1d" />
Configuration menu - View commit details
-
Copy full SHA for c095071 - Browse repository at this point
Copy the full SHA c095071View commit details -
Update eslint 9.24.0 → 9.25.1 (minor) (#17850)
Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request. ### What changed? #### ✳️ eslint (9.24.0 → 9.25.1) · [Repo](https://github.com/eslint/eslint) · [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) <details> <summary>Release Notes</summary> <h4><a href="https://github.com/eslint/eslint/releases/tag/v9.25.1">9.25.1</a></h4> <blockquote><h2 dir="auto">Bug Fixes</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/cdc8e8c950ddfe1f9d462ea138ad7866da0394da"><code class="notranslate">cdc8e8c</code></a> fix: revert directive detection in no-unused-expressions (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19639">#19639</a>) (sethamus)</li> </ul> <h2 dir="auto">Chores</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/1f2b057ddcbef4340f78d1314456935054b8d93f"><code class="notranslate">1f2b057</code></a> chore: upgrade @eslint/js@9.25.1 (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19642">#19642</a>) (Milos Djermanovic)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/771317fa937a07277201f7155e9b835e6a5658f9"><code class="notranslate">771317f</code></a> chore: package.json update for @eslint/js release (Jenkins)</li> </ul></blockquote> <h4><a href="https://github.com/eslint/eslint/releases/tag/v9.25.0">9.25.0</a></h4> <blockquote><h2 dir="auto">Features</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/dcd95aafa33a95c8102834af85129f6f398fe394"><code class="notranslate">dcd95aa</code></a> feat: support TypeScript syntax in no-empty-function rule (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19551">#19551</a>) (sethamus)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/77d6d5bc4923012aee34b0a7c3d971f017d65555"><code class="notranslate">77d6d5b</code></a> feat: support TS syntax in <code class="notranslate">no-unused-expressions</code> (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19564">#19564</a>) (Sweta Tanwar)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/90228e5d57672579cf82bede29880532c2cb8ca9"><code class="notranslate">90228e5</code></a> feat: support <code class="notranslate">JSRuleDefinition</code> type (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19604">#19604</a>) (루밀LuMir)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/59ba6b73789835813ab3002c651a7217dd30a8cc"><code class="notranslate">59ba6b7</code></a> feat: add allowObjects option to no-restricted-properties (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19607">#19607</a>) (sethamus)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/db650a036baf502c7366a7da633d4cd00719394e"><code class="notranslate">db650a0</code></a> feat: support TypeScript syntax in <code class="notranslate">no-invalid-this</code> rule (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19532">#19532</a>) (Tanuj Kanti)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/9535cffe7b66abe850d90258e702279afabce7fe"><code class="notranslate">9535cff</code></a> feat: support TS syntax in <code class="notranslate">no-loop-func</code> (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19559">#19559</a>) (Nitin Kumar)</li> </ul> <h2 dir="auto">Bug Fixes</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/910bd13c4cb49001f2a9f172229360771b857585"><code class="notranslate">910bd13</code></a> fix: <code class="notranslate">nodeTypeKey</code> not being used in <code class="notranslate">NodeEventGenerator</code> (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19631">#19631</a>) (StyleShit)</li> </ul> <h2 dir="auto">Documentation</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/ca7a735dde44120111d56e36ce93ba750b3c3c86"><code class="notranslate">ca7a735</code></a> docs: update <code class="notranslate">no-undef-init</code> when not to use section (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19624">#19624</a>) (Tanuj Kanti)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/1b870c9da4b3aa28f4a6f4f62e0437b743344994"><code class="notranslate">1b870c9</code></a> docs: use <code class="notranslate">eslint-config-xo</code> in the getting started guide (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19629">#19629</a>) (Nitin Kumar)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/5d4af16ab170306862dd0c33894044e59e03d041"><code class="notranslate">5d4af16</code></a> docs: add types for multiple rule options (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19616">#19616</a>) (Tanuj Kanti)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/e8f8d57bd6c0d95f9f25db8c5b3ff72de42488b7"><code class="notranslate">e8f8d57</code></a> docs: Update README (GitHub Actions Bot)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/a40348f1f67a6c3da320682d683589f91d7e6f7b"><code class="notranslate">a40348f</code></a> docs: no-use-before-define tweaks (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19622">#19622</a>) (Kirk Waiblinger)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/0ba3ae3e5a2425560baf771c05e7c69c63a1983c"><code class="notranslate">0ba3ae3</code></a> docs: Update README (GitHub Actions Bot)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/865dbfed6cbade8a22756965be256da317801937"><code class="notranslate">865dbfe</code></a> docs: ensure "learn more" deprecation links point to useful resource (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19590">#19590</a>) (Kirk Waiblinger)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/f80b746d850021d253c01bb0eae466a701e63055"><code class="notranslate">f80b746</code></a> docs: add known limitations for no-self-compare (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19612">#19612</a>) (Nitin Kumar)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/865aed629318ca1e86e7d371fac49d7de4e7e8a8"><code class="notranslate">865aed6</code></a> docs: Update README (GitHub Actions Bot)</li> </ul> <h2 dir="auto">Chores</h2> <ul dir="auto"> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/88dc1965a4f53babec36e0f5bd450dd02467acde"><code class="notranslate">88dc196</code></a> chore: upgrade @eslint/js@9.25.0 (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19636">#19636</a>) (Milos Djermanovic)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/345288d7b270e8c122e922bfa31f219aedc4e63b"><code class="notranslate">345288d</code></a> chore: package.json update for @eslint/js release (Jenkins)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/affe6be0181422a51875a2ad40eb5152d94fc254"><code class="notranslate">affe6be</code></a> chore: upgrade trunk (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19628">#19628</a>) (sethamus)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/dd20cf274e285f09f230638184c997c44912485f"><code class="notranslate">dd20cf2</code></a> test: fix <code class="notranslate">no-loop-func</code> test with duplicate variable reports (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19610">#19610</a>) (Milos Djermanovic)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/bd05397ef68bb23a6148aeb70088d7167f201bf7"><code class="notranslate">bd05397</code></a> chore: upgrade <code class="notranslate">@eslint/*</code> dependencies (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19606">#19606</a>) (Milos Djermanovic)</li> <li> <a href="https://bounce.depfu.com/github.com/eslint/eslint/commit/22ea18b8babe4d60af7b3518b24d1ec31bf09605"><code class="notranslate">22ea18b</code></a> chore: replace invalid <code class="notranslate">int</code> type with <code class="notranslate">number</code> inside JSDocs. (<a href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19597">#19597</a>) (Arya Emami)</li> </ul></blockquote> <p><em>Does any of this look wrong? <a href="https://depfu.com/packages/npm/eslint/feedback">Please let us know.</a></em></p> </details> <details> <summary>Commits</summary> <p><a href="https://github.com/eslint/eslint/compare/d49f5b7333e9a46aabdb0cff267a1d36cdbde598...3ed4b3652d9fe3dfa4017d22a6ddbd15e3c6cd7a">See the full diff on Github</a>. The new version differs by 29 commits:</p> <ul> <li><a href="https://github.com/eslint/eslint/commit/3ed4b3652d9fe3dfa4017d22a6ddbd15e3c6cd7a"><code>9.25.1</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/7a19ccd052c7d55e6e97d503f12465601021a275"><code>Build: changelog update for 9.25.1</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/1f2b057ddcbef4340f78d1314456935054b8d93f"><code>chore: upgrade @eslint/js@9.25.1 (#19642)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/771317fa937a07277201f7155e9b835e6a5658f9"><code>chore: package.json update for @eslint/js release</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/cdc8e8c950ddfe1f9d462ea138ad7866da0394da"><code>fix: revert directive detection in no-unused-expressions (#19639)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/e62e26761561e1d78c6466a2d74dbf946012fddc"><code>9.25.0</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/bc2c3e6acc8612f894c3400219862cd1eea5d0bd"><code>Build: changelog update for 9.25.0</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/88dc1965a4f53babec36e0f5bd450dd02467acde"><code>chore: upgrade @eslint/js@9.25.0 (#19636)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/345288d7b270e8c122e922bfa31f219aedc4e63b"><code>chore: package.json update for @eslint/js release</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/910bd13c4cb49001f2a9f172229360771b857585"><code>fix: `nodeTypeKey` not being used in `NodeEventGenerator` (#19631)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/ca7a735dde44120111d56e36ce93ba750b3c3c86"><code>docs: update `no-undef-init` when not to use section (#19624)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/affe6be0181422a51875a2ad40eb5152d94fc254"><code>chore: upgrade trunk (#19628)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/1b870c9da4b3aa28f4a6f4f62e0437b743344994"><code>docs: use `eslint-config-xo` in the getting started guide (#19629)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/5d4af16ab170306862dd0c33894044e59e03d041"><code>docs: add types for multiple rule options (#19616)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/e8f8d57bd6c0d95f9f25db8c5b3ff72de42488b7"><code>docs: Update README</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/a40348f1f67a6c3da320682d683589f91d7e6f7b"><code>docs: no-use-before-define tweaks (#19622)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/0ba3ae3e5a2425560baf771c05e7c69c63a1983c"><code>docs: Update README</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/865dbfed6cbade8a22756965be256da317801937"><code>docs: ensure "learn more" deprecation links point to useful resource (#19590)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/dcd95aafa33a95c8102834af85129f6f398fe394"><code>feat: support TypeScript syntax in no-empty-function rule (#19551)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/77d6d5bc4923012aee34b0a7c3d971f017d65555"><code>feat: support TS syntax in `no-unused-expressions` (#19564)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/90228e5d57672579cf82bede29880532c2cb8ca9"><code>feat: support `JSRuleDefinition` type (#19604)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/f80b746d850021d253c01bb0eae466a701e63055"><code>docs: add known limitations for no-self-compare (#19612)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/59ba6b73789835813ab3002c651a7217dd30a8cc"><code>feat: add allowObjects option to no-restricted-properties (#19607)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/db650a036baf502c7366a7da633d4cd00719394e"><code>feat: support TypeScript syntax in `no-invalid-this` rule (#19532)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/dd20cf274e285f09f230638184c997c44912485f"><code>test: fix `no-loop-func` test with duplicate variable reports (#19610)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/9535cffe7b66abe850d90258e702279afabce7fe"><code>feat: support TS syntax in `no-loop-func` (#19559)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/bd05397ef68bb23a6148aeb70088d7167f201bf7"><code>chore: upgrade `@eslint/*` dependencies (#19606)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/22ea18b8babe4d60af7b3518b24d1ec31bf09605"><code>chore: replace invalid `int` type with `number` inside JSDocs. (#19597)</code></a></li> <li><a href="https://github.com/eslint/eslint/commit/865aed629318ca1e86e7d371fac49d7de4e7e8a8"><code>docs: Update README</code></a></li> </ul> </details> ---  [Depfu](https://depfu.com) will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with `@depfu rebase`. <details><summary>All Depfu comment commands</summary> <blockquote><dl> <dt>@depfu rebase</dt><dd>Rebases against your default branch and redoes this update</dd> <dt>@depfu recreate</dt><dd>Recreates this PR, overwriting any edits that you've made to it</dd> <dt>@depfu merge</dt><dd>Merges this PR once your tests are passing and conflicts are resolved</dd> <dt>@depfu cancel merge</dt><dd>Cancels automatic merging of this PR</dd> <dt>@depfu close</dt><dd>Closes this PR and deletes the branch</dd> <dt>@depfu reopen</dt><dd>Restores the branch and reopens this PR (if it's closed)</dd> <dt>@depfu pause</dt><dd>Ignores all future updates for this dependency and closes this PR</dd> <dt>@depfu pause [minor|major]</dt><dd>Ignores all future minor/major updates for this dependency and closes this PR</dd> <dt>@depfu resume</dt><dd>Future versions of this dependency will create PRs again (leaves this PR as is)</dd> </dl></blockquote> </details> Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for dd5ec49 - Browse repository at this point
Copy the full SHA dd5ec49View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v4.1.5...main