Sort arbitrary variants deterministically regardless of content order #10016
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.
Currently arbitrary variants are non-deterministic in their sorting given multiple environments or different sets of content. For example, if you run your build on your local environment in Windows and then again in CI which is on Linux it is possible that you can get different built output and different sorting for utilities using arbitrary variants.
This change ensures that utilities using arbitrary variants are sorted in a deterministic manner (by byte, ascending). Given that arbitrary variants are registered on-demand when they are found it complicates the sorting process a bit but it's still fairly reasonable.
This should fix the problem noted here: tailwindlabs/prettier-plugin-tailwindcss#106