This issue is critically blocked by JENKINS-45503
If there are two traits with the same @Symbol annotation then the annotation is ignored, thus until the generic discovery traits have been consolidated into SCM-API, we cannot add the @Symbol annotations that we would want to them.
Ideally we would have
@Symbol("discoverBranches")
public class BranchDiscoveryTrait { ... }
But without JENKINS-45503 we would be forced to implement this as
@Symbol("discoverGitBranches")
public class BranchDiscoveryTrait { ... }
@Symbol("discoverGitHubBranches")
public class BranchDiscoveryTrait { ... }
@Symbol("discoverBitbucketBranches")
public class BranchDiscoveryTrait { ... }
Furthermore, if we added those annotations, then existing usage would be broken as soon as JENKINS-45503 was implemented unless SCM API had
@Symbol({"discoverBranches","discoverGitBranches","discoverGitHubBranches","discoverBitbucketBranches"})
public class BranchDiscoveryTrait { ... }
Which is effectively encoding SCM specific names into the generic API
This issue is critically blocked by JENKINS-45503
If there are two traits with the same @Symbol annotation then the annotation is ignored, thus until the generic discovery traits have been consolidated into SCM-API, we cannot add the @Symbol annotations that we would want to them.
Ideally we would have
But without JENKINS-45503 we would be forced to implement this as
Furthermore, if we added those annotations, then existing usage would be broken as soon as JENKINS-45503 was implemented unless SCM API had
Which is effectively encoding SCM specific names into the generic API