mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-29 22:24:26 +00:00 
			
		
		
		
	tweak
This commit is contained in:
		| @@ -192,38 +192,9 @@ Components tested individually when they: | ||||
|  | ||||
| ### Making Components Groupable | ||||
|  | ||||
| Some components originally used `!extend` directives to add platform-specific parameters. These have been refactored to inline the full configuration, making them groupable: | ||||
| **WARNING**: Using `!extend` or `!remove` directives in component test files prevents automatic component grouping in CI, making builds slower. | ||||
|  | ||||
| **Before (non-groupable)**: | ||||
| ```yaml | ||||
| # test.esp32-s3-idf.yaml | ||||
| packages: | ||||
|   common: !include common.yaml | ||||
|  | ||||
| light: | ||||
|   - id: !extend led_strip1 | ||||
|     use_dma: "true"  # ESP32-S3 specific parameter | ||||
| ``` | ||||
|  | ||||
| **After (groupable)**: | ||||
| ```yaml | ||||
| # test.esp32-s3-idf.yaml | ||||
| # Configuration is inlined instead of using !extend to make this component groupable. | ||||
| # Using !extend prevents automatic component grouping in CI, requiring individual builds. | ||||
| light: | ||||
|   - platform: esp32_rmt_led_strip | ||||
|     id: led_strip1 | ||||
|     pin: ${pin1} | ||||
|     num_leds: 60 | ||||
|     rgb_order: GRB | ||||
|     chipset: ws2812 | ||||
|     use_dma: "true"  # ESP32-S3 specific parameter inlined | ||||
| ``` | ||||
|  | ||||
| **Migrated components**: | ||||
| - `remote_receiver/test.esp32-s3-idf.yaml` - Inlined DMA configuration | ||||
| - `remote_transmitter/test.esp32-s3-idf.yaml` - Inlined DMA configuration | ||||
| - `esp32_rmt_led_strip/test.esp32-s3-idf.yaml` - Inlined DMA configuration for two LED strips | ||||
| When platform-specific parameters are needed, inline the full configuration rather than using `!extend` or `!remove`. This allows the component to be grouped with other compatible components, reducing CI build time. | ||||
|  | ||||
| **Note**: Some components legitimately require `!extend` or `!remove` for platform-specific features (e.g., `adc` removing ESP32-only `attenuation` parameter on ESP8266). These are correctly identified as non-groupable. | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user