Closed SvenMarcus closed 4 years ago
That is currently "by design" the Id
tag is required to be globally unique - whereas the Name
tag is not - the idea here was that you still have a global key (moslty for referencing) and a "display name" for output.
I personally wouldn't change that, but if that makes things easier (and at least to the user it should) I'd propose the following change:
<Project Id="B">
<Jobs>
<Job Name="Build">
</Job>
</Jobs>
</Project>
The reason for not changing both tags to "Name" is mostly that they do behave differently when validated, so I want to avoid confusion on that front.
Project.Id
still retains its global uniqueness prerequisite.
Task.Name
still has to be a proper xs:name
type but is no longer globally unique.
For the purpose of properly identifying jobs in any sort of output, we should make sure that the output always uses the the FQN of the Job, so the Message "Task 'Build' failed with exit code 123" would become "Task 'B.Build' failed with exit code 123".
after some discussion on dicord, we're sticking to the IDs as this allows us to properly validate configurations on load.
Currently Projects, Jobs and Task need to have unique identifier. However when dealing with multiple Projects names for Jobs or Tasks should be reusable. For example there could be a "Build" Job for two different Projects.