You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub-issue under #73 (umbrella modularization). Sibling to #72 (tools split).
Scope
src/Fallout.Common/CI/ currently bundles all 11 CI provider integrations into a single package. Split each into its own Fallout.CI.<Provider> project + NuGet package.
A new Fallout.CI.Abstractions package may emerge for the shared base classes (ConfigurationAttributeBase, ConfigurationGenerationGenerator, etc.) that every provider package depends on. Decision during implementation.
Mechanical plan
Decide on Fallout.CI.Abstractions — yes / no. If yes, what's in it.
Create per-provider projects under src/Fallout.CI.<Provider>/. Each references Fallout.Common (or Fallout.CI.Abstractions if introduced).
Breaking for consumers. New <PackageReference Include="Fallout.CI.GitHubActions" /> + using Fallout.CI.GitHubActions; instead of using Fallout.Common.CI.GitHubActions;. Both mechanical, fallout-migrate should handle.
Sub-issue under #73 (umbrella modularization). Sibling to #72 (tools split).
Scope
src/Fallout.Common/CI/currently bundles all 11 CI provider integrations into a single package. Split each into its ownFallout.CI.<Provider>project + NuGet package.src/Fallout.Common/CI/AppVeyor/src/Fallout.CI.AppVeyor/→Fallout.CI.AppVeyorpackagesrc/Fallout.Common/CI/AzurePipelines/src/Fallout.CI.AzurePipelines/→Fallout.CI.AzurePipelinespackagesrc/Fallout.Common/CI/Bamboo/src/Fallout.CI.Bamboo/→Fallout.CI.Bamboopackagesrc/Fallout.Common/CI/Bitbucket/src/Fallout.CI.Bitbucket/→Fallout.CI.Bitbucketpackagesrc/Fallout.Common/CI/Bitrise/src/Fallout.CI.Bitrise/→Fallout.CI.Bitrisepackagesrc/Fallout.Common/CI/GitHubActions/src/Fallout.CI.GitHubActions/→Fallout.CI.GitHubActionspackagesrc/Fallout.Common/CI/GitLab/src/Fallout.CI.GitLab/→Fallout.CI.GitLabpackagesrc/Fallout.Common/CI/Jenkins/src/Fallout.CI.Jenkins/→Fallout.CI.Jenkinspackagesrc/Fallout.Common/CI/SpaceAutomation/src/Fallout.CI.SpaceAutomation/→Fallout.CI.SpaceAutomationpackagesrc/Fallout.Common/CI/TeamCity/src/Fallout.CI.TeamCity/→Fallout.CI.TeamCitypackagesrc/Fallout.Common/CI/TravisCI/src/Fallout.CI.TravisCI/→Fallout.CI.TravisCIpackageEach package contains:
[<Provider>]configuration-generator attribute (e.g.[GitHubActions(...)],[TeamCity(...)])GitHubActions.Instancestatic accessor forGITHUB_*env vars during a CI run)A new
Fallout.CI.Abstractionspackage may emerge for the shared base classes (ConfigurationAttributeBase,ConfigurationGenerationGenerator, etc.) that every provider package depends on. Decision during implementation.Mechanical plan
Fallout.CI.Abstractions— yes / no. If yes, what's in it.src/Fallout.CI.<Provider>/. Each referencesFallout.Common(orFallout.CI.Abstractionsif introduced).git mvfiles preserving history; rename namespacesFallout.Common.CI.<Provider>→Fallout.CI.<Provider>.fallout.slnx+Directory.Packages.props.Build.cssource for this repo ([GitHubActions]attribute usage onBuild).tests/Fallout.CI.<Provider>.Tests/.fallout-migrateto rewrite namespaces + add the matching<PackageReference>.Nuke.Commonshim — either re-export fromNuke.Common.CI.<Provider>(lots of subclassing) or ship matchingNuke.CI.<Provider>shim packages.Migration impact
<PackageReference Include="Fallout.CI.GitHubActions" />+using Fallout.CI.GitHubActions;instead ofusing Fallout.Common.CI.GitHubActions;. Both mechanical,fallout-migrateshould handle.Done when
fallout.slnx+Directory.Packages.propsupdatedBuild.csconsumes the new packagesfallout-migratecovers the namespace + PackageReference migrationNuke.Commonshim still works (or per-provider shim packages exist)Fallout.CI.*packages