Skip to content

csskit_proc_macro: Don't eagerly optimise alternates - #1387

Merged
keithamus merged 1 commit into
mainfrom
csskit-proc-macro-don-t-eagerly-optimise-alternates
Aug 9, 2026
Merged

csskit_proc_macro: Don't eagerly optimise alternates#1387
keithamus merged 1 commit into
mainfrom
csskit-proc-macro-don-t-eagerly-optimise-alternates

Conversation

@keithamus

Copy link
Copy Markdown
Member

Def::optimize distributed alternate groups across a set of Options, which was
useful for simple types but can explode variants with many combinations.
When one || list holds two or more groups, for example, this can cause
many variants which fails parsing.

This change ensures more complex alternates are not optimised, and instead
hoisted into the {Ident}Keywords enums. Single groups still get
optimised but a combination of combinators change. This gives us the
ability to properly parse some properties in different orders
(allowable per grammar) and changes some enums to structs.

Def::optimize distributed alternate groups across a set of Options, which was
useful for simple types but can explode variants with many combinations.
When one `||` list holds two or more groups, for example, this can cause
many variants which fails parsing.

This change ensures more complex alternates are _not_ optimised, and instead
hoisted into the `{Ident}Keywords` enums. Single groups still get
optimised but a combination of combinators change. This gives us the
ability to properly parse some properties in different orders
(allowable per grammar) and changes some enums to structs.
@keithamus
keithamus enabled auto-merge (squash) August 9, 2026 20:31
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

✅ CI passed

Job Result
Build & Test (win32-x64, win32-arm64, linux-x64, linux-arm64, darwin-x64, darwin-arm64) ✅ success
Build & Test (default features) ✅ success
Build & Test (nightly) ✅ success
Build each library ✅ success
Build benches ✅ success
Acceptance Tests ✅ success
Fuzz Corpus Replay ✅ success

@keithamus
keithamus merged commit 3478ae5 into main Aug 9, 2026
18 of 19 checks passed
@keithamus
keithamus deleted the csskit-proc-macro-don-t-eagerly-optimise-alternates branch August 9, 2026 20:41
@keithamus keithamus mentioned this pull request Aug 9, 2026
github-actions Bot pushed a commit that referenced this pull request Aug 9, 2026
## [0.0.29] - 2026-08-09

### Other Changes
- Csskit_spec_generator: Move out of crates/ into tools/ (#1331) ([#1331](#1331))
- Default debug builds to line-tables-only (#1333) ([#1333](#1333))
- Chore(deps): update dependencies (patch) (#1335) ([#1335](#1335))
- Fuzz: Use css_parse sepcified allocator (#1339) ([#1339](#1339))
- Csskit_spec_generator: Pass workspace_root to generate_property_atoms (#1368) ([#1368](#1368))
- Csskit_spec_generator: Read & emit commit sha when generating individual specs (#1383) ([#1383](#1383))

### Chromashift
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder, size tests (#1323) ([#1323](#1323))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1311) ([#1311](#1311))
- chore(deps): update dependency rust to v1.97.1 (#1322) ([#1322](#1322))
- css_parse: Re-export `Arena` as Bumpalo, rename `bump` to `alloc` (#1326) ([#1326](#1326))
- csskit_arena: Introduce csskit_arena (#1327) ([#1327](#1327))
- Fix clippy errors (#1329) ([#1329](#1329))
- css_ast: repr(C) all nodes, introduce stable-type-layout. (#1334) ([#1334](#1334))
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator (#1340) ([#1340](#1340))
- css_ast: Implement ray() function (#1342) ([#1342](#1342))
- css_ast: Implement palette-mix() function (#1343) ([#1343](#1343))
- css_ast: Implement calc-size() function (#1344) ([#1344](#1344))
- css_ast: Implement Autospace (#1345) ([#1345](#1345))
- css_ast: Implement TextEdge (#1346) ([#1346](#1346))
- css_ast: Implement ContentLevel (#1347) ([#1347](#1347))
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based allocations, drop bumpalo (#1348) ([#1348](#1348))
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat) (#1349) ([#1349](#1349))
- css_ast: Implement SingleAnimation (#1350) ([#1350](#1350))
- css_ast: Implement CSS 4 images functions (#1351) ([#1351](#1351))
- css_ast: Implement fade() function (#1352) ([#1352](#1352))
- css_ast: Implement mask-layer() (#1353) ([#1353](#1353))
- css_ast: Implement TimelineRangeCenterSubject (#1354) ([#1354](#1354))
- css_ast: Implement remaining todo media features (#1355) ([#1355](#1355))
- css_ast: Implement @scope rule (#1356) ([#1356](#1356))
- css_ast: Implement @color-profile rule (#1357) ([#1357](#1357))
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue (#1358) ([#1358](#1358))
- css_ast: Implement @font-feature-values (#1359) ([#1359](#1359))
- css_ast: Implement @font-palette-values (#1360) ([#1360](#1360))
- css_ast: Implement Syntax (#1361) ([#1361](#1361))
- css_ast: Implement tree counting functions, NumericValue<T> (#1362) ([#1362](#1362))
- css_ast: Drop Todo, clean up imports (#1364) ([#1364](#1364))
- csskit_ast: Unflag stable_type_layout from test. (#1367) ([#1367](#1367))
- Regenerate css_ast/src/values & css_feature_data from csswg drafts (#1369) ([#1369](#1369))
- css_ast: Generate Value<> slots for all keywords (#1370) ([#1370](#1370))
- css_ast: Fix errors in MathML tags (#1371) ([#1371](#1371))
- css_ast: Add new pseudo classes from various specs (#1372) ([#1372](#1372))
- css_ast/csskit_ast: Optimise NodeId code (#1373) ([#1373](#1373))
- css_ast: Fix panic in unexpected_pseudo_class diagnostic (#1374) ([#1374](#1374))
- css_ast: Delete dead macro code (#1376) ([#1376](#1376))
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes (#1377) ([#1377](#1377))
- css_ast: Implement RotateStyleValue (#1378) ([#1378](#1378))
- css_ast: Implement nav-* style values (#1379) ([#1379](#1379))
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing frequency (#1380) ([#1380](#1380))
- css_ast: Implement remaining background properties (#1381) ([#1381](#1381))
- css_ast: Implement offset style value (#1382) ([#1382](#1382))
- css_ast: IMplement font-variant-alternates style value (#1384) ([#1384](#1384))
- css_ast: Implement mask-border style value (#1385) ([#1385](#1385))
- css_ast: Implement border-image style value (#1386) ([#1386](#1386))
- csskit_proc_macro: Don't eagerly optimise alternates (#1387) ([#1387](#1387))
- css_ast: Implement FontVariantStyleValue (#1388) ([#1388](#1388))

### Css_parse
- css_parse: Implement an Arena allocated String (#1324) ([#1324](#1324))
- css_parse/csskit/csskit_transform: Use css_parse::String where possible (#1325) ([#1325](#1325))
- css_parse: Clean up imports with preludes (#1365) ([#1365](#1365))

### Css_value_definition_parser
- csskit_source_finder/css_value_definition_parser: Autogeenerate list of sized types (#1363) ([#1363](#1363))

### Csskit
- chore(deps): update dependencies (patch) (#1312) ([#1312](#1312))
- csskit-wasm: Fix wasm-opt errors (#1330) ([#1330](#1330))
- csskit: Clean up imports with preludes (#1366) ([#1366](#1366))

### Csskit_arena
- csskit_arena: Add with_initial_capacity (#1375) ([#1375](#1375))

### Csskit_lsp
- csskit_lsp: Don't create new Arenas for each LineIndex (#1341) ([#1341](#1341))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.73.0 (#1318) ([#1318](#1318))
- chore(deps): update dependency @vscode/test-electron to v3.1.0 (#1313) ([#1313](#1313))
- chore(deps): update dependency oxlint to v1.75.0 (#1320) ([#1320](#1320))
- chore(deps): update dependency prettier to v3.9.6 (#1321) ([#1321](#1321))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Aug 9, 2026
## [0.0.29] - 2026-08-09

### Other Changes
- Csskit_spec_generator: Move out of crates/ into tools/ (#1331) ([#1331](#1331))
- Default debug builds to line-tables-only (#1333) ([#1333](#1333))
- Chore(deps): update dependencies (patch) (#1335) ([#1335](#1335))
- Fuzz: Use css_parse sepcified allocator (#1339) ([#1339](#1339))
- Csskit_spec_generator: Pass workspace_root to generate_property_atoms (#1368) ([#1368](#1368))
- Csskit_spec_generator: Read & emit commit sha when generating individual specs (#1383) ([#1383](#1383))

### Chromashift
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder, size tests (#1323) ([#1323](#1323))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1311) ([#1311](#1311))
- chore(deps): update dependency rust to v1.97.1 (#1322) ([#1322](#1322))
- css_parse: Re-export `Arena` as Bumpalo, rename `bump` to `alloc` (#1326) ([#1326](#1326))
- csskit_arena: Introduce csskit_arena (#1327) ([#1327](#1327))
- Fix clippy errors (#1329) ([#1329](#1329))
- css_ast: repr(C) all nodes, introduce stable-type-layout. (#1334) ([#1334](#1334))
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator (#1340) ([#1340](#1340))
- css_ast: Implement ray() function (#1342) ([#1342](#1342))
- css_ast: Implement palette-mix() function (#1343) ([#1343](#1343))
- css_ast: Implement calc-size() function (#1344) ([#1344](#1344))
- css_ast: Implement Autospace (#1345) ([#1345](#1345))
- css_ast: Implement TextEdge (#1346) ([#1346](#1346))
- css_ast: Implement ContentLevel (#1347) ([#1347](#1347))
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based allocations, drop bumpalo (#1348) ([#1348](#1348))
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat) (#1349) ([#1349](#1349))
- css_ast: Implement SingleAnimation (#1350) ([#1350](#1350))
- css_ast: Implement CSS 4 images functions (#1351) ([#1351](#1351))
- css_ast: Implement fade() function (#1352) ([#1352](#1352))
- css_ast: Implement mask-layer() (#1353) ([#1353](#1353))
- css_ast: Implement TimelineRangeCenterSubject (#1354) ([#1354](#1354))
- css_ast: Implement remaining todo media features (#1355) ([#1355](#1355))
- css_ast: Implement @scope rule (#1356) ([#1356](#1356))
- css_ast: Implement @color-profile rule (#1357) ([#1357](#1357))
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue (#1358) ([#1358](#1358))
- css_ast: Implement @font-feature-values (#1359) ([#1359](#1359))
- css_ast: Implement @font-palette-values (#1360) ([#1360](#1360))
- css_ast: Implement Syntax (#1361) ([#1361](#1361))
- css_ast: Implement tree counting functions, NumericValue<T> (#1362) ([#1362](#1362))
- css_ast: Drop Todo, clean up imports (#1364) ([#1364](#1364))
- csskit_ast: Unflag stable_type_layout from test. (#1367) ([#1367](#1367))
- Regenerate css_ast/src/values & css_feature_data from csswg drafts (#1369) ([#1369](#1369))
- css_ast: Generate Value<> slots for all keywords (#1370) ([#1370](#1370))
- css_ast: Fix errors in MathML tags (#1371) ([#1371](#1371))
- css_ast: Add new pseudo classes from various specs (#1372) ([#1372](#1372))
- css_ast/csskit_ast: Optimise NodeId code (#1373) ([#1373](#1373))
- css_ast: Fix panic in unexpected_pseudo_class diagnostic (#1374) ([#1374](#1374))
- css_ast: Delete dead macro code (#1376) ([#1376](#1376))
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes (#1377) ([#1377](#1377))
- css_ast: Implement RotateStyleValue (#1378) ([#1378](#1378))
- css_ast: Implement nav-* style values (#1379) ([#1379](#1379))
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing frequency (#1380) ([#1380](#1380))
- css_ast: Implement remaining background properties (#1381) ([#1381](#1381))
- css_ast: Implement offset style value (#1382) ([#1382](#1382))
- css_ast: IMplement font-variant-alternates style value (#1384) ([#1384](#1384))
- css_ast: Implement mask-border style value (#1385) ([#1385](#1385))
- css_ast: Implement border-image style value (#1386) ([#1386](#1386))
- csskit_proc_macro: Don't eagerly optimise alternates (#1387) ([#1387](#1387))
- css_ast: Implement FontVariantStyleValue (#1388) ([#1388](#1388))

### Css_parse
- css_parse: Implement an Arena allocated String (#1324) ([#1324](#1324))
- css_parse/csskit/csskit_transform: Use css_parse::String where possible (#1325) ([#1325](#1325))
- css_parse: Clean up imports with preludes (#1365) ([#1365](#1365))

### Css_value_definition_parser
- csskit_source_finder/css_value_definition_parser: Autogeenerate list of sized types (#1363) ([#1363](#1363))

### Csskit
- chore(deps): update dependencies (patch) (#1312) ([#1312](#1312))
- csskit-wasm: Fix wasm-opt errors (#1330) ([#1330](#1330))
- csskit: Clean up imports with preludes (#1366) ([#1366](#1366))

### Csskit_arena
- csskit_arena: Add with_initial_capacity (#1375) ([#1375](#1375))

### Csskit_lsp
- csskit_lsp: Don't create new Arenas for each LineIndex (#1341) ([#1341](#1341))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.73.0 (#1318) ([#1318](#1318))
- chore(deps): update dependency @vscode/test-electron to v3.1.0 (#1313) ([#1313](#1313))
- chore(deps): update dependency oxlint to v1.75.0 (#1320) ([#1320](#1320))
- chore(deps): update dependency prettier to v3.9.6 (#1321) ([#1321](#1321))
github-actions Bot pushed a commit that referenced this pull request Aug 14, 2026
## [0.0.29] - 2026-08-14

### Other Changes
- Csskit_spec_generator: Move out of crates/ into tools/ (#1331) ([#1331](#1331))
- Default debug builds to line-tables-only (#1333) ([#1333](#1333))
- Chore(deps): update dependencies (patch) (#1335) ([#1335](#1335))
- Fuzz: Use css_parse sepcified allocator (#1339) ([#1339](#1339))
- Csskit_spec_generator: Pass workspace_root to generate_property_atoms (#1368) ([#1368](#1368))
- Csskit_spec_generator: Read & emit commit sha when generating individual specs (#1383) ([#1383](#1383))

### Chromashift
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder, size tests (#1323) ([#1323](#1323))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1311) ([#1311](#1311))
- chore(deps): update dependency rust to v1.97.1 (#1322) ([#1322](#1322))
- css_parse: Re-export `Arena` as Bumpalo, rename `bump` to `alloc` (#1326) ([#1326](#1326))
- csskit_arena: Introduce csskit_arena (#1327) ([#1327](#1327))
- Fix clippy errors (#1329) ([#1329](#1329))
- css_ast: repr(C) all nodes, introduce stable-type-layout. (#1334) ([#1334](#1334))
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator (#1340) ([#1340](#1340))
- css_ast: Implement ray() function (#1342) ([#1342](#1342))
- css_ast: Implement palette-mix() function (#1343) ([#1343](#1343))
- css_ast: Implement calc-size() function (#1344) ([#1344](#1344))
- css_ast: Implement Autospace (#1345) ([#1345](#1345))
- css_ast: Implement TextEdge (#1346) ([#1346](#1346))
- css_ast: Implement ContentLevel (#1347) ([#1347](#1347))
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based allocations, drop bumpalo (#1348) ([#1348](#1348))
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat) (#1349) ([#1349](#1349))
- css_ast: Implement SingleAnimation (#1350) ([#1350](#1350))
- css_ast: Implement CSS 4 images functions (#1351) ([#1351](#1351))
- css_ast: Implement fade() function (#1352) ([#1352](#1352))
- css_ast: Implement mask-layer() (#1353) ([#1353](#1353))
- css_ast: Implement TimelineRangeCenterSubject (#1354) ([#1354](#1354))
- css_ast: Implement remaining todo media features (#1355) ([#1355](#1355))
- css_ast: Implement @scope rule (#1356) ([#1356](#1356))
- css_ast: Implement @color-profile rule (#1357) ([#1357](#1357))
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue (#1358) ([#1358](#1358))
- css_ast: Implement @font-feature-values (#1359) ([#1359](#1359))
- css_ast: Implement @font-palette-values (#1360) ([#1360](#1360))
- css_ast: Implement Syntax (#1361) ([#1361](#1361))
- css_ast: Implement tree counting functions, NumericValue<T> (#1362) ([#1362](#1362))
- css_ast: Drop Todo, clean up imports (#1364) ([#1364](#1364))
- csskit_ast: Unflag stable_type_layout from test. (#1367) ([#1367](#1367))
- Regenerate css_ast/src/values & css_feature_data from csswg drafts (#1369) ([#1369](#1369))
- css_ast: Generate Value<> slots for all keywords (#1370) ([#1370](#1370))
- css_ast: Fix errors in MathML tags (#1371) ([#1371](#1371))
- css_ast: Add new pseudo classes from various specs (#1372) ([#1372](#1372))
- css_ast/csskit_ast: Optimise NodeId code (#1373) ([#1373](#1373))
- css_ast: Fix panic in unexpected_pseudo_class diagnostic (#1374) ([#1374](#1374))
- css_ast: Delete dead macro code (#1376) ([#1376](#1376))
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes (#1377) ([#1377](#1377))
- css_ast: Implement RotateStyleValue (#1378) ([#1378](#1378))
- css_ast: Implement nav-* style values (#1379) ([#1379](#1379))
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing frequency (#1380) ([#1380](#1380))
- css_ast: Implement remaining background properties (#1381) ([#1381](#1381))
- css_ast: Implement offset style value (#1382) ([#1382](#1382))
- css_ast: IMplement font-variant-alternates style value (#1384) ([#1384](#1384))
- css_ast: Implement mask-border style value (#1385) ([#1385](#1385))
- css_ast: Implement border-image style value (#1386) ([#1386](#1386))
- csskit_proc_macro: Don't eagerly optimise alternates (#1387) ([#1387](#1387))
- css_ast: Implement FontVariantStyleValue (#1388) ([#1388](#1388))
- css_ast: Add revert-rule keyword (#1393) ([#1393](#1393))
- css_ast: Add missing pseudo elements from various specs (#1394) ([#1394](#1394))
- css_ast: Implement -webkit-animation style value (#1396) ([#1396](#1396))
- css_ast: ...actually implement -webkit-animation (#1397) ([#1397](#1397))
- css_ast: Group -webkit-animation properties (#1398) ([#1398](#1398))
- css_ast: Implement font shorthand (#1399) ([#1399](#1399))
- css_ast: Implement @font-face style values (#1403) ([#1403](#1403))

### Css_parse
- css_parse: Implement an Arena allocated String (#1324) ([#1324](#1324))
- css_parse/csskit/csskit_transform: Use css_parse::String where possible (#1325) ([#1325](#1325))
- css_parse: Clean up imports with preludes (#1365) ([#1365](#1365))

### Css_value_definition_parser
- csskit_source_finder/css_value_definition_parser: Autogeenerate list of sized types (#1363) ([#1363](#1363))
- csskit_source_finder: Ignore types inside test modules (#1400) ([#1400](#1400))

### Csskit
- chore(deps): update dependencies (patch) (#1312) ([#1312](#1312))
- csskit-wasm: Fix wasm-opt errors (#1330) ([#1330](#1330))
- csskit: Clean up imports with preludes (#1366) ([#1366](#1366))

### Csskit_arena
- csskit_arena: Add with_initial_capacity (#1375) ([#1375](#1375))

### Csskit_lsp
- csskit_lsp: Don't create new Arenas for each LineIndex (#1341) ([#1341](#1341))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.73.0 (#1318) ([#1318](#1318))
- chore(deps): update dependency @vscode/test-electron to v3.1.0 (#1313) ([#1313](#1313))
- chore(deps): update dependency oxlint to v1.75.0 (#1320) ([#1320](#1320))
- chore(deps): update dependency prettier to v3.9.6 (#1321) ([#1321](#1321))
- chore(deps): update dependencies (patch) (#1389) ([#1389](#1389))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Aug 14, 2026
## [0.0.29] - 2026-08-14

### Other Changes
- Csskit_spec_generator: Move out of crates/ into tools/ (#1331) ([#1331](#1331))
- Default debug builds to line-tables-only (#1333) ([#1333](#1333))
- Chore(deps): update dependencies (patch) (#1335) ([#1335](#1335))
- Fuzz: Use css_parse sepcified allocator (#1339) ([#1339](#1339))
- Csskit_spec_generator: Pass workspace_root to generate_property_atoms (#1368) ([#1368](#1368))
- Csskit_spec_generator: Read & emit commit sha when generating individual specs (#1383) ([#1383](#1383))

### Chromashift
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder, size tests (#1323) ([#1323](#1323))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1311) ([#1311](#1311))
- chore(deps): update dependency rust to v1.97.1 (#1322) ([#1322](#1322))
- css_parse: Re-export `Arena` as Bumpalo, rename `bump` to `alloc` (#1326) ([#1326](#1326))
- csskit_arena: Introduce csskit_arena (#1327) ([#1327](#1327))
- Fix clippy errors (#1329) ([#1329](#1329))
- css_ast: repr(C) all nodes, introduce stable-type-layout. (#1334) ([#1334](#1334))
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator (#1340) ([#1340](#1340))
- css_ast: Implement ray() function (#1342) ([#1342](#1342))
- css_ast: Implement palette-mix() function (#1343) ([#1343](#1343))
- css_ast: Implement calc-size() function (#1344) ([#1344](#1344))
- css_ast: Implement Autospace (#1345) ([#1345](#1345))
- css_ast: Implement TextEdge (#1346) ([#1346](#1346))
- css_ast: Implement ContentLevel (#1347) ([#1347](#1347))
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based allocations, drop bumpalo (#1348) ([#1348](#1348))
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat) (#1349) ([#1349](#1349))
- css_ast: Implement SingleAnimation (#1350) ([#1350](#1350))
- css_ast: Implement CSS 4 images functions (#1351) ([#1351](#1351))
- css_ast: Implement fade() function (#1352) ([#1352](#1352))
- css_ast: Implement mask-layer() (#1353) ([#1353](#1353))
- css_ast: Implement TimelineRangeCenterSubject (#1354) ([#1354](#1354))
- css_ast: Implement remaining todo media features (#1355) ([#1355](#1355))
- css_ast: Implement @scope rule (#1356) ([#1356](#1356))
- css_ast: Implement @color-profile rule (#1357) ([#1357](#1357))
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue (#1358) ([#1358](#1358))
- css_ast: Implement @font-feature-values (#1359) ([#1359](#1359))
- css_ast: Implement @font-palette-values (#1360) ([#1360](#1360))
- css_ast: Implement Syntax (#1361) ([#1361](#1361))
- css_ast: Implement tree counting functions, NumericValue<T> (#1362) ([#1362](#1362))
- css_ast: Drop Todo, clean up imports (#1364) ([#1364](#1364))
- csskit_ast: Unflag stable_type_layout from test. (#1367) ([#1367](#1367))
- Regenerate css_ast/src/values & css_feature_data from csswg drafts (#1369) ([#1369](#1369))
- css_ast: Generate Value<> slots for all keywords (#1370) ([#1370](#1370))
- css_ast: Fix errors in MathML tags (#1371) ([#1371](#1371))
- css_ast: Add new pseudo classes from various specs (#1372) ([#1372](#1372))
- css_ast/csskit_ast: Optimise NodeId code (#1373) ([#1373](#1373))
- css_ast: Fix panic in unexpected_pseudo_class diagnostic (#1374) ([#1374](#1374))
- css_ast: Delete dead macro code (#1376) ([#1376](#1376))
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes (#1377) ([#1377](#1377))
- css_ast: Implement RotateStyleValue (#1378) ([#1378](#1378))
- css_ast: Implement nav-* style values (#1379) ([#1379](#1379))
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing frequency (#1380) ([#1380](#1380))
- css_ast: Implement remaining background properties (#1381) ([#1381](#1381))
- css_ast: Implement offset style value (#1382) ([#1382](#1382))
- css_ast: IMplement font-variant-alternates style value (#1384) ([#1384](#1384))
- css_ast: Implement mask-border style value (#1385) ([#1385](#1385))
- css_ast: Implement border-image style value (#1386) ([#1386](#1386))
- csskit_proc_macro: Don't eagerly optimise alternates (#1387) ([#1387](#1387))
- css_ast: Implement FontVariantStyleValue (#1388) ([#1388](#1388))
- css_ast: Add revert-rule keyword (#1393) ([#1393](#1393))
- css_ast: Add missing pseudo elements from various specs (#1394) ([#1394](#1394))
- css_ast: Implement -webkit-animation style value (#1396) ([#1396](#1396))
- css_ast: ...actually implement -webkit-animation (#1397) ([#1397](#1397))
- css_ast: Group -webkit-animation properties (#1398) ([#1398](#1398))
- css_ast: Implement font shorthand (#1399) ([#1399](#1399))
- css_ast: Implement @font-face style values (#1403) ([#1403](#1403))

### Css_parse
- css_parse: Implement an Arena allocated String (#1324) ([#1324](#1324))
- css_parse/csskit/csskit_transform: Use css_parse::String where possible (#1325) ([#1325](#1325))
- css_parse: Clean up imports with preludes (#1365) ([#1365](#1365))

### Css_value_definition_parser
- csskit_source_finder/css_value_definition_parser: Autogeenerate list of sized types (#1363) ([#1363](#1363))
- csskit_source_finder: Ignore types inside test modules (#1400) ([#1400](#1400))

### Csskit
- chore(deps): update dependencies (patch) (#1312) ([#1312](#1312))
- csskit-wasm: Fix wasm-opt errors (#1330) ([#1330](#1330))
- csskit: Clean up imports with preludes (#1366) ([#1366](#1366))

### Csskit_arena
- csskit_arena: Add with_initial_capacity (#1375) ([#1375](#1375))

### Csskit_lsp
- csskit_lsp: Don't create new Arenas for each LineIndex (#1341) ([#1341](#1341))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.73.0 (#1318) ([#1318](#1318))
- chore(deps): update dependency @vscode/test-electron to v3.1.0 (#1313) ([#1313](#1313))
- chore(deps): update dependency oxlint to v1.75.0 (#1320) ([#1320](#1320))
- chore(deps): update dependency prettier to v3.9.6 (#1321) ([#1321](#1321))
- chore(deps): update dependencies (patch) (#1389) ([#1389](#1389))
keithamus added a commit that referenced this pull request Aug 14, 2026
## [0.0.29] - 2026-08-14

### Other Changes
- Csskit_spec_generator: Move out of crates/ into tools/ (#1331)
([#1331](#1331))
- Default debug builds to line-tables-only (#1333)
([#1333](#1333))
- Chore(deps): update dependencies (patch) (#1335)
([#1335](#1335))
- Fuzz: Use css_parse sepcified allocator (#1339)
([#1339](#1339))
- Csskit_spec_generator: Pass workspace_root to generate_property_atoms
(#1368) ([#1368](#1368))
- Csskit_spec_generator: Read & emit commit sha when generating
individual specs (#1383)
([#1383](#1383))


### Chromashift
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder,
size tests (#1323) ([#1323](#1323))


### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1311)
([#1311](#1311))
- chore(deps): update dependency rust to v1.97.1 (#1322)
([#1322](#1322))
- css_parse: Re-export `Arena` as Bumpalo, rename `bump` to `alloc`
(#1326) ([#1326](#1326))
- csskit_arena: Introduce csskit_arena (#1327)
([#1327](#1327))
- Fix clippy errors (#1329)
([#1329](#1329))
- css_ast: repr(C) all nodes, introduce stable-type-layout. (#1334)
([#1334](#1334))
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator
(#1340) ([#1340](#1340))
- css_ast: Implement ray() function (#1342)
([#1342](#1342))
- css_ast: Implement palette-mix() function (#1343)
([#1343](#1343))
- css_ast: Implement calc-size() function (#1344)
([#1344](#1344))
- css_ast: Implement Autospace (#1345)
([#1345](#1345))
- css_ast: Implement TextEdge (#1346)
([#1346](#1346))
- css_ast: Implement ContentLevel (#1347)
([#1347](#1347))
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based
allocations, drop bumpalo (#1348)
([#1348](#1348))
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat)
(#1349) ([#1349](#1349))
- css_ast: Implement SingleAnimation (#1350)
([#1350](#1350))
- css_ast: Implement CSS 4 images functions (#1351)
([#1351](#1351))
- css_ast: Implement fade() function (#1352)
([#1352](#1352))
- css_ast: Implement mask-layer() (#1353)
([#1353](#1353))
- css_ast: Implement TimelineRangeCenterSubject (#1354)
([#1354](#1354))
- css_ast: Implement remaining todo media features (#1355)
([#1355](#1355))
- css_ast: Implement @scope rule (#1356)
([#1356](#1356))
- css_ast: Implement @color-profile rule (#1357)
([#1357](#1357))
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue
(#1358) ([#1358](#1358))
- css_ast: Implement @font-feature-values (#1359)
([#1359](#1359))
- css_ast: Implement @font-palette-values (#1360)
([#1360](#1360))
- css_ast: Implement Syntax (#1361)
([#1361](#1361))
- css_ast: Implement tree counting functions, NumericValue<T> (#1362)
([#1362](#1362))
- css_ast: Drop Todo, clean up imports (#1364)
([#1364](#1364))
- csskit_ast: Unflag stable_type_layout from test. (#1367)
([#1367](#1367))
- Regenerate css_ast/src/values & css_feature_data from csswg drafts
(#1369) ([#1369](#1369))
- css_ast: Generate Value<> slots for all keywords (#1370)
([#1370](#1370))
- css_ast: Fix errors in MathML tags (#1371)
([#1371](#1371))
- css_ast: Add new pseudo classes from various specs (#1372)
([#1372](#1372))
- css_ast/csskit_ast: Optimise NodeId code (#1373)
([#1373](#1373))
- css_ast: Fix panic in unexpected_pseudo_class diagnostic (#1374)
([#1374](#1374))
- css_ast: Delete dead macro code (#1376)
([#1376](#1376))
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes
(#1377) ([#1377](#1377))
- css_ast: Implement RotateStyleValue (#1378)
([#1378](#1378))
- css_ast: Implement nav-* style values (#1379)
([#1379](#1379))
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing
frequency (#1380) ([#1380](#1380))
- css_ast: Implement remaining background properties (#1381)
([#1381](#1381))
- css_ast: Implement offset style value (#1382)
([#1382](#1382))
- css_ast: IMplement font-variant-alternates style value (#1384)
([#1384](#1384))
- css_ast: Implement mask-border style value (#1385)
([#1385](#1385))
- css_ast: Implement border-image style value (#1386)
([#1386](#1386))
- csskit_proc_macro: Don't eagerly optimise alternates (#1387)
([#1387](#1387))
- css_ast: Implement FontVariantStyleValue (#1388)
([#1388](#1388))
- css_ast: Add revert-rule keyword (#1393)
([#1393](#1393))
- css_ast: Add missing pseudo elements from various specs (#1394)
([#1394](#1394))
- css_ast: Implement -webkit-animation style value (#1396)
([#1396](#1396))
- css_ast: ...actually implement -webkit-animation (#1397)
([#1397](#1397))
- css_ast: Group -webkit-animation properties (#1398)
([#1398](#1398))
- css_ast: Implement font shorthand (#1399)
([#1399](#1399))
- css_ast: Implement @font-face style values (#1403)
([#1403](#1403))


### Css_parse
- css_parse: Implement an Arena allocated String (#1324)
([#1324](#1324))
- css_parse/csskit/csskit_transform: Use css_parse::String where
possible (#1325) ([#1325](#1325))
- css_parse: Clean up imports with preludes (#1365)
([#1365](#1365))


### Css_value_definition_parser
- csskit_source_finder/css_value_definition_parser: Autogeenerate list
of sized types (#1363)
([#1363](#1363))
- csskit_source_finder: Ignore types inside test modules (#1400)
([#1400](#1400))


### Csskit
- chore(deps): update dependencies (patch) (#1312)
([#1312](#1312))
- csskit-wasm: Fix wasm-opt errors (#1330)
([#1330](#1330))
- csskit: Clean up imports with preludes (#1366)
([#1366](#1366))


### Csskit_arena
- csskit_arena: Add with_initial_capacity (#1375)
([#1375](#1375))


### Csskit_lsp
- csskit_lsp: Don't create new Arenas for each LineIndex (#1341)
([#1341](#1341))


### Csskit_vscode
- chore(deps): update dependency oxlint to v1.73.0 (#1318)
([#1318](#1318))
- chore(deps): update dependency @vscode/test-electron to v3.1.0 (#1313)
([#1313](#1313))
- chore(deps): update dependency oxlint to v1.75.0 (#1320)
([#1320](#1320))
- chore(deps): update dependency prettier to v3.9.6 (#1321)
([#1321](#1321))
- chore(deps): update dependencies (patch) (#1389)
([#1389](#1389))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant