@wtf/release-docs 9.0.2 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/api/.generated +291 -141
- package/api/@wtf/release/README.md +55 -0
- package/api/@wtf/release/contract/README.md +60 -0
- package/api/@wtf/release/contract/interfaces/Plan.md +46 -0
- package/api/@wtf/release/contract/interfaces/Release.md +96 -0
- package/api/@wtf/release/contract/interfaces/ReleaseSteps.md +203 -0
- package/api/@wtf/release/contract/type-aliases/OptionalStep.md +13 -0
- package/api/@wtf/release/contract/type-aliases/ReleasingEcosystem.md +44 -0
- package/api/@wtf/release/driver/README.md +43 -0
- package/api/@wtf/release/driver/functions/runStep.md +50 -0
- package/api/@wtf/release/driver/interfaces/StepOutcome.md +31 -0
- package/api/@wtf/release/driver/type-aliases/EcosystemsOf.md +14 -0
- package/api/@wtf/release/driver/type-aliases/Step.md +13 -0
- package/api/@wtf/release/driver/variables/STEPS.md +13 -0
- package/api/@wtf/{release-trains → release}/ecosystem/README.md +11 -11
- package/api/@wtf/release/ecosystem/functions/isEcosystem.md +27 -0
- package/api/@wtf/{release-trains → release}/ecosystem/functions/loadEcosystems.md +5 -5
- package/api/@wtf/release/ecosystem/functions/readPackages.md +33 -0
- package/api/@wtf/release/ecosystem/interfaces/Dependency.md +43 -0
- package/api/@wtf/{release-trains → release}/ecosystem/interfaces/Ecosystem.md +23 -14
- package/api/@wtf/release/ecosystem/interfaces/EcosystemContext.md +56 -0
- package/api/@wtf/release/ecosystem/interfaces/EcosystemPackages.md +35 -0
- package/api/@wtf/release/ecosystem/interfaces/Package.md +71 -0
- package/api/@wtf/release/ecosystem/type-aliases/DependencyKind.md +16 -0
- package/api/@wtf/{release-trains → release}/ecosystem/type-aliases/ModuleLoader.md +2 -2
- package/api/@wtf/release/ecosystem/variables/DEPENDENCY_KINDS.md +13 -0
- package/api/@wtf/release/errors/README.md +41 -0
- package/api/@wtf/{release-system → release}/errors/classes/ReleaseError.md +11 -19
- package/api/@wtf/release/errors/functions/isReleaseError.md +28 -0
- package/api/@wtf/release/errors/functions/throwAll.md +26 -0
- package/api/@wtf/{release-system → release}/errors/type-aliases/ErrorClass.md +2 -2
- package/api/@wtf/release/errors/type-aliases/ReleaseErrorCode.md +13 -0
- package/api/@wtf/release/errors/variables/RELEASE_ERRORS.md +35 -0
- package/api/@wtf/release/files/README.md +38 -0
- package/api/@wtf/release/files/functions/copy.md +45 -0
- package/api/@wtf/release/files/functions/exists.md +33 -0
- package/api/@wtf/release/files/functions/makeDir.md +33 -0
- package/api/@wtf/release/files/functions/readBytes.md +33 -0
- package/api/@wtf/release/files/functions/readDir.md +33 -0
- package/api/@wtf/release/files/functions/readFile.md +33 -0
- package/api/@wtf/release/files/functions/remove.md +34 -0
- package/api/@wtf/release/files/functions/writeFile.md +38 -0
- package/api/@wtf/release/files/interfaces/DirEntry.md +27 -0
- package/api/@wtf/release/forge/README.md +49 -0
- package/api/@wtf/release/forge/functions/linksOf.md +49 -0
- package/api/@wtf/release/forge/interfaces/Forge.md +113 -0
- package/api/@wtf/release/forge/interfaces/ForgeRun.md +41 -0
- package/api/@wtf/release/forge/interfaces/LinksOptions.md +43 -0
- package/api/@wtf/release/forge/interfaces/PackageRegistry.md +41 -0
- package/api/@wtf/release/forge/interfaces/ReleaseLink.md +41 -0
- package/api/@wtf/release/forge/interfaces/Released.md +91 -0
- package/api/@wtf/{release-trains → release}/generated/README.md +8 -8
- package/api/@wtf/{release-trains → release}/generated/functions/filesIn.md +4 -4
- package/api/@wtf/{release-trains → release}/generated/functions/formatGenerated.md +2 -2
- package/api/@wtf/release/generated/functions/listGenerated.md +35 -0
- package/api/@wtf/{release-trains → release}/generated/functions/parseGenerated.md +2 -2
- package/api/@wtf/release/generated/functions/readGenerated.md +33 -0
- package/api/@wtf/{release-trains → release}/generated/functions/stageGenerated.md +2 -2
- package/api/@wtf/release/generated/functions/stageGeneratedFolders.md +29 -0
- package/api/@wtf/release/generated/functions/unlistedIn.md +36 -0
- package/api/@wtf/release/generated/interfaces/GeneratedOptions.md +21 -0
- package/api/@wtf/release/generated/interfaces/StageOptions.md +76 -0
- package/api/@wtf/release/generated/variables/GENERATED.md +13 -0
- package/api/@wtf/{release-system → release}/git/README.md +11 -10
- package/api/@wtf/{release-system → release}/git/functions/commitsSince.md +3 -3
- package/api/@wtf/{release-system → release}/git/functions/filesOfCommits.md +3 -3
- package/api/@wtf/{release-system → release}/git/functions/git.md +3 -3
- package/api/@wtf/release/git/functions/revisionOf.md +33 -0
- package/api/@wtf/release/git/functions/tagsOfRepo.md +33 -0
- package/api/@wtf/{release-system → release}/git/functions/trackedFiles.md +3 -3
- package/api/@wtf/release/git/interfaces/GitContext.md +26 -0
- package/api/@wtf/release/git/interfaces/LogCommit.md +43 -0
- package/api/@wtf/release/interfaces/RepoContext.md +57 -0
- package/api/@wtf/release/order/README.md +37 -0
- package/api/@wtf/{release-trains/packages → release/order}/functions/normalizeDir.md +2 -2
- package/api/@wtf/{release-trains/packages → release/order}/functions/publishOrder.md +7 -6
- package/api/@wtf/release/order/interfaces/OrderFault.md +39 -0
- package/api/@wtf/release/order/interfaces/OrderPins.md +27 -0
- package/api/@wtf/release/order/interfaces/PublishOrder.md +35 -0
- package/api/@wtf/{release-system → release}/paths/README.md +4 -4
- package/api/@wtf/{release-system → release}/paths/functions/normalizePath.md +2 -2
- package/api/@wtf/{release-system → release}/paths/functions/pathMatcher.md +2 -2
- package/api/@wtf/{release-system → release}/paths/type-aliases/PathMatcher.md +2 -2
- package/api/@wtf/{release-system → release}/posix/README.md +5 -5
- package/api/@wtf/{release-system → release}/posix/functions/basenameOf.md +2 -2
- package/api/@wtf/{release-system → release}/posix/functions/dirnameOf.md +2 -2
- package/api/@wtf/{release-system → release}/posix/functions/joinPath.md +2 -2
- package/api/@wtf/{release-system → release}/posix/functions/relativePath.md +2 -2
- package/api/@wtf/{release-system → release}/posix/functions/resolvePath.md +3 -3
- package/api/@wtf/release/process/README.md +30 -0
- package/api/@wtf/release/process/functions/envOf.md +34 -0
- package/api/@wtf/release/process/functions/run.md +48 -0
- package/api/@wtf/release/process/interfaces/RunOptions.md +52 -0
- package/api/@wtf/release/process/interfaces/RunResult.md +35 -0
- package/api/@wtf/release/type-aliases/ReleasePlatform.md +22 -0
- package/api/@wtf/release/type-aliases/RepoPlatform.md +21 -0
- package/api/@wtf/{release-system → release}/validator/README.md +6 -5
- package/api/@wtf/{release-system → release}/validator/functions/allOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/anyObject.md +3 -3
- package/api/@wtf/{release-system → release}/validator/functions/anyOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/arrayOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/booleanOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/errorOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/errorsOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/exclusive.md +2 -2
- package/api/@wtf/release/validator/functions/issueOf.md +45 -0
- package/api/@wtf/{release-system → release}/validator/functions/issuesOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/objectOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/oneOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/orFunction.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/pathText.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/recordOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/refined.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/stringOf.md +2 -2
- package/api/@wtf/{release-system → release}/validator/functions/tupleOf.md +2 -2
- package/api/@wtf/release/validator/functions/validatorOf.md +42 -0
- package/api/@wtf/{release-system → release}/validator/interfaces/ArrayOptions.md +6 -6
- package/api/@wtf/{release-system → release}/validator/interfaces/IssueOptions.md +5 -5
- package/api/@wtf/{release-system → release}/validator/interfaces/ObjectOptions.md +6 -6
- package/api/@wtf/release/validator/interfaces/OptionIssue.md +63 -0
- package/api/@wtf/release/validator/interfaces/Property.md +49 -0
- package/api/@wtf/{release-system → release}/validator/interfaces/RecordOptions.md +7 -7
- package/api/@wtf/{release-system → release}/validator/interfaces/StringOptions.md +7 -7
- package/api/@wtf/{release-system → release}/validator/interfaces/Validator.md +5 -5
- package/api/@wtf/release/validator/type-aliases/JsonSchema.md +17 -0
- package/api/@wtf/release/validator/type-aliases/Path.md +13 -0
- package/api/@wtf/release-cargo/README.md +11 -8
- package/api/@wtf/release-cargo/auth/README.md +1 -1
- package/api/@wtf/release-cargo/auth/functions/mask.md +1 -1
- package/api/@wtf/release-cargo/auth/functions/tokenVariableOf.md +1 -1
- package/api/@wtf/release-cargo/auth/functions/trustedPublishing.md +1 -1
- package/api/@wtf/release-cargo/auth/interfaces/HttpResponse.md +5 -5
- package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishing.md +5 -5
- package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishingOptions.md +6 -6
- package/api/@wtf/release-cargo/auth/type-aliases/HttpFetch.md +1 -1
- package/api/@wtf/release-cargo/auth/variables/CRATES_IO_API.md +1 -1
- package/api/@wtf/release-cargo/auth/variables/ID_TOKEN_VARIABLE.md +1 -1
- package/api/@wtf/release-cargo/auth/variables/USER_AGENT.md +3 -3
- package/api/@wtf/release-cargo/crates/README.md +11 -10
- package/api/@wtf/release-cargo/crates/functions/publishOrder.md +1 -1
- package/api/@wtf/release-cargo/crates/functions/publishable.md +1 -1
- package/api/@wtf/release-cargo/crates/functions/readWorkspace.md +9 -8
- package/api/@wtf/release-cargo/crates/functions/selectCrates.md +16 -16
- package/api/@wtf/release-cargo/crates/functions/selects.md +36 -0
- package/api/@wtf/release-cargo/crates/interfaces/Selection.md +15 -15
- package/api/@wtf/release-cargo/ecosystem/README.md +9 -6
- package/api/@wtf/release-cargo/ecosystem/functions/packagesAt.md +6 -6
- package/api/@wtf/release-cargo/ecosystem/functions/packagesOfTree.md +3 -3
- package/api/@wtf/release-cargo/ecosystem/functions/packagesOfWorkspace.md +2 -2
- package/api/@wtf/release-cargo/ecosystem/functions/resolveRequirement.md +1 -1
- package/api/@wtf/release-cargo/ecosystem/functions/satisfiesRequirement.md +1 -1
- package/api/@wtf/release-cargo/ecosystem/functions/semverRange.md +1 -1
- package/api/@wtf/release-cargo/ecosystem/interfaces/CargoPackage.md +17 -17
- package/api/@wtf/release-cargo/ecosystem/variables/cargoEcosystem.md +6 -4
- package/api/@wtf/release-cargo/errors/README.md +4 -5
- package/api/@wtf/release-cargo/errors/classes/CargoError.md +18 -33
- package/api/@wtf/release-cargo/errors/type-aliases/CargoErrorCode.md +1 -1
- package/api/@wtf/release-cargo/errors/variables/CARGO_ERRORS.md +8 -4
- package/api/@wtf/release-cargo/interfaces/Crate.md +6 -6
- package/api/@wtf/release-cargo/interfaces/CrateDependency.md +6 -6
- package/api/@wtf/release-cargo/interfaces/Workspace.md +3 -3
- package/api/@wtf/release-cargo/publish/README.md +4 -5
- package/api/@wtf/release-cargo/publish/functions/publishCrates.md +5 -4
- package/api/@wtf/release-cargo/publish/interfaces/PublishCratesOptions.md +33 -20
- package/api/@wtf/release-cargo/publish/interfaces/PublishedCrate.md +5 -5
- package/api/@wtf/release-cargo/publish/type-aliases/CrateStatus.md +1 -1
- package/api/@wtf/release-cargo/publish/variables/RECHECK_WAITS.md +1 -1
- package/api/@wtf/release-cargo/registry/README.md +5 -3
- package/api/@wtf/release-cargo/registry/functions/crateUrl.md +1 -1
- package/api/@wtf/release-cargo/registry/functions/indexHasVersion.md +1 -1
- package/api/@wtf/release-cargo/registry/functions/indexLookup.md +50 -0
- package/api/@wtf/release-cargo/registry/functions/indexPath.md +1 -1
- package/api/@wtf/release-cargo/registry/variables/CRATES_IO_INDEX.md +1 -1
- package/api/@wtf/release-cargo/release/README.md +54 -0
- package/api/@wtf/release-cargo/release/functions/prepareCrates.md +42 -0
- package/api/@wtf/release-cargo/release/functions/publishPlan.md +53 -0
- package/api/@wtf/release-cargo/release/functions/publishedOf.md +36 -0
- package/api/@wtf/release-cargo/release/functions/verifyCrates.md +44 -0
- package/api/@wtf/release-cargo/release/interfaces/CargoOptions.md +89 -0
- package/api/@wtf/release-cargo/release/type-aliases/CargoPlan.md +13 -0
- package/api/@wtf/release-cargo/stamp/README.md +6 -5
- package/api/@wtf/release-cargo/stamp/functions/checkVersions.md +1 -1
- package/api/@wtf/release-cargo/stamp/functions/inheritsVersion.md +1 -1
- package/api/@wtf/release-cargo/stamp/functions/stampManifest.md +1 -1
- package/api/@wtf/release-cargo/stamp/functions/stampWorkspace.md +19 -10
- package/api/@wtf/release-cargo/stamp/interfaces/StampOptions.md +4 -4
- package/api/@wtf/release-cargo/stamp/interfaces/StampWorkspaceOptions.md +21 -0
- package/api/@wtf/release-cargo/stamp/interfaces/Stamped.md +3 -3
- package/api/@wtf/release-cargo/stamp/interfaces/StampedWorkspace.md +4 -4
- package/api/@wtf/release-cargo/type-aliases/DependencyKind.md +1 -1
- package/api/@wtf/release-go/README.md +13 -9
- package/api/@wtf/release-go/ecosystem/README.md +13 -6
- package/api/@wtf/release-go/ecosystem/functions/packagesOfModules.md +2 -2
- package/api/@wtf/release-go/ecosystem/functions/packagesOfRepo.md +4 -4
- package/api/@wtf/release-go/ecosystem/functions/resolveVersion.md +2 -2
- package/api/@wtf/release-go/ecosystem/functions/satisfiesVersion.md +1 -1
- package/api/@wtf/release-go/ecosystem/interfaces/GoPackage.md +17 -17
- package/api/@wtf/release-go/ecosystem/variables/goEcosystem.md +6 -3
- package/api/@wtf/release-go/errors/README.md +4 -5
- package/api/@wtf/release-go/errors/classes/GoError.md +17 -32
- package/api/@wtf/release-go/errors/type-aliases/GoErrorCode.md +1 -1
- package/api/@wtf/release-go/errors/variables/GO_ERRORS.md +8 -4
- package/api/@wtf/release-go/gomod/functions/entriesOf.md +1 -1
- package/api/@wtf/release-go/gomod/functions/linesOf.md +1 -1
- package/api/@wtf/release-go/gomod/functions/readGoMod.md +1 -1
- package/api/@wtf/release-go/gomod/functions/tokensOf.md +1 -1
- package/api/@wtf/release-go/gomod/interfaces/Entry.md +4 -4
- package/api/@wtf/release-go/gomod/interfaces/GoMod.md +4 -4
- package/api/@wtf/release-go/gomod/interfaces/GoReplace.md +6 -6
- package/api/@wtf/release-go/gomod/interfaces/GoRequire.md +4 -4
- package/api/@wtf/release-go/gomod/interfaces/Token.md +5 -5
- package/api/@wtf/release-go/interfaces/GoIdentity.md +31 -0
- package/api/@wtf/release-go/interfaces/GoModule.md +6 -6
- package/api/@wtf/release-go/interfaces/GoOptions.md +86 -0
- package/api/@wtf/release-go/modules/README.md +9 -9
- package/api/@wtf/release-go/modules/functions/isFetchable.md +1 -1
- package/api/@wtf/release-go/modules/functions/isGoMod.md +1 -1
- package/api/@wtf/release-go/modules/functions/majorErrors.md +1 -1
- package/api/@wtf/release-go/modules/functions/majorOfPath.md +1 -1
- package/api/@wtf/release-go/modules/functions/modulesAt.md +3 -3
- package/api/@wtf/release-go/modules/functions/modulesOf.md +1 -1
- package/api/@wtf/release-go/modules/functions/readModules.md +4 -5
- package/api/@wtf/release-go/modules/functions/selectModules.md +13 -11
- package/api/@wtf/release-go/modules/interfaces/Selection.md +10 -11
- package/api/@wtf/release-go/release/README.md +45 -0
- package/api/@wtf/release-go/release/functions/isGoVersion.md +28 -0
- package/api/@wtf/release-go/release/functions/prepareModules.md +47 -0
- package/api/@wtf/release-go/release/functions/publishModules.md +54 -0
- package/api/@wtf/release-go/release/functions/releaseModules.md +48 -0
- package/api/@wtf/release-go/release/functions/releasedOf.md +41 -0
- package/api/@wtf/release-go/release/functions/verifyModules.md +44 -0
- package/api/@wtf/release-go/release/interfaces/ReleaseModules.md +31 -0
- package/api/@wtf/release-go/stamp/README.md +6 -5
- package/api/@wtf/release-go/stamp/functions/checkVersions.md +1 -1
- package/api/@wtf/release-go/stamp/functions/stampGoMod.md +1 -1
- package/api/@wtf/release-go/stamp/functions/stampModules.md +16 -10
- package/api/@wtf/release-go/stamp/interfaces/StampOptions.md +21 -0
- package/api/@wtf/release-go/stamp/interfaces/Stamped.md +3 -3
- package/api/@wtf/release-go/stamp/interfaces/StampedModules.md +13 -3
- package/api/@wtf/release-go/tags/README.md +3 -6
- package/api/@wtf/release-go/tags/functions/askProxy.md +6 -6
- package/api/@wtf/release-go/tags/functions/maskCredentials.md +1 -1
- package/api/@wtf/release-go/tags/functions/releaseCommit.md +16 -9
- package/api/@wtf/release-go/tags/functions/remoteTags.md +3 -3
- package/api/@wtf/release-go/tags/functions/tagModules.md +3 -3
- package/api/@wtf/release-go/tags/functions/tagOfModule.md +1 -1
- package/api/@wtf/release-go/tags/functions/tagPrefix.md +1 -1
- package/api/@wtf/release-go/tags/interfaces/CommitIdentity.md +35 -0
- package/api/@wtf/release-go/tags/interfaces/TagModulesOptions.md +42 -10
- package/api/@wtf/release-go/tags/interfaces/TaggedModule.md +5 -5
- package/api/@wtf/release-go/tags/interfaces/TagsContext.md +22 -0
- package/api/@wtf/release-go/tags/type-aliases/ModuleStatus.md +1 -1
- package/api/@wtf/release-maven/README.md +11 -8
- package/api/@wtf/release-maven/artifacts/README.md +11 -6
- package/api/@wtf/release-maven/artifacts/functions/groupIdOf.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/installsOf.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/isPomFile.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/isRange.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/modulesOf.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/nameOf.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/publishOrder.md +1 -1
- package/api/@wtf/release-maven/artifacts/functions/readModules.md +3 -3
- package/api/@wtf/release-maven/artifacts/functions/readPoms.md +4 -4
- package/api/@wtf/release-maven/artifacts/functions/selectArtifacts.md +1 -1
- package/api/@wtf/release-maven/artifacts/interfaces/Selection.md +8 -8
- package/api/@wtf/release-maven/ecosystem/README.md +28 -13
- package/api/@wtf/release-maven/ecosystem/functions/checkReleaseVersion.md +32 -0
- package/api/@wtf/release-maven/ecosystem/functions/compareVersions.md +1 -1
- package/api/@wtf/release-maven/ecosystem/functions/parseRange.md +1 -1
- package/api/@wtf/release-maven/ecosystem/functions/resolveVersion.md +1 -1
- package/api/@wtf/release-maven/ecosystem/functions/satisfiesVersion.md +1 -1
- package/api/@wtf/release-maven/ecosystem/interfaces/Bound.md +3 -3
- package/api/@wtf/release-maven/ecosystem/interfaces/MavenReleaseOptions.md +77 -0
- package/api/@wtf/release-maven/ecosystem/interfaces/Restriction.md +3 -3
- package/api/@wtf/release-maven/ecosystem/variables/mavenEcosystem.md +5 -3
- package/api/@wtf/release-maven/errors/README.md +3 -4
- package/api/@wtf/release-maven/errors/classes/MavenError.md +17 -32
- package/api/@wtf/release-maven/errors/type-aliases/MavenErrorCode.md +1 -1
- package/api/@wtf/release-maven/errors/variables/MAVEN_ERRORS.md +4 -4
- package/api/@wtf/release-maven/interfaces/MavenModule.md +24 -24
- package/api/@wtf/release-maven/pom/functions/childOf.md +1 -1
- package/api/@wtf/release-maven/pom/functions/childrenOf.md +1 -1
- package/api/@wtf/release-maven/pom/functions/dependencyOf.md +1 -1
- package/api/@wtf/release-maven/pom/functions/escapeXml.md +1 -1
- package/api/@wtf/release-maven/pom/functions/parseXml.md +1 -1
- package/api/@wtf/release-maven/pom/functions/readPom.md +1 -1
- package/api/@wtf/release-maven/pom/functions/textAt.md +1 -1
- package/api/@wtf/release-maven/pom/interfaces/Pom.md +15 -15
- package/api/@wtf/release-maven/pom/interfaces/PomDependency.md +5 -5
- package/api/@wtf/release-maven/pom/interfaces/PomParent.md +4 -4
- package/api/@wtf/release-maven/pom/interfaces/PomPlugin.md +5 -5
- package/api/@wtf/release-maven/pom/interfaces/PomRepository.md +3 -3
- package/api/@wtf/release-maven/pom/interfaces/Span.md +3 -3
- package/api/@wtf/release-maven/pom/interfaces/XmlElement.md +7 -7
- package/api/@wtf/release-maven/pom/variables/PLUGIN_GROUP.md +1 -1
- package/api/@wtf/release-maven/publish/README.md +9 -6
- package/api/@wtf/release-maven/publish/functions/deployModules.md +2 -2
- package/api/@wtf/release-maven/publish/functions/releasedModules.md +44 -0
- package/api/@wtf/release-maven/publish/interfaces/DeployModulesOptions.md +18 -27
- package/api/@wtf/release-maven/publish/interfaces/DeployedModule.md +4 -4
- package/api/@wtf/release-maven/publish/interfaces/ReleasedWhere.md +67 -0
- package/api/@wtf/release-maven/publish/type-aliases/ModuleStatus.md +1 -1
- package/api/@wtf/release-maven/repository/README.md +12 -6
- package/api/@wtf/release-maven/repository/functions/deployTargets.md +1 -1
- package/api/@wtf/release-maven/repository/functions/expandValues.md +1 -1
- package/api/@wtf/release-maven/repository/functions/hasPom.md +1 -1
- package/api/@wtf/release-maven/repository/functions/lookupHeaders.md +37 -0
- package/api/@wtf/release-maven/repository/functions/lookupPom.md +44 -0
- package/api/@wtf/release-maven/repository/functions/pomPath.md +1 -1
- package/api/@wtf/release-maven/repository/functions/pomUrl.md +1 -1
- package/api/@wtf/release-maven/repository/functions/releaseTargets.md +46 -0
- package/api/@wtf/release-maven/repository/interfaces/LookupAuth.md +32 -0
- package/api/@wtf/release-maven/repository/interfaces/ReleaseTargets.md +32 -0
- package/api/@wtf/release-maven/repository/interfaces/Repository.md +3 -3
- package/api/@wtf/release-maven/repository/interfaces/ValuesOf.md +3 -3
- package/api/@wtf/release-maven/repository/variables/MAVEN_CENTRAL.md +1 -1
- package/api/@wtf/release-maven/stamp/README.md +8 -8
- package/api/@wtf/release-maven/stamp/functions/checkVersions.md +1 -1
- package/api/@wtf/release-maven/stamp/functions/stampModules.md +15 -15
- package/api/@wtf/release-maven/stamp/functions/stampPom.md +1 -1
- package/api/@wtf/release-maven/stamp/interfaces/PomStampOptions.md +5 -5
- package/api/@wtf/release-maven/stamp/interfaces/Stamped.md +3 -3
- package/api/@wtf/release-maven/stamp/interfaces/StampedModules.md +4 -4
- package/api/@wtf/release-npm/README.md +20 -15
- package/api/@wtf/release-npm/check/README.md +1 -1
- package/api/@wtf/release-npm/check/functions/checkPackages.md +3 -3
- package/api/@wtf/release-npm/check/functions/formatIssue.md +1 -1
- package/api/@wtf/release-npm/check/interfaces/CheckOptions.md +7 -7
- package/api/@wtf/release-npm/check/interfaces/Issue.md +6 -6
- package/api/@wtf/release-npm/check/type-aliases/CheckedPackage.md +1 -1
- package/api/@wtf/release-npm/check/type-aliases/IssueCode.md +2 -2
- package/api/@wtf/release-npm/ecosystem/README.md +21 -11
- package/api/@wtf/release-npm/ecosystem/variables/npmEcosystem.md +17 -7
- package/api/@wtf/release-npm/errors/README.md +8 -4
- package/api/@wtf/release-npm/errors/classes/NpmError.md +253 -0
- package/api/@wtf/release-npm/errors/type-aliases/NpmErrorCode.md +1 -1
- package/api/@wtf/release-npm/errors/variables/NPM_ERRORS.md +7 -3
- package/api/@wtf/release-npm/interfaces/Lookup.md +3 -3
- package/api/@wtf/release-npm/interfaces/NpmAside.md +46 -0
- package/api/@wtf/release-npm/interfaces/NpmOptions.md +134 -0
- package/api/@wtf/release-npm/interfaces/PublishOptions.md +6 -6
- package/api/@wtf/release-npm/interfaces/PublishPackage.md +5 -5
- package/api/@wtf/release-npm/interfaces/Publisher.md +11 -11
- package/api/@wtf/release-npm/interfaces/PublisherContext.md +32 -23
- package/api/@wtf/release-npm/manifests/README.md +5 -5
- package/api/@wtf/release-npm/manifests/functions/concreteRange.md +1 -1
- package/api/@wtf/release-npm/manifests/functions/manifestsAt.md +3 -4
- package/api/@wtf/release-npm/manifests/functions/packageOf.md +1 -1
- package/api/@wtf/release-npm/manifests/functions/packagesOfManifests.md +1 -1
- package/api/@wtf/release-npm/manifests/functions/readManifests.md +7 -7
- package/api/@wtf/release-npm/manifests/functions/resolveSpecifier.md +1 -1
- package/api/@wtf/release-npm/manifests/functions/runtimeDependenciesOf.md +1 -1
- package/api/@wtf/release-npm/manifests/functions/satisfiesRange.md +1 -1
- package/api/@wtf/release-npm/manifests/interfaces/Manifest.md +5 -5
- package/api/@wtf/release-npm/manifests/interfaces/NpmPackage.md +16 -16
- package/api/@wtf/release-npm/manifests/type-aliases/DependencyField.md +1 -1
- package/api/@wtf/release-npm/manifests/variables/DEPENDENCY_FIELDS.md +1 -1
- package/api/@wtf/release-npm/manifests/variables/FIELD_KINDS.md +2 -2
- package/api/@wtf/release-npm/manifests/variables/RUNTIME_FIELDS.md +1 -1
- package/api/@wtf/release-npm/prepare/functions/isTypeScriptSource.md +1 -1
- package/api/@wtf/release-npm/prepare/functions/prepareManifest.md +1 -1
- package/api/@wtf/release-npm/prepare/functions/stripSourceConditions.md +1 -1
- package/api/@wtf/release-npm/prepare/interfaces/PrepareOptions.md +6 -6
- package/api/@wtf/release-npm/prepare/interfaces/PreparedManifest.md +6 -6
- package/api/@wtf/release-npm/prepare/variables/SOURCE_CONDITIONS.md +1 -1
- package/api/@wtf/release-npm/publishers/README.md +1 -1
- package/api/@wtf/release-npm/publishers/functions/builtInPublisher.md +1 -1
- package/api/@wtf/release-npm/publishers/functions/isPublisher.md +1 -1
- package/api/@wtf/release-npm/publishers/functions/registryOf.md +1 -1
- package/api/@wtf/release-npm/publishers/variables/NPM_REGISTRY.md +1 -1
- package/api/@wtf/release-npm/publishers/variables/PUBLISHERS.md +1 -1
- package/api/@wtf/release-npm/publishers/variables/npmPublisher.md +1 -1
- package/api/@wtf/release-npm/publishers/variables/pnpmPublisher.md +1 -1
- package/api/@wtf/release-npm/release/README.md +59 -37
- package/api/@wtf/release-npm/release/functions/checkPlan.md +44 -0
- package/api/@wtf/release-npm/release/functions/discardPacked.md +32 -0
- package/api/@wtf/release-npm/release/functions/moveRelease.md +47 -0
- package/api/@wtf/release-npm/release/functions/packRelease.md +39 -0
- package/api/@wtf/release-npm/release/functions/prepareRelease.md +46 -0
- package/api/@wtf/release-npm/release/functions/publishPacked.md +17 -11
- package/api/@wtf/release-npm/release/functions/publishRelease.md +44 -0
- package/api/@wtf/release-npm/release/functions/publishedOf.md +12 -11
- package/api/@wtf/release-npm/release/functions/resolvePlan.md +49 -0
- package/api/@wtf/release-npm/release/functions/smokeRelease.md +40 -0
- package/api/@wtf/release-npm/release/functions/verifyRelease.md +41 -0
- package/api/@wtf/release-npm/release/interfaces/MovedPackage.md +79 -0
- package/api/@wtf/release-npm/release/interfaces/MovedRelease.md +39 -0
- package/api/@wtf/release-npm/release/interfaces/NpmPlan.md +68 -0
- package/api/@wtf/release-npm/release/interfaces/PackOptions.md +35 -31
- package/api/@wtf/release-npm/release/interfaces/PackedRelease.md +107 -0
- package/api/@wtf/release-npm/release/interfaces/PublishRun.md +35 -50
- package/api/@wtf/release-npm/release/interfaces/PublishedOf.md +4 -14
- package/api/@wtf/release-npm/release/interfaces/PublishedPackage.md +13 -14
- package/api/@wtf/release-npm/release/interfaces/PublishedRelease.md +49 -0
- package/api/@wtf/release-npm/release/interfaces/ResolvedPackage.md +4 -4
- package/api/@wtf/release-npm/release/interfaces/ResolvedRelease.md +37 -0
- package/api/@wtf/release-npm/release/type-aliases/LookedUpRelease.md +13 -0
- package/api/@wtf/release-npm/release/variables/ID_TOKENS.md +1 -1
- package/api/@wtf/release-npm/release/variables/RUNNER_ENVIRONMENTS.md +1 -1
- package/api/@wtf/release-npm/release/variables/npmOptionsSchema.md +13 -0
- package/api/@wtf/release-npm/workspace/README.md +7 -3
- package/api/@wtf/release-npm/workspace/functions/pnpmWorkspaceGlobs.md +1 -1
- package/api/@wtf/release-npm/workspace/functions/publishableOf.md +1 -1
- package/api/@wtf/release-npm/workspace/functions/readWorkspace.md +3 -9
- package/api/@wtf/release-npm/workspace/functions/workspaceFolders.md +3 -9
- package/api/@wtf/release-npm/workspace/functions/workspaceGlobs.md +3 -9
- package/api/@wtf/release-npm/workspace/interfaces/WorkspaceGlobs.md +3 -3
- package/api/@wtf/release-oci/README.md +38 -0
- package/api/@wtf/release-oci/ecosystem/README.md +56 -0
- package/api/@wtf/release-oci/ecosystem/functions/packagesOfImages.md +29 -0
- package/api/@wtf/release-oci/ecosystem/functions/packagesOfRepo.md +32 -0
- package/api/@wtf/release-oci/ecosystem/functions/repositoriesOf.md +27 -0
- package/api/@wtf/release-oci/ecosystem/functions/resolveTag.md +35 -0
- package/api/@wtf/release-oci/ecosystem/functions/satisfiesTag.md +34 -0
- package/api/@wtf/release-oci/ecosystem/interfaces/OciOptions.md +64 -0
- package/api/@wtf/release-oci/ecosystem/interfaces/OciPackage.md +97 -0
- package/api/@wtf/release-oci/ecosystem/interfaces/OciSourceOptions.md +32 -0
- package/api/@wtf/release-oci/ecosystem/variables/ociEcosystem.md +29 -0
- package/api/@wtf/release-oci/errors/README.md +24 -0
- package/api/@wtf/release-oci/errors/classes/OciError.md +253 -0
- package/api/@wtf/release-oci/errors/type-aliases/OciErrorCode.md +13 -0
- package/api/@wtf/release-oci/errors/variables/OCI_ERRORS.md +51 -0
- package/api/@wtf/release-oci/images/README.md +35 -0
- package/api/@wtf/release-oci/images/functions/imageDirOf.md +28 -0
- package/api/@wtf/release-oci/images/functions/imagesAt.md +44 -0
- package/api/@wtf/release-oci/images/functions/imagesOf.md +34 -0
- package/api/@wtf/release-oci/images/functions/isImageManifest.md +27 -0
- package/api/@wtf/release-oci/images/functions/readImages.md +34 -0
- package/api/@wtf/release-oci/images/functions/registryImageOf.md +28 -0
- package/api/@wtf/release-oci/images/functions/repositoryOf.md +35 -0
- package/api/@wtf/release-oci/interfaces/OciImage.md +44 -0
- package/api/@wtf/release-oci/publish/README.md +65 -0
- package/api/@wtf/release-oci/publish/functions/digestOf.md +38 -0
- package/api/@wtf/release-oci/publish/functions/moveImages.md +32 -0
- package/api/@wtf/release-oci/publish/functions/platformsOf.md +44 -0
- package/api/@wtf/release-oci/publish/functions/publishImages.md +32 -0
- package/api/@wtf/release-oci/publish/functions/smokeImages.md +41 -0
- package/api/@wtf/release-oci/publish/interfaces/CraneContext.md +40 -0
- package/api/@wtf/release-oci/publish/interfaces/ImageToPublish.md +35 -0
- package/api/@wtf/release-oci/publish/interfaces/ImagesMove.md +84 -0
- package/api/@wtf/release-oci/publish/interfaces/ImagesRelease.md +84 -0
- package/api/@wtf/release-oci/publish/interfaces/MovedImage.md +41 -0
- package/api/@wtf/release-oci/publish/interfaces/OciSource.md +31 -0
- package/api/@wtf/release-oci/publish/interfaces/PublishedImage.md +91 -0
- package/api/@wtf/release-oci/publish/interfaces/SmokedImage.md +67 -0
- package/api/@wtf/release-oci/registry/README.md +50 -0
- package/api/@wtf/release-oci/registry/functions/checkRegistryAccess.md +28 -0
- package/api/@wtf/release-oci/registry/functions/registryPageOf.md +30 -0
- package/api/@wtf/release-oci/registry/interfaces/ContainerRegistry.md +35 -0
- package/api/@wtf/release-oci/registry/interfaces/RegistryProject.md +51 -0
- package/api/@wtf/release-oci/registry/interfaces/RegistryQuery.md +63 -0
- package/api/@wtf/release-oci/registry/interfaces/RegistryResponse.md +47 -0
- package/api/@wtf/release-oci/registry/type-aliases/RegistryAccess.md +13 -0
- package/api/@wtf/release-oci/registry/type-aliases/RegistryFetch.md +39 -0
- package/api/@wtf/release-oci/tags/README.md +28 -0
- package/api/@wtf/release-oci/tags/functions/checkReleaseTags.md +35 -0
- package/api/@wtf/release-oci/tags/functions/isImageTag.md +27 -0
- package/api/@wtf/release-oci/tags/interfaces/ReleaseTags.md +31 -0
- package/api/@wtf/release-replace/README.md +6 -5
- package/api/@wtf/release-replace/errors/README.md +3 -3
- package/api/@wtf/release-replace/errors/classes/ReplaceError.md +17 -32
- package/api/@wtf/release-replace/errors/type-aliases/ReplaceErrorCode.md +1 -1
- package/api/@wtf/release-replace/errors/variables/REPLACE_ERRORS.md +1 -1
- package/api/@wtf/release-replace/files/functions/filesMatcher.md +3 -3
- package/api/@wtf/release-replace/interfaces/ReplaceMatch.md +5 -5
- package/api/@wtf/release-replace/interfaces/ReplacementOf.md +5 -5
- package/api/@wtf/release-replace/replace/README.md +3 -3
- package/api/@wtf/release-replace/replace/functions/regExpOf.md +1 -1
- package/api/@wtf/release-replace/replace/functions/replaceFiles.md +3 -3
- package/api/@wtf/release-replace/replace/functions/replaceText.md +1 -1
- package/api/@wtf/release-replace/replace/interfaces/ReplaceOptions.md +35 -32
- package/api/@wtf/release-replace/replace/interfaces/TextOptions.md +5 -5
- package/api/@wtf/release-replace/replace/type-aliases/To.md +1 -1
- package/api/@wtf/release-replace/templates/functions/mergeTemplates.md +1 -1
- package/api/@wtf/release-replace/templates/functions/resolveReplacement.md +1 -1
- package/api/@wtf/release-replace/templates/functions/resolveReplacements.md +1 -1
- package/api/@wtf/release-replace/type-aliases/Escape.md +1 -1
- package/api/@wtf/release-replace/type-aliases/ReplaceFunction.md +1 -1
- package/api/@wtf/release-replace/type-aliases/Replacement.md +1 -1
- package/api/@wtf/release-replace/type-aliases/ReplacementSpec.md +1 -1
- package/api/@wtf/release-replace/type-aliases/TemplateUse.md +1 -1
- package/api/@wtf/release-replace/type-aliases/Templates.md +1 -1
- package/api/@wtf/release-replace/values/functions/escapeValue.md +1 -1
- package/api/@wtf/release-replace/values/functions/textOf.md +1 -1
- package/api/@wtf/release-replace/values/functions/valueAt.md +1 -1
- package/api/@wtf/release-replace/values/variables/ESCAPES.md +1 -1
- package/api/@wtf/release-replace/values/variables/VALUE.md +1 -1
- package/api/@wtf/release-trains/README.md +9 -8
- package/api/@wtf/release-trains/cascade/README.md +6 -5
- package/api/@wtf/release-trains/cascade/functions/cascadeNotes.md +1 -1
- package/api/@wtf/release-trains/cascade/functions/cascadeText.md +1 -1
- package/api/@wtf/release-trains/cascade/functions/cascadeType.md +1 -1
- package/api/@wtf/release-trains/cascade/functions/cascadesOf.md +2 -2
- package/api/@wtf/release-trains/cascade/functions/higherType.md +1 -1
- package/api/@wtf/release-trains/cascade/interfaces/Cascade.md +11 -11
- package/api/@wtf/release-trains/cascade/interfaces/CascadeCheck.md +30 -27
- package/api/@wtf/release-trains/cascade/type-aliases/CascadeKind.md +2 -2
- package/api/@wtf/release-trains/cascade/type-aliases/ReleaseType.md +1 -1
- package/api/@wtf/release-trains/cascade/variables/RELEASE_TYPES.md +1 -1
- package/api/@wtf/release-trains/errors/README.md +6 -5
- package/api/@wtf/release-trains/errors/classes/TrainsError.md +18 -32
- package/api/@wtf/release-trains/errors/type-aliases/TrainsErrorCode.md +1 -1
- package/api/@wtf/release-trains/errors/variables/TRAINS_ERRORS.md +1 -13
- package/api/@wtf/release-trains/git/README.md +4 -4
- package/api/@wtf/release-trains/git/functions/tagOf.md +1 -1
- package/api/@wtf/release-trains/git/functions/tagsOf.md +4 -4
- package/api/@wtf/release-trains/git/functions/versionOfTag.md +1 -1
- package/api/@wtf/release-trains/git/interfaces/TrainTag.md +3 -3
- package/api/@wtf/release-trains/gitlab/README.md +6 -3
- package/api/@wtf/release-trains/gitlab/functions/findPackage.md +1 -1
- package/api/@wtf/release-trains/gitlab/functions/gitlabForge.md +33 -0
- package/api/@wtf/release-trains/gitlab/functions/gitlabHeadersOf.md +1 -1
- package/api/@wtf/release-trains/gitlab/functions/gitlabProjectOf.md +1 -1
- package/api/@wtf/release-trains/gitlab/functions/gitlabRegistryOf.md +1 -1
- package/api/@wtf/release-trains/gitlab/functions/uploadGeneric.md +1 -1
- package/api/@wtf/release-trains/gitlab/interfaces/GenericUpload.md +8 -8
- package/api/@wtf/release-trains/gitlab/interfaces/GitLabForgeOptions.md +97 -0
- package/api/@wtf/release-trains/gitlab/interfaces/GitLabOptions.md +4 -4
- package/api/@wtf/release-trains/gitlab/interfaces/GitLabProject.md +6 -6
- package/api/@wtf/release-trains/gitlab/interfaces/GitLabRegistry.md +5 -5
- package/api/@wtf/release-trains/gitlab/interfaces/HttpResponse.md +4 -4
- package/api/@wtf/release-trains/gitlab/interfaces/PackageQuery.md +9 -9
- package/api/@wtf/release-trains/gitlab/type-aliases/HttpFetch.md +1 -1
- package/api/@wtf/release-trains/gitlab/variables/LISTING_WAITS.md +1 -1
- package/api/@wtf/release-trains/interfaces/Train.md +7 -7
- package/api/@wtf/release-trains/links/README.md +16 -20
- package/api/@wtf/release-trains/links/functions/releaseLinks.md +15 -13
- package/api/@wtf/release-trains/links/interfaces/LinkOptions.md +56 -33
- package/api/@wtf/release-trains/packages/README.md +11 -16
- package/api/@wtf/release-trains/packages/functions/dependencyEdges.md +2 -2
- package/api/@wtf/release-trains/packages/functions/dependencyText.md +1 -1
- package/api/@wtf/release-trains/packages/functions/dependsOnErrors.md +2 -2
- package/api/@wtf/release-trains/packages/functions/ownersOf.md +2 -2
- package/api/@wtf/release-trains/packages/functions/packagesOf.md +2 -2
- package/api/@wtf/release-trains/packages/functions/releasedVersions.md +2 -2
- package/api/@wtf/release-trains/packages/functions/trainDependencies.md +2 -2
- package/api/@wtf/release-trains/packages/functions/trainOrder.md +2 -2
- package/api/@wtf/release-trains/packages/functions/unsatisfiedErrors.md +5 -4
- package/api/@wtf/release-trains/packages/interfaces/DependencyEdge.md +6 -6
- package/api/@wtf/release-trains/packages/interfaces/TrainDependency.md +3 -3
- package/api/@wtf/release-trains/packages/interfaces/VersionsRelease.md +24 -21
- package/api/@wtf/release-trains/paths/README.md +5 -4
- package/api/@wtf/release-trains/paths/functions/filterCommits.md +1 -1
- package/api/@wtf/release-trains/paths/functions/gitFilesOf.md +4 -4
- package/api/@wtf/release-trains/paths/functions/overlapError.md +1 -1
- package/api/@wtf/release-trains/paths/functions/trainOfPath.md +1 -1
- package/api/@wtf/release-trains/paths/functions/trainsOfCommit.md +1 -1
- package/api/@wtf/release-trains/paths/functions/trainsOfPath.md +1 -1
- package/api/@wtf/release-trains/paths/type-aliases/FilesOf.md +1 -1
- package/api/@wtf/release-trains/plan/README.md +38 -0
- package/api/@wtf/release-trains/plan/functions/planOf.md +45 -0
- package/api/@wtf/release-trains/plan/interfaces/PlanRelease.md +113 -0
- package/api/@wtf/release-trains/plan/interfaces/TrainPlan.md +72 -0
- package/api/@wtf/release-trains/schema/README.md +1 -1
- package/api/@wtf/release-trains/schema/interfaces/ConfigPart.md +6 -6
- package/api/@wtf/release-trains/schema/interfaces/RootOptions.md +7 -17
- package/api/@wtf/release-trains/schema/type-aliases/DependencyRule.md +1 -1
- package/api/@wtf/release-trains/schema/variables/DEPENDENCY_RULES.md +1 -1
- package/api/@wtf/release-trains/schema/variables/TAG_FORMAT_PATTERN.md +1 -1
- package/api/@wtf/release-trains/schema/variables/TRAIN_NAME_PATTERN.md +1 -1
- package/api/@wtf/release-trains/schema/variables/configSchema.md +2 -2
- package/api/@wtf/release-trains/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/release-trains/schema/variables/rootOptionsSchema.md +4 -4
- package/api/@wtf/release-trains/schema/variables/trainSchema.md +2 -2
- package/api/@wtf/release-trains/schema/variables/trainsSchema.md +2 -2
- package/api/@wtf/release-trains/trains/functions/changelogOf.md +1 -1
- package/api/@wtf/release-trains/trains/functions/matchersOf.md +3 -3
- package/api/@wtf/release-trains/trains/functions/overlapErrors.md +1 -1
- package/api/@wtf/release-trains/trains/functions/selectTrain.md +1 -1
- package/api/@wtf/release-trains/trains/functions/tagFormatOf.md +1 -1
- package/api/@wtf/release-trains/trains/functions/trainHeadedNotes.md +1 -1
- package/api/@wtf/release-trains/trains/functions/trainOfRun.md +1 -1
- package/api/@wtf/release-trains/trains/functions/trainOfTag.md +1 -1
- package/api/@wtf/release-trains/trains/functions/trainsErrors.md +1 -1
- package/api/@wtf/release-trains/trains/functions/trainsOfOptions.md +4 -9
- package/api/@wtf/release-trains/trains/variables/TRAIN_VARIABLE.md +1 -1
- package/api/@wtf/release-trains/trains/variables/VERSION.md +1 -1
- package/api/@wtf/release-trains/type-aliases/BranchSpec.md +1 -1
- package/api/@wtf/release-trains/type-aliases/Trains.md +1 -1
- package/api/@wtf/release-trains/verify/README.md +8 -7
- package/api/@wtf/release-trains/verify/functions/unreleasedDependencies.md +3 -3
- package/api/@wtf/release-trains/verify/functions/verifyTrain.md +3 -3
- package/api/@wtf/release-trains/verify/interfaces/UnreleasedDependencies.md +33 -30
- package/api/@wtf/release-trains/verify/interfaces/VerifiedTrain.md +5 -5
- package/api/@wtf/release-trains/verify/interfaces/VerifyRelease.md +27 -24
- package/api/@wtf/release-validate/errors/README.md +3 -4
- package/api/@wtf/release-validate/errors/classes/ValidateError.md +29 -32
- package/api/@wtf/release-validate/errors/type-aliases/ValidateErrorCode.md +1 -1
- package/api/@wtf/release-validate/errors/variables/VALIDATE_ERRORS.md +1 -1
- package/api/@wtf/release-validate/interfaces/ConfigIssue.md +4 -4
- package/api/@wtf/release-validate/json-schema/functions/fromJsonSchema.md +1 -1
- package/api/@wtf/release-validate/json-schema/functions/pathOfPointer.md +1 -1
- package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaError.md +3 -3
- package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaValidator.md +3 -3
- package/api/@wtf/release-validate/validate/functions/configErrors.md +1 -1
- package/api/@wtf/release-validate/validate/functions/isStandardSchema.md +1 -1
- package/api/@wtf/release-validate/validate/functions/pathText.md +1 -1
- package/api/@wtf/release-validate/validate/functions/validateConfig.md +1 -1
- package/api/@wtf/semantic-release/README.md +36 -0
- package/api/@wtf/semantic-release/errors/README.md +32 -0
- package/api/@wtf/semantic-release/errors/functions/marked.md +29 -0
- package/api/@wtf/semantic-release/errors/functions/markedStep.md +36 -0
- package/api/@wtf/semantic-release/errors/variables/SEMANTIC_RELEASE_ERROR.md +13 -0
- package/api/@wtf/{release-system/node → semantic-release}/functions/realPathOf.md +3 -3
- package/api/@wtf/semantic-release/functions/runOf.md +31 -0
- package/api/@wtf/semantic-release/interfaces/RunContext.md +31 -0
- package/api/@wtf/semantic-release/links/README.md +38 -0
- package/api/@wtf/{release-trains → semantic-release}/links/functions/forgetReleased.md +2 -2
- package/api/@wtf/{release-trains → semantic-release}/links/functions/recordReleased.md +3 -3
- package/api/@wtf/semantic-release/links/functions/releasedOf.md +28 -0
- package/api/@wtf/semantic-release/links/interfaces/ReleaseRun.md +41 -0
- package/api/@wtf/semantic-release/release/README.md +47 -0
- package/api/@wtf/semantic-release/release/functions/inTrain.md +42 -0
- package/api/@wtf/semantic-release/release/functions/stepRelease.md +35 -0
- package/api/@wtf/semantic-release/release/functions/trainNamed.md +34 -0
- package/api/@wtf/semantic-release/release/functions/trainPrefix.md +27 -0
- package/api/@wtf/semantic-release/release/interfaces/StepContext.md +63 -0
- package/api/@wtf/semantic-release/release/interfaces/StepOf.md +63 -0
- package/api/@wtf/semantic-release/schema/README.md +23 -0
- package/api/@wtf/{release-system/validator → semantic-release/schema}/functions/pluginEntriesOf.md +5 -5
- package/api/@wtf/semantic-release-cargo/README.md +32 -26
- package/api/@wtf/semantic-release-cargo/functions/indexLookup.md +3 -3
- package/api/@wtf/semantic-release-cargo/interfaces/CargoPluginOptions.md +46 -23
- package/api/@wtf/semantic-release-cargo/interfaces/CargoRelease.md +3 -3
- package/api/@wtf/semantic-release-cargo/schema/README.md +2 -2
- package/api/@wtf/semantic-release-cargo/schema/type-aliases/CargoOptions.md +2 -2
- package/api/@wtf/semantic-release-cargo/schema/variables/cargoOptionsSchema.md +2 -2
- package/api/@wtf/semantic-release-cargo/schema/variables/cargoSchema.md +2 -2
- package/api/@wtf/semantic-release-cargo/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-cargo/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-cargo/variables/default.md +43 -14
- package/api/@wtf/semantic-release-cargo/{functions → variables}/prepare.md +7 -7
- package/api/@wtf/semantic-release-cargo/{functions → variables}/publish.md +6 -5
- package/api/@wtf/semantic-release-cargo/variables/verifyConditions.md +37 -0
- package/api/@wtf/semantic-release-cargo/variables/verifyRelease.md +37 -0
- package/api/@wtf/semantic-release-go/README.md +40 -36
- package/api/@wtf/semantic-release-go/interfaces/GoPluginOptions.md +7 -17
- package/api/@wtf/semantic-release-go/interfaces/GoRelease.md +3 -3
- package/api/@wtf/semantic-release-go/schema/README.md +2 -2
- package/api/@wtf/semantic-release-go/schema/type-aliases/GoOptions.md +2 -2
- package/api/@wtf/semantic-release-go/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-go/schema/variables/goOptionsSchema.md +2 -2
- package/api/@wtf/semantic-release-go/schema/variables/goSchema.md +2 -2
- package/api/@wtf/semantic-release-go/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-go/variables/default.md +26 -22
- package/api/@wtf/semantic-release-go/variables/prepare.md +40 -0
- package/api/@wtf/semantic-release-go/variables/publish.md +45 -0
- package/api/@wtf/semantic-release-go/{functions → variables}/verifyConditions.md +8 -7
- package/api/@wtf/semantic-release-go/variables/verifyRelease.md +40 -0
- package/api/@wtf/semantic-release-maven/README.md +38 -20
- package/api/@wtf/semantic-release-maven/functions/pomLookup.md +3 -3
- package/api/@wtf/semantic-release-maven/interfaces/MavenPluginOptions.md +12 -22
- package/api/@wtf/semantic-release-maven/interfaces/MavenRelease.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/README.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/type-aliases/MavenOptions.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/variables/mavenOptionsSchema.md +2 -2
- package/api/@wtf/semantic-release-maven/schema/variables/mavenSchema.md +2 -2
- package/api/@wtf/semantic-release-maven/variables/default.md +45 -16
- package/api/@wtf/semantic-release-maven/variables/prepare.md +41 -0
- package/api/@wtf/semantic-release-maven/variables/publish.md +44 -0
- package/api/@wtf/semantic-release-maven/{functions → variables}/verifyConditions.md +6 -7
- package/api/@wtf/semantic-release-maven/variables/verifyRelease.md +36 -0
- package/api/@wtf/semantic-release-npm/README.md +39 -29
- package/api/@wtf/semantic-release-npm/functions/loadPublisher.md +1 -1
- package/api/@wtf/semantic-release-npm/interfaces/PublishPluginOptions.md +24 -82
- package/api/@wtf/semantic-release-npm/interfaces/PublishedRelease.md +4 -4
- package/api/@wtf/semantic-release-npm/interfaces/SmokeOption.md +2 -2
- package/api/@wtf/semantic-release-npm/schema/README.md +1 -1
- package/api/@wtf/semantic-release-npm/schema/type-aliases/PublishOptions.md +3 -3
- package/api/@wtf/semantic-release-npm/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-npm/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-npm/schema/variables/publishOptionsSchema.md +2 -2
- package/api/@wtf/semantic-release-npm/schema/variables/publishSchema.md +2 -2
- package/api/@wtf/semantic-release-npm/type-aliases/PublisherSpec.md +1 -1
- package/api/@wtf/semantic-release-npm/{functions → variables}/addChannel.md +7 -6
- package/api/@wtf/semantic-release-npm/variables/default.md +51 -15
- package/api/@wtf/semantic-release-npm/variables/fail.md +36 -0
- package/api/@wtf/semantic-release-npm/variables/prepare.md +37 -0
- package/api/@wtf/semantic-release-npm/{functions → variables}/publish.md +8 -6
- package/api/@wtf/semantic-release-npm/{functions → variables}/verifyConditions.md +6 -4
- package/api/@wtf/semantic-release-npm/variables/verifyRelease.md +35 -0
- package/api/@wtf/semantic-release-oci/README.md +64 -0
- package/api/@wtf/semantic-release-oci/interfaces/OciPluginOptions.md +119 -0
- package/api/@wtf/semantic-release-oci/interfaces/OciRelease.md +31 -0
- package/api/@wtf/semantic-release-oci/schema/README.md +38 -0
- package/api/@wtf/semantic-release-oci/schema/type-aliases/OciOptions.md +13 -0
- package/api/@wtf/semantic-release-oci/schema/variables/configSchema.md +13 -0
- package/api/@wtf/semantic-release-oci/schema/variables/jsonSchema.md +13 -0
- package/api/@wtf/semantic-release-oci/schema/variables/ociOptionsSchema.md +13 -0
- package/api/@wtf/semantic-release-oci/schema/variables/ociSchema.md +14 -0
- package/api/@wtf/semantic-release-oci/variables/default.md +112 -0
- package/api/@wtf/semantic-release-oci/variables/publish.md +47 -0
- package/api/@wtf/semantic-release-oci/variables/verifyConditions.md +38 -0
- package/api/@wtf/semantic-release-oci/variables/verifyRelease.md +35 -0
- package/api/@wtf/semantic-release-replace/README.md +4 -4
- package/api/@wtf/semantic-release-replace/functions/functionOf.md +1 -1
- package/api/@wtf/semantic-release-replace/functions/templatesOf.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/README.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/interfaces/ModuleExport.md +3 -3
- package/api/@wtf/semantic-release-replace/schema/interfaces/ReplaceOptions.md +4 -8
- package/api/@wtf/semantic-release-replace/schema/interfaces/RootTemplates.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacement.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacementSpec.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTemplates.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTo.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplateSet.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplatesOption.md +1 -1
- package/api/@wtf/semantic-release-replace/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/exportedSetSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/replaceOptionsSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/replacementSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/rootTemplatesSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/templateSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/schema/variables/templatesSchema.md +2 -2
- package/api/@wtf/semantic-release-replace/type-aliases/ReplacePluginOptions.md +13 -0
- package/api/@wtf/semantic-release-replace/variables/default.md +5 -5
- package/api/@wtf/semantic-release-replace/{functions → variables}/prepare.md +6 -6
- package/api/@wtf/semantic-release-replace/{functions → variables}/verifyConditions.md +5 -5
- package/api/@wtf/semantic-release-trains/config/functions/skipPlugins.md +1 -1
- package/api/@wtf/semantic-release-trains/config/functions/stepId.md +1 -1
- package/api/@wtf/semantic-release-trains/config/functions/trainAssets.md +1 -1
- package/api/@wtf/semantic-release-trains/config/functions/trainChangelog.md +1 -1
- package/api/@wtf/semantic-release-trains/config/functions/trainOfTag.md +1 -1
- package/api/@wtf/semantic-release-trains/config/functions/trainTagFormat.md +1 -1
- package/api/@wtf/semantic-release-trains/config/interfaces/AssetsOptions.md +4 -4
- package/api/@wtf/semantic-release-trains/config/interfaces/SkipOptions.md +3 -3
- package/api/@wtf/semantic-release-trains/config/variables/BRANCHES.md +1 -1
- package/api/@wtf/semantic-release-trains/config/variables/BREAKING.md +1 -1
- package/api/@wtf/semantic-release-trains/config/variables/TITLE.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/functions/listingFetchOf.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/functions/skipRuleOf.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/functions/skips.md +3 -2
- package/api/@wtf/semantic-release-trains/defaults/functions/stepOptionsOf.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/functions/trainOptionsOf.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/interfaces/ListingRetry.md +3 -3
- package/api/@wtf/semantic-release-trains/defaults/interfaces/SkipContext.md +35 -12
- package/api/@wtf/semantic-release-trains/defaults/interfaces/StepOptionsContext.md +18 -7
- package/api/@wtf/semantic-release-trains/defaults/type-aliases/SkipCheck.md +3 -2
- package/api/@wtf/semantic-release-trains/defaults/type-aliases/StepOptions.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/type-aliases/TrainOptions.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/variables/SKIP_RULES.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_OPTIONS.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_SKIP.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_STEP_OPTIONS.md +1 -1
- package/api/@wtf/semantic-release-trains/defaults/variables/releaseAssets.md +2 -2
- package/api/@wtf/semantic-release-trains/errors/type-aliases/PluginErrorCode.md +1 -1
- package/api/@wtf/semantic-release-trains/errors/variables/PLUGIN_ERRORS.md +1 -1
- package/api/@wtf/semantic-release-trains/info/README.md +3 -3
- package/api/@wtf/semantic-release-trains/info/functions/decideTrain.md +1 -1
- package/api/@wtf/semantic-release-trains/info/functions/dotenvOf.md +1 -1
- package/api/@wtf/semantic-release-trains/info/functions/infoOf.md +3 -2
- package/api/@wtf/semantic-release-trains/info/interfaces/DecideRun.md +4 -4
- package/api/@wtf/semantic-release-trains/info/interfaces/InfoRun.md +36 -33
- package/api/@wtf/semantic-release-trains/info/interfaces/TrainDecision.md +5 -5
- package/api/@wtf/semantic-release-trains/info/interfaces/TrainInfo.md +5 -5
- package/api/@wtf/semantic-release-trains/interfaces/TrainsEntryOptions.md +5 -5
- package/api/@wtf/semantic-release-trains/interfaces/TrainsOptions.md +7 -17
- package/api/@wtf/semantic-release-trains/schema/README.md +1 -1
- package/api/@wtf/semantic-release-trains/schema/variables/configSchema.md +2 -2
- package/api/@wtf/semantic-release-trains/schema/variables/jsonSchema.md +2 -2
- package/api/@wtf/semantic-release-trains/schema/variables/pluginSpecSchema.md +2 -2
- package/api/@wtf/semantic-release-trains/schema/variables/skipRuleSchema.md +2 -2
- package/api/@wtf/semantic-release-trains/schema/variables/trainsEntrySchema.md +2 -2
- package/api/@wtf/semantic-release-trains/schema/variables/trainsPluginSchema.md +2 -2
- package/api/@wtf/semantic-release-trains/type-aliases/PluginSpec.md +1 -1
- package/api/@wtf/semantic-release-trains/type-aliases/TrainsPluginOptions.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/addChannel.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/analyzeCommits.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/default.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/fail.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/generateNotes.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/prepare.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/publish.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/success.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/verifyConditions.md +1 -1
- package/api/@wtf/semantic-release-trains/variables/verifyRelease.md +1 -1
- package/api/@wtf/semantic-release-validate/README.md +1 -1
- package/api/@wtf/semantic-release-validate/functions/configOf.md +1 -1
- package/api/@wtf/semantic-release-validate/functions/loadSchema.md +1 -1
- package/api/@wtf/semantic-release-validate/interfaces/ValidatePluginOptions.md +2 -2
- package/api/@wtf/semantic-release-validate/schema/interfaces/Validator.md +2 -2
- package/api/@wtf/semantic-release-validate/schema/variables/configSchema.md +1 -1
- package/api/@wtf/semantic-release-validate/schema/variables/jsonSchema.md +1 -1
- package/api/@wtf/semantic-release-validate/schema/variables/validateOptionsSchema.md +1 -1
- package/api/@wtf/semantic-release-validate/variables/default.md +2 -2
- package/api/@wtf/semantic-release-validate/{functions → variables}/verifyConditions.md +5 -5
- package/api/README.md +31 -10
- package/api/trains.json +32 -9
- package/guides/ci-recipes.md +29 -27
- package/guides/configuring-trains.md +24 -20
- package/guides/dependency-rules.md +17 -17
- package/guides/ecosystems.md +69 -32
- package/guides/getting-started.md +26 -21
- package/guides/platform.md +179 -0
- package/guides/publishing-crates.md +58 -17
- package/guides/publishing-go-modules.md +55 -11
- package/guides/publishing-maven.md +48 -10
- package/guides/publishing-oci.md +134 -0
- package/guides/publishing.md +105 -84
- package/guides/troubleshooting.md +13 -12
- package/guides/validating-a-config.md +1 -0
- package/package.json +24 -16
- package/api/@wtf/release-go/tags/variables/RELEASE_AUTHOR.md +0 -23
- package/api/@wtf/release-npm/interfaces/PublishTrainOptions.md +0 -144
- package/api/@wtf/release-npm/release/functions/checkTrain.md +0 -32
- package/api/@wtf/release-npm/release/functions/distTagOf.md +0 -31
- package/api/@wtf/release-npm/release/functions/packTrain.md +0 -39
- package/api/@wtf/release-npm/release/functions/publishTrain.md +0 -37
- package/api/@wtf/release-npm/release/functions/publishedOfResolved.md +0 -36
- package/api/@wtf/release-npm/release/functions/releaseTrain.md +0 -31
- package/api/@wtf/release-npm/release/functions/resolveManifests.md +0 -37
- package/api/@wtf/release-npm/release/functions/tagTrain.md +0 -36
- package/api/@wtf/release-npm/release/interfaces/CheckRelease.md +0 -222
- package/api/@wtf/release-npm/release/interfaces/PackedTrain.md +0 -125
- package/api/@wtf/release-npm/release/interfaces/PublishedTrain.md +0 -47
- package/api/@wtf/release-npm/release/interfaces/ResolveRelease.md +0 -220
- package/api/@wtf/release-npm/release/interfaces/ResolvedTrain.md +0 -55
- package/api/@wtf/release-npm/release/interfaces/TagRelease.md +0 -174
- package/api/@wtf/release-npm/release/type-aliases/LookedUpTrain.md +0 -13
- package/api/@wtf/release-npm/release/type-aliases/ReleaseRun.md +0 -13
- package/api/@wtf/release-npm/workspace/interfaces/WorkspaceOptions.md +0 -19
- package/api/@wtf/release-system/README.md +0 -71
- package/api/@wtf/release-system/errors/README.md +0 -42
- package/api/@wtf/release-system/errors/functions/throwAll.md +0 -26
- package/api/@wtf/release-system/errors/type-aliases/SystemErrorCode.md +0 -13
- package/api/@wtf/release-system/errors/variables/SYSTEM_ERRORS.md +0 -23
- package/api/@wtf/release-system/git/functions/gitOf.md +0 -39
- package/api/@wtf/release-system/git/interfaces/GitContext.md +0 -45
- package/api/@wtf/release-system/git/interfaces/LogCommit.md +0 -43
- package/api/@wtf/release-system/node/README.md +0 -25
- package/api/@wtf/release-system/node/functions/nodeSystem.md +0 -20
- package/api/@wtf/release-system/node/functions/systemOf.md +0 -29
- package/api/@wtf/release-system/system/README.md +0 -39
- package/api/@wtf/release-system/system/interfaces/DirEntry.md +0 -27
- package/api/@wtf/release-system/system/interfaces/ExecOptions.md +0 -41
- package/api/@wtf/release-system/system/interfaces/ExecResult.md +0 -35
- package/api/@wtf/release-system/system/interfaces/System.md +0 -73
- package/api/@wtf/release-system/system/interfaces/SystemFs.md +0 -184
- package/api/@wtf/release-system/system/type-aliases/Exec.md +0 -41
- package/api/@wtf/release-system/system/type-aliases/SystemInput.md +0 -20
- package/api/@wtf/release-system/validator/interfaces/OptionIssue.md +0 -63
- package/api/@wtf/release-system/validator/interfaces/Property.md +0 -49
- package/api/@wtf/release-system/validator/type-aliases/JsonSchema.md +0 -17
- package/api/@wtf/release-system/validator/type-aliases/Path.md +0 -13
- package/api/@wtf/release-trains/ecosystem/functions/isEcosystem.md +0 -27
- package/api/@wtf/release-trains/ecosystem/functions/readPackages.md +0 -33
- package/api/@wtf/release-trains/ecosystem/interfaces/Dependency.md +0 -43
- package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemContext.md +0 -68
- package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemPackages.md +0 -27
- package/api/@wtf/release-trains/ecosystem/interfaces/Package.md +0 -70
- package/api/@wtf/release-trains/ecosystem/type-aliases/DependencyKind.md +0 -16
- package/api/@wtf/release-trains/ecosystem/variables/DEPENDENCY_KINDS.md +0 -13
- package/api/@wtf/release-trains/generated/functions/listGenerated.md +0 -41
- package/api/@wtf/release-trains/generated/functions/readGenerated.md +0 -39
- package/api/@wtf/release-trains/generated/functions/stageGeneratedFolders.md +0 -29
- package/api/@wtf/release-trains/generated/functions/unlistedIn.md +0 -42
- package/api/@wtf/release-trains/generated/interfaces/GeneratedOptions.md +0 -19
- package/api/@wtf/release-trains/generated/interfaces/StageOptions.md +0 -73
- package/api/@wtf/release-trains/generated/variables/GENERATED.md +0 -13
- package/api/@wtf/release-trains/links/functions/releasedOf.md +0 -28
- package/api/@wtf/release-trains/links/interfaces/PackageRegistry.md +0 -41
- package/api/@wtf/release-trains/links/interfaces/ReleaseLink.md +0 -41
- package/api/@wtf/release-trains/links/interfaces/ReleaseRun.md +0 -41
- package/api/@wtf/release-trains/links/interfaces/ReleasedPackage.md +0 -92
- package/api/@wtf/release-trains/packages/interfaces/OrderFault.md +0 -39
- package/api/@wtf/release-trains/packages/interfaces/OrderPins.md +0 -27
- package/api/@wtf/release-trains/packages/interfaces/PublishOrder.md +0 -35
- package/api/@wtf/semantic-release-cargo/functions/verifyConditions.md +0 -39
- package/api/@wtf/semantic-release-go/functions/prepare.md +0 -41
- package/api/@wtf/semantic-release-go/functions/publish.md +0 -43
- package/api/@wtf/semantic-release-go/functions/verifyRelease.md +0 -38
- package/api/@wtf/semantic-release-maven/functions/prepare.md +0 -41
- package/api/@wtf/semantic-release-maven/functions/publish.md +0 -43
- package/api/@wtf/semantic-release-maven/interfaces/LookupAuth.md +0 -32
- package/api/@wtf/semantic-release-npm/functions/fail.md +0 -36
- package/api/@wtf/semantic-release-npm/functions/prepare.md +0 -34
- package/api/@wtf/semantic-release-replace/interfaces/ReplacePluginOptions.md +0 -71
- package/guides/system.md +0 -175
|
@@ -10,7 +10,9 @@ or `v<version>` for a module at the root. The Go proxy reads the module from tha
|
|
|
10
10
|
publishes a module by pushing its tag.
|
|
11
11
|
|
|
12
12
|
The plugin runs on the library [`@wtf/release-go`](../../release-go/README.md). The library's
|
|
13
|
-
default export is the Go ecosystem,
|
|
13
|
+
default export is the Go ecosystem, which reads the modules of a repo and releases them in the steps
|
|
14
|
+
of [`@wtf/release`](../../release/README.md)'s contract, and the plugin exports the same ecosystem
|
|
15
|
+
at `./ecosystem`. Add
|
|
14
16
|
`'@wtf/semantic-release-go/ecosystem'` to `ecosystems` in your config. The trains then treat modules
|
|
15
17
|
the same way as npm packages: they decide which train holds each module, the order of the trains,
|
|
16
18
|
the checks of a release, and the releases a train owes the trains it depends on. See
|
|
@@ -102,18 +104,24 @@ workflow:
|
|
|
102
104
|
|
|
103
105
|
## What a release does
|
|
104
106
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
Each step of semantic-release runs a step of the Go ecosystem over the plan of the train: the
|
|
108
|
+
modules of the train that Go can fetch, and the version of each module of the repo.
|
|
109
|
+
|
|
110
|
+
1. **`verifyConditions`** checks the options and reads the go.mod files that git tracks. It works
|
|
111
|
+
out the plan of the train, which reads each other train's last release from its tags, and selects
|
|
112
|
+
the modules that the release tags. A repo that cannot be released fails here, before the tag (see
|
|
108
113
|
[When modules depend on other trains](#when-modules-depend-on-other-trains)).
|
|
109
|
-
2. **`verifyRelease`**
|
|
110
|
-
(`
|
|
111
|
-
|
|
114
|
+
2. **`verifyRelease`** runs the ecosystem's `verify`. It checks that the version is one Go tags a
|
|
115
|
+
module of (`EGOSEMVER`), and each module's path against the major of the version (`EGOMAJOR`;
|
|
116
|
+
see [Release a new major](#release-a-new-major)).
|
|
117
|
+
3. **`prepare`** runs the ecosystem's `prepare`, which writes the versions into the go.mod
|
|
118
|
+
files. It writes
|
|
112
119
|
the release's version into each require of a module of the train, and each other train's last
|
|
113
120
|
release into each require of that train's modules, in every go.mod of the repo. Then it reads the
|
|
114
121
|
files again, and a require that is not at its train's version fails the run (`EGOVERSION`; see
|
|
115
122
|
[What the release changes in go.mod](#what-the-release-changes-in-gomod)).
|
|
116
|
-
4. **`publish`** commits the changed go.mod files and tags that commit with
|
|
123
|
+
4. **`publish`** runs `publish`, which commits the changed go.mod files and tags that commit with
|
|
124
|
+
each module's tag (see
|
|
117
125
|
[Tag a commit that holds the versions](#tag-a-commit-that-holds-the-versions)). It skips each tag
|
|
118
126
|
the remote already has. With `proxy`, it then asks the Go proxy for each module.
|
|
119
127
|
|
|
@@ -132,7 +140,8 @@ tag. The branch, the index and the working tree stay as they are; only the tags
|
|
|
132
140
|
|
|
133
141
|
- The commit message is `chore(release): Go modules of <train> <version>`.
|
|
134
142
|
- The author comes from `GIT_AUTHOR_NAME` and `GIT_AUTHOR_EMAIL`, and the committer from
|
|
135
|
-
`GIT_COMMITTER_*`. Without them, both are `semantic-release-bot`.
|
|
143
|
+
`GIT_COMMITTER_*`. Without them, both are `semantic-release-bot`. The plugin gives the library
|
|
144
|
+
this author: the library itself has none, and a caller of its own names one.
|
|
136
145
|
- When no go.mod changed, as for modules that require no other module of the repo, the plugin tags
|
|
137
146
|
the release commit itself.
|
|
138
147
|
|
|
@@ -190,8 +199,8 @@ From v2 on, Go holds the major in the module path: `example.com/repo/core/v2`. A
|
|
|
190
199
|
`/vN` needs a release of major N. A release of major 2 or higher needs a path that ends in its
|
|
191
200
|
major.
|
|
192
201
|
|
|
193
|
-
The plugin checks this in `verifyRelease`, once semantic-release knows the version
|
|
194
|
-
|
|
202
|
+
The plugin checks this in `verifyRelease`, once semantic-release knows the version. So a breaking
|
|
203
|
+
change to a module whose path has no `/v2` fails before anything is tagged
|
|
195
204
|
(`EGOMAJOR`). The error names the go.mod to change. In the commit of the breaking change:
|
|
196
205
|
|
|
197
206
|
1. Write `module example.com/repo/core/v2` in that go.mod.
|
|
@@ -276,3 +285,38 @@ Before it creates anything, the plugin asks the remote for every tag. It skips e
|
|
|
276
285
|
has, and pushes the rest in one atomic push: all of them or none. So retry the tag's job to create
|
|
277
286
|
the missing tags. A remote that cannot be asked stops the run before anything is created
|
|
278
287
|
(`EGOTAG`).
|
|
288
|
+
|
|
289
|
+
## Release Go modules without semantic-release
|
|
290
|
+
|
|
291
|
+
The Go ecosystem knows no train and no release tool. Any caller can release modules with it: give
|
|
292
|
+
it a release, a plan, and its options, and run its steps, one by one or through `runStep` of
|
|
293
|
+
`@wtf/release/driver`. The plan says which modules the release tags (`own`) and the version that
|
|
294
|
+
each module of the repo is required at (`versions`). `@wtf/release-trains/plan` works out the plan
|
|
295
|
+
of a train, or you can write one by hand.
|
|
296
|
+
|
|
297
|
+
```ts
|
|
298
|
+
import type { Plan, Release } from '@wtf/release/contract'
|
|
299
|
+
import { runStep } from '@wtf/release/driver'
|
|
300
|
+
import go from '@wtf/release-go'
|
|
301
|
+
|
|
302
|
+
declare const release: Release
|
|
303
|
+
declare const plan: Plan
|
|
304
|
+
|
|
305
|
+
const plans = new Map([['go', plan]])
|
|
306
|
+
const ecosystems = [
|
|
307
|
+
[
|
|
308
|
+
go,
|
|
309
|
+
{
|
|
310
|
+
remote: 'origin',
|
|
311
|
+
author: { name: 'Release Bot', email: 'release-bot@example.com' },
|
|
312
|
+
proxy: true
|
|
313
|
+
}
|
|
314
|
+
]
|
|
315
|
+
] as const
|
|
316
|
+
await runStep(release, plans, ecosystems, 'verify')
|
|
317
|
+
await runStep(release, plans, ecosystems, 'prepare')
|
|
318
|
+
export const { released } = await runStep(release, plans, ecosystems, 'publish')
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
`publish` needs `remote` and `author`, unless the release is a dry run (`EGOTAG`). A dry run writes
|
|
322
|
+
no go.mod, creates no commit and no tag, and asks the proxy nothing: it says the tags it would push.
|
|
@@ -110,20 +110,26 @@ nor a JDK, because the trains read the poms with git.
|
|
|
110
110
|
|
|
111
111
|
## What a release does
|
|
112
112
|
|
|
113
|
+
The plugin works out the plan of the train: the modules it deploys, and the version of each module
|
|
114
|
+
of the repo. Then each step of semantic-release runs a step of the Maven ecosystem, `verify`,
|
|
115
|
+
`prepare` or `publish`, over that plan, and what it says and throws names the train (see [Without semantic-release](#without-semantic-release)).
|
|
116
|
+
|
|
113
117
|
1. **`verifyConditions`** checks the options and reads the poms. It selects the modules that the
|
|
114
118
|
release deploys and puts them in dependency order. It reads each other train's last release from
|
|
115
|
-
its tags
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
its tags (see [When modules depend on other trains](#when-modules-depend-on-other-trains)).
|
|
120
|
+
2. **`verifyRelease`** checks the release's version by Maven's rules once semantic-release knows
|
|
121
|
+
it: a version that ends in `SNAPSHOT`, or holds a space or a character Maven bans, fails with
|
|
122
|
+
`EMAVENVERSION`. It finds each module's repository. A repo that cannot be deployed fails here,
|
|
123
|
+
before the tag.
|
|
124
|
+
3. **`prepare`** checks the version again, and writes the versions into the poms: the release's
|
|
125
|
+
version into the train's poms, and each other train's last release into that train's poms. It also writes them into the parents, dependencies and plugins
|
|
126
|
+
that name those modules. Then it reads the poms again, and a module that is not at its train's
|
|
127
|
+
version fails the run (see [What the stamp writes](#what-the-stamp-writes)).
|
|
128
|
+
4. **`publish`** asks each module's repository whether it has the module's pom, and skips each one
|
|
123
129
|
it has. It deploys the rest in dependency order.
|
|
124
130
|
|
|
125
|
-
A dry run of semantic-release runs only `verifyConditions`. It writes no
|
|
126
|
-
nothing.
|
|
131
|
+
A dry run of semantic-release runs only `verifyConditions` and `verifyRelease`. It writes no
|
|
132
|
+
version and deploys nothing.
|
|
127
133
|
|
|
128
134
|
### How a module is deployed
|
|
129
135
|
|
|
@@ -136,6 +142,36 @@ from the root of the repo, after the modules it depends on.
|
|
|
136
142
|
as a test kit with `maven.deploy.skip`. The plugin installs such a module into the local
|
|
137
143
|
repository first.
|
|
138
144
|
|
|
145
|
+
### Without semantic-release
|
|
146
|
+
|
|
147
|
+
The library releases the modules of any plan, with no train and no release tool. Its default export
|
|
148
|
+
is a `ReleasingEcosystem` of `@wtf/release/contract`, so `runStep` of `@wtf/release/driver` runs its
|
|
149
|
+
steps. A plan names the modules to deploy, in order, and the version each module of the repo takes:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
import type { Release } from '@wtf/release/contract'
|
|
153
|
+
import { runStep } from '@wtf/release/driver'
|
|
154
|
+
import maven from '@wtf/release-maven'
|
|
155
|
+
import { publishOrder, readModules, selectArtifacts } from '@wtf/release-maven/artifacts'
|
|
156
|
+
|
|
157
|
+
/** Every module of the repo that deploys, at the version of the release. */
|
|
158
|
+
export async function releaseAll(release: Release) {
|
|
159
|
+
const modules = await readModules(release)
|
|
160
|
+
const names = new Set(modules.map(({ name }) => name))
|
|
161
|
+
const own = publishOrder(selectArtifacts(modules, { train: names }))
|
|
162
|
+
const versions = new Map(modules.map(({ name }) => [name, release.version]))
|
|
163
|
+
const plans = new Map([['maven', { own, versions }]])
|
|
164
|
+
const ecosystems = [[maven, { args: ['-s', 'ci_settings.xml'] }]] as const
|
|
165
|
+
await runStep(release, plans, ecosystems, 'verify')
|
|
166
|
+
await runStep(release, plans, ecosystems, 'prepare')
|
|
167
|
+
return (await runStep(release, plans, ecosystems, 'publish')).released
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
The options are the plugin's `repository`, `lookup`, `lookupAuth`, `command` and `args`, and
|
|
172
|
+
`installs`, the modules to install before the ones that need them. A dry run of the release writes
|
|
173
|
+
and deploys nothing.
|
|
174
|
+
|
|
139
175
|
## When modules depend on other trains
|
|
140
176
|
|
|
141
177
|
A repo can be released in several trains. Each train has its own modules, version and tags, and its
|
|
@@ -174,6 +210,8 @@ The trains run the same checks for every ecosystem. They run in `verifyCondition
|
|
|
174
210
|
- A module of the release that depends on a module of a train with no release fails with
|
|
175
211
|
`EDEPENDENCYNORELEASE`.
|
|
176
212
|
- A module that the paths of two trains hold fails with `ETRAINOVERLAP`.
|
|
213
|
+
- A module of the release whose range no release of the other train satisfies fails with
|
|
214
|
+
`EDEPENDENCYUNSATISFIED` (see [Versions and ranges](#versions-and-ranges)).
|
|
177
215
|
|
|
178
216
|
In the first two cases there is no version that a repository could serve, so the release never
|
|
179
217
|
deploys the placeholder. A dependency in the `test` scope is not a fault, because no consumer
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Publish OCI images
|
|
2
|
+
|
|
3
|
+
[`@wtf/semantic-release-oci`](../../semantic-release-oci/README.md) releases the OCI images of a repo
|
|
4
|
+
that belong to a train: container images, built by Docker, buildah or the devcontainer CLI. Use it
|
|
5
|
+
when a train holds images, alone or beside npm packages and crates in the same release. They share
|
|
6
|
+
one version and one train tag, and a retry finishes a release that stopped.
|
|
7
|
+
|
|
8
|
+
A release never rebuilds an image. The pipeline of the tag builds and tests each image, as it does
|
|
9
|
+
on every branch; the release then copies that tested image, by its digest, to the tags of its
|
|
10
|
+
version. The bytes released are the bytes tested, and a consumer pins a version, or a major that
|
|
11
|
+
moves, instead of a commit.
|
|
12
|
+
|
|
13
|
+
The plugin runs on the library [`@wtf/release-oci`](../../release-oci/README.md). The library's
|
|
14
|
+
default export is the OCI ecosystem, and the plugin exports the same ecosystem at `./ecosystem`. Add
|
|
15
|
+
`'@wtf/semantic-release-oci/ecosystem'` to `ecosystems` in your config. The trains then treat images
|
|
16
|
+
the same way as npm packages: they decide which train holds each image, the order of the trains,
|
|
17
|
+
and the checks of a release. See [How ecosystems work](ecosystems.md).
|
|
18
|
+
|
|
19
|
+
## Turn it on
|
|
20
|
+
|
|
21
|
+
### Build and test each image in the pipeline of the tag
|
|
22
|
+
|
|
23
|
+
An image is each folder that holds a `Dockerfile`, a `Containerfile` or a
|
|
24
|
+
`.devcontainer/devcontainer.json` that git tracks. The pipeline of the tag builds it, tests it, and
|
|
25
|
+
pushes it as a snapshot before the release publishes: the plugin copies that snapshot. By default it
|
|
26
|
+
is `<image>/snapshot:<CI_COMMIT_REF_SLUG>`, as the devcontainer component of
|
|
27
|
+
[wetryfun/devops/components](https://gitlab.com/wetryfun/devops/components) pushes it. Another
|
|
28
|
+
pipeline names its own with `sourceRepository` and `sourceTag`.
|
|
29
|
+
|
|
30
|
+
### Add the OCI ecosystem and the plugin
|
|
31
|
+
|
|
32
|
+
An image belongs to the train whose `paths` hold its folder. Its repository in the registry is the
|
|
33
|
+
registry image of the project, `CI_REGISTRY_IMAGE` of a pipeline, for an image at the root, and
|
|
34
|
+
that and its folder for another, as `registry.gitlab.com/acme/images/base` of a folder `base`.
|
|
35
|
+
|
|
36
|
+
```js norun
|
|
37
|
+
// release.config.mjs
|
|
38
|
+
export default {
|
|
39
|
+
trains: { base: { paths: ['base'] }, release: { paths: ['release'] } },
|
|
40
|
+
ecosystems: ['@wtf/semantic-release-oci/ecosystem'],
|
|
41
|
+
train: process.env.RELEASE_TRAIN,
|
|
42
|
+
tagFormat: `${process.env.RELEASE_TRAIN}-v\${version}`,
|
|
43
|
+
plugins: [
|
|
44
|
+
['@wtf/semantic-release-trains', { wrap: '@semantic-release/commit-analyzer' }],
|
|
45
|
+
['@wtf/semantic-release-oci', { platforms: ['linux/amd64'] }],
|
|
46
|
+
['@wtf/semantic-release-trains', { wrap: '@semantic-release/gitlab' }]
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Log crane in
|
|
52
|
+
|
|
53
|
+
The plugin runs [crane](https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md),
|
|
54
|
+
which copies a digest from one repository to another by mounting its blobs, with no docker and no
|
|
55
|
+
pull. Put crane on the path of the release job and log it in to the registry, as in a pipeline of
|
|
56
|
+
GitLab:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
echo "$CI_REGISTRY_PASSWORD" | crane auth login --username "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## What a release does
|
|
63
|
+
|
|
64
|
+
In the run of the tag, `verifyRelease` and `publish` run the steps of the OCI ecosystem of
|
|
65
|
+
`@wtf/release-oci` over the images of the train:
|
|
66
|
+
|
|
67
|
+
1. `verifyRelease` checks the version and the tags that move, each a tag an image can have, once
|
|
68
|
+
semantic-release knows the version;
|
|
69
|
+
2. finds the snapshot of each image of the train by its digest, `crane digest`, and the platforms of
|
|
70
|
+
its index, `crane manifest`. A snapshot the registry has not, or of fewer platforms than
|
|
71
|
+
`platforms` names, fails the release (`EOCISMOKE`) before anything is copied;
|
|
72
|
+
3. checks the tag of the version: a registry that has it at the same digest skips it, and at another
|
|
73
|
+
digest refuses the release (`EOCIRETAG`). A released version never moves;
|
|
74
|
+
4. copies the snapshot to the version, and then points the minor and the major, which move, at the
|
|
75
|
+
digest of the version:
|
|
76
|
+
|
|
77
|
+
| Version | Tags |
|
|
78
|
+
| -------------- | ------------------- |
|
|
79
|
+
| `1.4.2` | `1.4.2`, `1.4`, `1` |
|
|
80
|
+
| `0.3.1` | `0.3.1`, `0.3` |
|
|
81
|
+
| `8.0.0-next.1` | `8.0.0-next.1` |
|
|
82
|
+
|
|
83
|
+
5. links each image from the GitLab release of the tag to its page in the container registry of the
|
|
84
|
+
project, which the Container Registry API names (`EOCILINK`). An image is linked where it lives,
|
|
85
|
+
never uploaded.
|
|
86
|
+
|
|
87
|
+
A release that stopped part way is finished by a retry of its job: the version the registry has at
|
|
88
|
+
the same digest is skipped, and the moving tags are copied again.
|
|
89
|
+
|
|
90
|
+
## Release images without semantic-release
|
|
91
|
+
|
|
92
|
+
The OCI ecosystem is a `ReleasingEcosystem` of `@wtf/release/contract`, so any driver releases
|
|
93
|
+
images by it, as a CLI that releases an image of Debian 12.12 as `12.12-wtf.1`, `12.12` and
|
|
94
|
+
`latest`. It takes the version and the tags that move as they are given, and derives none:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
import type { Plan, Release } from '@wtf/release/contract'
|
|
98
|
+
import { runStep } from '@wtf/release/driver'
|
|
99
|
+
import oci from '@wtf/release-oci'
|
|
100
|
+
|
|
101
|
+
export async function releaseImages(release: Release, plan: Plan, snapshot: string) {
|
|
102
|
+
const plans = new Map([['oci', plan]])
|
|
103
|
+
const options = {
|
|
104
|
+
moving: ['12.12', 'latest'],
|
|
105
|
+
source: { repository: '{image}/snapshot', tag: snapshot }
|
|
106
|
+
}
|
|
107
|
+
for (const step of ['verify', 'publish', 'move'] as const)
|
|
108
|
+
// oxlint-disable-next-line no-await-in-loop -- one step after another
|
|
109
|
+
await runStep(release, plans, [[oci, options]], step)
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
See [the library's README](../../release-oci/README.md) for each step and its options.
|
|
114
|
+
|
|
115
|
+
## Label an image of its version
|
|
116
|
+
|
|
117
|
+
A release stamps nothing into an image: what was tested ships. A pipeline that labels an image of
|
|
118
|
+
the version it will be, as `org.opencontainers.image.version`, reads the next version of its train
|
|
119
|
+
of the dotenv that `semantic-release-info` writes, and passes it to its build as an argument of its
|
|
120
|
+
own.
|
|
121
|
+
|
|
122
|
+
## Errors
|
|
123
|
+
|
|
124
|
+
| Code | What to do |
|
|
125
|
+
| --------------- | ------------------------------------------------------------------------------ |
|
|
126
|
+
| `EOCIECOSYSTEM` | Add `'@wtf/semantic-release-oci/ecosystem'` to `ecosystems` |
|
|
127
|
+
| `EOCIIMAGE` | Run the release in a pipeline of GitLab, or give the plugin `image` |
|
|
128
|
+
| `EOCISOURCE` | Run the release in the pipeline of its tag, or give the plugin `sourceTag` |
|
|
129
|
+
| `EOCIVERSION` | Release a version that is a tag of an image, as `1.4.2` |
|
|
130
|
+
| `EOCISMOKE` | Build and push the snapshot before the release, and log crane in |
|
|
131
|
+
| `EOCIRETAG` | Release a new version: the registry has this one at another digest |
|
|
132
|
+
| `EOCITAG` | Give crane a token that may write the repository, and retry the job |
|
|
133
|
+
| `EOCIMOVE` | Publish the version first: the tags that move point at it |
|
|
134
|
+
| `EOCILINK` | Give the run a token that may read the registry of the project, `GITLAB_TOKEN` |
|
package/guides/publishing.md
CHANGED
|
@@ -45,21 +45,21 @@ The plugin does not create the release on GitLab or GitHub. List `@semantic-rele
|
|
|
45
45
|
`@semantic-release/github` after it. Wrapped in the trains plugin, `@semantic-release/gitlab` links each
|
|
46
46
|
package that the release published: see [The links of the release](#the-links-of-the-release).
|
|
47
47
|
|
|
48
|
-
| Option | Default
|
|
49
|
-
| ------------ |
|
|
50
|
-
| `publisher` | `npm`
|
|
51
|
-
| `access` | each package's `publishConfig.access`
|
|
52
|
-
| `provenance` | `auto`
|
|
53
|
-
| `registry` | each package's `publishConfig.registry`
|
|
54
|
-
| `first` | none
|
|
55
|
-
| `last` | none
|
|
56
|
-
| `conditions` | `['source']`
|
|
57
|
-
| `check` | `true`
|
|
58
|
-
| `aside` | none
|
|
59
|
-
| `tarballDir` | a folder
|
|
60
|
-
| `pack` | none
|
|
61
|
-
| `distTag` | the channel's
|
|
62
|
-
| `smoke` | `false`
|
|
48
|
+
| Option | Default | What it does |
|
|
49
|
+
| ------------ | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `publisher` | `npm` | The tool that publishes: `npm`, `pnpm`, the path of a module, or a package name. See [Publishers](#publishers). |
|
|
51
|
+
| `access` | each package's `publishConfig.access` | `public` or `restricted`. |
|
|
52
|
+
| `provenance` | `auto` | Whether to publish with provenance: `auto` (when the CI provides an ID token), `true` or `false`. |
|
|
53
|
+
| `registry` | each package's `publishConfig.registry` | The registry to publish to. |
|
|
54
|
+
| `first` | none | The folder of the package to publish first. |
|
|
55
|
+
| `last` | none | The folder of the package to publish last. |
|
|
56
|
+
| `conditions` | `['source']` | The export conditions that point at source files. No tarball ships them. |
|
|
57
|
+
| `check` | `true` | Check the packages before the first publish. See [What the check catches](#what-the-check-catches). |
|
|
58
|
+
| `aside` | none | Package names to publish under their major's line when their dist-tag points above the release: `release-<major>.x` in place of `latest`, `<dist-tag>-<major>.x` in place of another. |
|
|
59
|
+
| `tarballDir` | a temporary folder of the platform | Where to keep the tarballs after the release, for the links of a package in `pack` or on a registry with no page. Add a folder in the repo to `.gitignore`. A CI job starts with it empty. |
|
|
60
|
+
| `pack` | none | Folders or globs of private packages in the train. The plugin packs them into `tarballDir` beside the others and never publishes them. The GitLab release links each one's tarball. Use it for a demo. |
|
|
61
|
+
| `distTag` | the channel's | One dist-tag for every package, in place of the channel's, for a one-off release. An empty string means no override. |
|
|
62
|
+
| `smoke` | `false` | `true`, or `{ forbid }` with globs that no tarball may hold. Installs each packed package as a consumer would, in `prepare`, before the tag. See [Smoke-test the packages](#smoke-test-the-packages-before-the-tag). |
|
|
63
63
|
|
|
64
64
|
### Provenance
|
|
65
65
|
|
|
@@ -87,39 +87,45 @@ JSON leaves out, and the channel's dist-tag applies.
|
|
|
87
87
|
|
|
88
88
|
## What a release does
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
The plugin runs on the steps of the npm ecosystem of `@wtf/release-npm`, each over the plan of the
|
|
91
|
+
train. The plan is the train's packages that publish, in order, and the version of each package of
|
|
92
|
+
the repo that a range resolves to. `planOf` from `@wtf/release-trains/plan` works it out:
|
|
91
93
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
- It finds the train's packages that publish: every package under the train's `paths` that is not
|
|
95
|
+
private. It finds them the way the package manager does, by the globs in `pnpm-workspace.yaml`
|
|
96
|
+
or in the `workspaces` field of `package.json`.
|
|
97
|
+
- It orders them so that each package comes after the packages it runs with (`dependencies`,
|
|
98
|
+
`peerDependencies` and `optionalDependencies`). `first` and `last` pin a package to either end.
|
|
99
|
+
- Each package in the same train gets the release's version. Each package in another train gets
|
|
100
|
+
that train's last release, which `planOf` reads from the tags. A train's cascade reads the same
|
|
101
|
+
tags.
|
|
102
|
+
|
|
103
|
+
Then the steps of the library, each a function of `@wtf/release-npm/release`, release the plan:
|
|
104
|
+
|
|
105
|
+
1. **Resolve the manifests** (`resolvePlan`). The library builds each manifest as it will publish:
|
|
98
106
|
- The version is the release's version.
|
|
99
|
-
- Each `workspace:` range
|
|
100
|
-
resolves `workspace:*`, `workspace:^` and `workspace
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
- The
|
|
106
|
-
releases, such as a private package of shared configs, or at a train with no release yet. No
|
|
107
|
-
consumer installs a devDependency.
|
|
108
|
-
- The plugin strips each export that points at source: the `source` condition, or a `.ts`
|
|
107
|
+
- Each `workspace:` range resolves to the version of the plan of the package it names, the way
|
|
108
|
+
pnpm resolves `workspace:*`, `workspace:^` and `workspace:~` (`resolveSpecifier` from
|
|
109
|
+
`@wtf/release-npm/manifests`).
|
|
110
|
+
- The library drops a devDependency whose `workspace:` range points at a package of no version
|
|
111
|
+
in the plan, such as a private package of shared configs, or of a train with no release yet.
|
|
112
|
+
No consumer installs a devDependency.
|
|
113
|
+
- The library strips each export that points at source: the `source` condition, or a `.ts`
|
|
109
114
|
target.
|
|
110
115
|
|
|
111
116
|
Then it checks each manifest. This step writes nothing.
|
|
112
117
|
|
|
113
|
-
2. **Pack the tarballs** (`
|
|
114
|
-
into a folder
|
|
115
|
-
packs the copy there. It packs every package before the first publish, so a fault stops
|
|
116
|
-
before anything reaches the registry.
|
|
118
|
+
2. **Pack the tarballs** (`packRelease`). The library copies each package, without its
|
|
119
|
+
`node_modules`, into a temporary folder of the platform. It writes the resolved manifest into the
|
|
120
|
+
copy and packs the copy there. It packs every package before the first publish, so a fault stops
|
|
121
|
+
the run before anything reaches the registry.
|
|
117
122
|
|
|
118
|
-
3. **Publish** (`
|
|
119
|
-
|
|
120
|
-
`2.1.0-0`. A channel that npm would
|
|
121
|
-
becomes `release-1.x`. The
|
|
122
|
-
each version that the registry already
|
|
123
|
+
3. **Publish** (`publishPacked`). The library publishes each package under the first dist-tag the
|
|
124
|
+
plugin gives it, `moving`, which the plugin derives from the release's channel. That is
|
|
125
|
+
`latest`, or `beta` for `2.1.0-beta.3`, or `prerelease` for `2.1.0-0`. A channel that npm would
|
|
126
|
+
read as a range, such as `1.x` on a maintenance branch, becomes `release-1.x`. The library adds
|
|
127
|
+
provenance where the CI provides an ID token, and skips each version that the registry already
|
|
128
|
+
has.
|
|
123
129
|
|
|
124
130
|
### When a dist-tag would move back
|
|
125
131
|
|
|
@@ -137,25 +143,29 @@ release, the run fails too. A release whose channel is a line already, such as `
|
|
|
137
143
|
|
|
138
144
|
### Which semantic-release step does what
|
|
139
145
|
|
|
140
|
-
The plugin implements the same steps as `@semantic-release/npm
|
|
146
|
+
The plugin implements the same steps as `@semantic-release/npm`. Each maps onto a step of the
|
|
147
|
+
library:
|
|
141
148
|
|
|
142
|
-
- `verifyConditions` checks the publisher and the packages as they are in the repo
|
|
143
|
-
|
|
144
|
-
|
|
149
|
+
- `verifyConditions` checks its options and the publisher, and the packages as they are in the repo
|
|
150
|
+
(`checkPlan`, the library's `verify` but of the version, which semantic-release has not yet).
|
|
151
|
+
- `verifyRelease` runs the library's `verify`, which checks the version once semantic-release knows
|
|
152
|
+
it, and the packages of the train.
|
|
153
|
+
- `prepare` runs the library's `prepare`, steps 1 and 2, which asks the registry too, and, with
|
|
154
|
+
`smoke`, its `smoke`, all before the tag. These faults fail the run here:
|
|
145
155
|
- a range that no release satisfies (`EDEPENDENCYUNSATISFIED`);
|
|
146
156
|
- a dependency on a train with no release (`EDEPENDENCYNORELEASE`);
|
|
147
157
|
- a dependency on a package of no train (`EDEPENDENCYNOTRAIN`);
|
|
148
158
|
- a package that cannot be packed;
|
|
149
159
|
- a release that would move a dist-tag back (`EPUBLISHBEHIND`).
|
|
150
|
-
- `publish` runs step 3 with what `prepare` packed, after the tag is
|
|
151
|
-
to semantic-release as the stock plugin does: the publisher's name
|
|
152
|
-
the first package, and the channel. Then it removes the copies and
|
|
153
|
-
`tarballDir`, it keeps the tarballs. If `publish` finds nothing packed for its
|
|
154
|
-
in the same process, it resolves and packs again.
|
|
155
|
-
- `addChannel` moves a published release to the dist-tag of its new channel, by
|
|
156
|
-
semantic-release asks for this when you merge a branch of one channel into
|
|
157
|
-
The plugin runs `npm dist-tag add` for each package of the train that the
|
|
158
|
-
version, with either built-in publisher.
|
|
160
|
+
- `publish` runs the library's `publish`, step 3, with what `prepare` packed, after the tag is
|
|
161
|
+
pushed. It returns the release to semantic-release as the stock plugin does: the publisher's name
|
|
162
|
+
and its packages, the page of the first package, and the channel. Then it removes the copies and
|
|
163
|
+
the tarballs. With `tarballDir`, it keeps the tarballs. If `publish` finds nothing packed for its
|
|
164
|
+
train and version in the same process, it resolves and packs again.
|
|
165
|
+
- `addChannel` moves a published release to the dist-tag of its new channel, by the library's
|
|
166
|
+
`move` (`moveRelease`). semantic-release asks for this when you merge a branch of one channel into
|
|
167
|
+
the branch of another. The plugin runs `npm dist-tag add` for each package of the train that the
|
|
168
|
+
registry has at the version, with either built-in publisher.
|
|
159
169
|
|
|
160
170
|
npm moves a dist-tag only with the token in its config. Its trusted publishing covers
|
|
161
171
|
`npm publish` and no other command, so a release from a channel branch needs `NPM_TOKEN` too. A
|
|
@@ -182,8 +192,8 @@ tries the private packages of `pack` too. It does this with `smokePacked` from
|
|
|
182
192
|
- **In the tarball:** an entry of `files` that the tarball does not hold, as when a package was
|
|
183
193
|
packed without a build; an export with a source condition; a file that matches `forbid`, such as
|
|
184
194
|
`**/*.tsbuildinfo`.
|
|
185
|
-
- **In the install:** npm installs the package in a project of its own in
|
|
186
|
-
|
|
195
|
+
- **In the install:** npm installs the package in a project of its own in a temporary folder of
|
|
196
|
+
the platform. Every other packed package installs from its tarball through npm's `overrides`, so npm does
|
|
187
197
|
not ask the registry for any of them.
|
|
188
198
|
- **In the imports:** the plugin imports each entry of `exports`, except `./package.json` and
|
|
189
199
|
patterns. It reports a `SyntaxError`, a module not found that is neither an optional peer in the
|
|
@@ -302,31 +312,38 @@ commits on top. See [Run releases in CI](ci-recipes.md#gitlab-ci).
|
|
|
302
312
|
|
|
303
313
|
## Use the steps as a library
|
|
304
314
|
|
|
305
|
-
The
|
|
306
|
-
|
|
315
|
+
The steps are those of the npm ecosystem, the default export of `@wtf/release-npm`, and need no
|
|
316
|
+
release tool and no train. Each step takes the release, the plan and the options of the library.
|
|
317
|
+
The release carries the folder of the repo and the platform that its caller passes, as a CLI passes
|
|
318
|
+
its own (see [The platform](platform.md)). The plan is the packages that publish, in order, and the
|
|
319
|
+
version of each package of the repo. The options name `moving`, the dist-tags a publish puts the
|
|
320
|
+
version under, which npm always publishes under one of. `runStep` from `@wtf/release/driver` runs a
|
|
321
|
+
step of each ecosystem of a release:
|
|
307
322
|
|
|
308
323
|
```ts
|
|
309
|
-
import type {
|
|
310
|
-
import {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
})
|
|
319
|
-
const
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
}
|
|
324
|
+
import type { Release } from '@wtf/release/contract'
|
|
325
|
+
import { runStep } from '@wtf/release/driver'
|
|
326
|
+
import npm from '@wtf/release-npm'
|
|
327
|
+
|
|
328
|
+
export async function release(at: Release) {
|
|
329
|
+
const own = (await npm.packages(at)).filter(
|
|
330
|
+
({ dir, published }) => published && dir.startsWith('packages/')
|
|
331
|
+
)
|
|
332
|
+
const versions = new Map(own.map(({ name }) => [name, at.version]))
|
|
333
|
+
const plans = new Map([['npm', { own, versions }]])
|
|
334
|
+
const ecosystems = [[npm, { moving: ['next'] }]] as const
|
|
335
|
+
await runStep(at, plans, ecosystems, 'verify')
|
|
336
|
+
await runStep(at, plans, ecosystems, 'prepare')
|
|
337
|
+
const { released } = await runStep(at, plans, ecosystems, 'publish')
|
|
338
|
+
return released
|
|
325
339
|
}
|
|
326
340
|
```
|
|
327
341
|
|
|
328
|
-
|
|
329
|
-
|
|
342
|
+
The plan here is every package of the repo under `packages/` that publishes, in the order the
|
|
343
|
+
ecosystem reads them. A driver that publishes in order of the dependencies works the order out by `publishOrder`
|
|
344
|
+
from `@wtf/release/order`, as `planOf` does. See [Publish from the tag
|
|
345
|
+
pipeline](ci-recipes.md#publish-from-the-tag-pipeline) for the run of a release in the tag's
|
|
346
|
+
pipeline.
|
|
330
347
|
|
|
331
348
|
## Publishers
|
|
332
349
|
|
|
@@ -356,7 +373,8 @@ A publisher can also have these optional members:
|
|
|
356
373
|
as `options.tarball`.
|
|
357
374
|
- `page`: it returns a package's page, which the plugin passes to semantic-release as the release's
|
|
358
375
|
URL.
|
|
359
|
-
- `tag`: it points a dist-tag at a version the registry has, for `addChannel` and
|
|
376
|
+
- `tag`: it points a dist-tag at a version the registry has, for `addChannel` and the library's
|
|
377
|
+
`move`.
|
|
360
378
|
Without it, a release cannot move to another channel.
|
|
361
379
|
|
|
362
380
|
The plugin does not check whether a `lookup` without `tagged` would move a dist-tag back.
|
|
@@ -385,13 +403,14 @@ registry:
|
|
|
385
403
|
|
|
386
404
|
```js train=trains
|
|
387
405
|
// release/yarn-publisher.mjs
|
|
406
|
+
import { run } from '@wtf/release/process'
|
|
388
407
|
import { npmPublisher } from '@wtf/release-npm/publishers'
|
|
389
408
|
|
|
390
409
|
/** @type {import('@wtf/release-npm').Publisher} */
|
|
391
410
|
export default {
|
|
392
411
|
name: 'yarn',
|
|
393
412
|
lookup: npmPublisher.lookup,
|
|
394
|
-
async publish(pkg, options, {
|
|
413
|
+
async publish(pkg, options, { platform, dryRun, memo }) {
|
|
395
414
|
// The npm lookup keeps what it asked in the step's store: a publisher forgets what it changes.
|
|
396
415
|
memo?.clear()
|
|
397
416
|
if (dryRun) return
|
|
@@ -402,7 +421,7 @@ export default {
|
|
|
402
421
|
options.tag,
|
|
403
422
|
...(options.access ? ['--access', options.access] : [])
|
|
404
423
|
]
|
|
405
|
-
const { code, stderr } = await
|
|
424
|
+
const { code, stderr } = await run(platform, 'yarn', args, { cwd: pkg.dir })
|
|
406
425
|
if (code !== 0) throw new Error(stderr)
|
|
407
426
|
}
|
|
408
427
|
}
|
|
@@ -446,18 +465,20 @@ echo "//${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authTo
|
|
|
446
465
|
|
|
447
466
|
```js train=trains
|
|
448
467
|
// release/jsr-publisher.mjs
|
|
468
|
+
import { run } from '@wtf/release/process'
|
|
469
|
+
|
|
449
470
|
/** @type {import('@wtf/release-npm').Publisher} */
|
|
450
471
|
export default {
|
|
451
472
|
name: 'jsr',
|
|
452
|
-
async lookup(pkg, version, _tag, {
|
|
473
|
+
async lookup(pkg, version, _tag, { platform }) {
|
|
453
474
|
const meta = `https://jsr.io/${pkg.name}/${version}_meta.json`
|
|
454
|
-
const
|
|
475
|
+
const response = await platform.fetch(meta, { method: 'HEAD' })
|
|
455
476
|
// JSR has no dist-tags: no `tagged`.
|
|
456
|
-
return { published:
|
|
477
|
+
return { published: response.ok }
|
|
457
478
|
},
|
|
458
|
-
async publish(pkg, _options, {
|
|
479
|
+
async publish(pkg, _options, { platform, dryRun }) {
|
|
459
480
|
const args = ['jsr', 'publish', '--allow-dirty', ...(dryRun ? ['--dry-run'] : [])]
|
|
460
|
-
const { code, stderr } = await
|
|
481
|
+
const { code, stderr } = await run(platform, 'npx', args, { cwd: pkg.dir })
|
|
461
482
|
if (code !== 0) throw new Error(stderr)
|
|
462
483
|
}
|
|
463
484
|
}
|