cake-build / cake-build/cake

SolutionParser.Parse - add support for parsing out configurations map

Open
#4,079 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.