Provide attributes for supported runners, operating systems and runners in extensions
- Dominant language
- C#
- Stars
- 4.2k
- Forks
- 778
- Avg merge
- 1h 15m
- Merged PRs (30d)
- 19
Description
There's currently no structured way for an extension to express on which Cake runner, operating system or platform it runs. There might be issues with dependencies on different runners, issues with paths on different operating systems or an addin can target a more restrictive set of TFM than what Cake is available on.
Current [guidelines](https://cakebuild.net/docs/extending/addins/best-practices#testing) suggests to mention this in XML comment. It would be helpful to have attributes available:
- SupportedRunnersAttribute
- SupportedOperatingSystemsAttribute
- SupportedPlatformsAttribute
These addins can be used for two cases:
- On the website it allows to show this information as metadata for each addin. It also allows to filter to extensions which support a specific runner, operating system or platform.
- In Cake we can throw an error if user tries to run with an extension not supported in the current environment.
Existing addins which don't provide attributes should be treated as compatible, with a warning.
Contributor guide
Research direction
The issue names no files or tests; begin with the linked addin testing guidelines and trace how extension metadata is currently represented. Define how the three proposed attributes support website metadata and Cake compatibility checks, including the warning behavior for missing attributes. Done means supported runners, operating systems, and platforms can be declared and consumed for both use cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100