SolutionParser.Parse - add support for parsing out configurations map
- Dominant language
- C#
- Stars
- 4.2k
- Forks
- 778
- Avg merge
- 1h 15m
- Merged PRs (30d)
- 19
Description
### Prerequisites
- [X] I have written a descriptive issue title
- [X] I have searched [issues](https://github.com/cake-build/cake/issues) to ensure it has not already been reported
### Cake runner
Cake Frosting
### Cake version
2.3.0
### Operating system
Windows
### Operating system architecture
64-Bit
### CI Server
_No response_
### What are you seeing?
SolutionParser.Parse should be able to parse also configurations map, so everything starting after
`GlobalSection(ProjectConfigurationPlatforms)` line.
It's also possible that some configurations are not harmonic - for example if solution has 3 main configurations:
`Debug, Release, RelDebug`. Then with higher percentage probability `RelDebug` configuration will be misconfigured for some of the projects.
General intention is that if project does not have it's own `RelDebug` configuration - then solution would use `Release` configuration instead. But solution's `RelDebug` can be mapped also to `Debug` causing misconfigurations in solution to happen.
There could be also other ways to misconfigure configurations - if for example solution uses project's `AnyCPU` and `x64` - then solution may map them more or less randomly causing compilation is skipped (e.g. if project does not have specific configuration) or end up with further errors.
It would be nice if Cake would provide original map of all configurations so it would be possible to report an error about such misconfigurations on solution level.
### What is expected?
Configuration map can be parsed out.
### Steps to Reproduce
Use `SolutionParser.Parse`
### Output log
_No response_
Contributor guide
Research direction
Start at SolutionParser.Parse and trace how content after GlobalSection(ProjectConfigurationPlatforms) is currently handled. Done means exposing the original solution-to-project configuration map, including non-harmonic mappings such as RelDebug to Release or Debug, and verifying it with a representative solution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100