@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.
Files changed (882) hide show
  1. package/README.md +6 -4
  2. package/api/.generated +291 -141
  3. package/api/@wtf/release/README.md +55 -0
  4. package/api/@wtf/release/contract/README.md +60 -0
  5. package/api/@wtf/release/contract/interfaces/Plan.md +46 -0
  6. package/api/@wtf/release/contract/interfaces/Release.md +96 -0
  7. package/api/@wtf/release/contract/interfaces/ReleaseSteps.md +203 -0
  8. package/api/@wtf/release/contract/type-aliases/OptionalStep.md +13 -0
  9. package/api/@wtf/release/contract/type-aliases/ReleasingEcosystem.md +44 -0
  10. package/api/@wtf/release/driver/README.md +43 -0
  11. package/api/@wtf/release/driver/functions/runStep.md +50 -0
  12. package/api/@wtf/release/driver/interfaces/StepOutcome.md +31 -0
  13. package/api/@wtf/release/driver/type-aliases/EcosystemsOf.md +14 -0
  14. package/api/@wtf/release/driver/type-aliases/Step.md +13 -0
  15. package/api/@wtf/release/driver/variables/STEPS.md +13 -0
  16. package/api/@wtf/{release-trains → release}/ecosystem/README.md +11 -11
  17. package/api/@wtf/release/ecosystem/functions/isEcosystem.md +27 -0
  18. package/api/@wtf/{release-trains → release}/ecosystem/functions/loadEcosystems.md +5 -5
  19. package/api/@wtf/release/ecosystem/functions/readPackages.md +33 -0
  20. package/api/@wtf/release/ecosystem/interfaces/Dependency.md +43 -0
  21. package/api/@wtf/{release-trains → release}/ecosystem/interfaces/Ecosystem.md +23 -14
  22. package/api/@wtf/release/ecosystem/interfaces/EcosystemContext.md +56 -0
  23. package/api/@wtf/release/ecosystem/interfaces/EcosystemPackages.md +35 -0
  24. package/api/@wtf/release/ecosystem/interfaces/Package.md +71 -0
  25. package/api/@wtf/release/ecosystem/type-aliases/DependencyKind.md +16 -0
  26. package/api/@wtf/{release-trains → release}/ecosystem/type-aliases/ModuleLoader.md +2 -2
  27. package/api/@wtf/release/ecosystem/variables/DEPENDENCY_KINDS.md +13 -0
  28. package/api/@wtf/release/errors/README.md +41 -0
  29. package/api/@wtf/{release-system → release}/errors/classes/ReleaseError.md +11 -19
  30. package/api/@wtf/release/errors/functions/isReleaseError.md +28 -0
  31. package/api/@wtf/release/errors/functions/throwAll.md +26 -0
  32. package/api/@wtf/{release-system → release}/errors/type-aliases/ErrorClass.md +2 -2
  33. package/api/@wtf/release/errors/type-aliases/ReleaseErrorCode.md +13 -0
  34. package/api/@wtf/release/errors/variables/RELEASE_ERRORS.md +35 -0
  35. package/api/@wtf/release/files/README.md +38 -0
  36. package/api/@wtf/release/files/functions/copy.md +45 -0
  37. package/api/@wtf/release/files/functions/exists.md +33 -0
  38. package/api/@wtf/release/files/functions/makeDir.md +33 -0
  39. package/api/@wtf/release/files/functions/readBytes.md +33 -0
  40. package/api/@wtf/release/files/functions/readDir.md +33 -0
  41. package/api/@wtf/release/files/functions/readFile.md +33 -0
  42. package/api/@wtf/release/files/functions/remove.md +34 -0
  43. package/api/@wtf/release/files/functions/writeFile.md +38 -0
  44. package/api/@wtf/release/files/interfaces/DirEntry.md +27 -0
  45. package/api/@wtf/release/forge/README.md +49 -0
  46. package/api/@wtf/release/forge/functions/linksOf.md +49 -0
  47. package/api/@wtf/release/forge/interfaces/Forge.md +113 -0
  48. package/api/@wtf/release/forge/interfaces/ForgeRun.md +41 -0
  49. package/api/@wtf/release/forge/interfaces/LinksOptions.md +43 -0
  50. package/api/@wtf/release/forge/interfaces/PackageRegistry.md +41 -0
  51. package/api/@wtf/release/forge/interfaces/ReleaseLink.md +41 -0
  52. package/api/@wtf/release/forge/interfaces/Released.md +91 -0
  53. package/api/@wtf/{release-trains → release}/generated/README.md +8 -8
  54. package/api/@wtf/{release-trains → release}/generated/functions/filesIn.md +4 -4
  55. package/api/@wtf/{release-trains → release}/generated/functions/formatGenerated.md +2 -2
  56. package/api/@wtf/release/generated/functions/listGenerated.md +35 -0
  57. package/api/@wtf/{release-trains → release}/generated/functions/parseGenerated.md +2 -2
  58. package/api/@wtf/release/generated/functions/readGenerated.md +33 -0
  59. package/api/@wtf/{release-trains → release}/generated/functions/stageGenerated.md +2 -2
  60. package/api/@wtf/release/generated/functions/stageGeneratedFolders.md +29 -0
  61. package/api/@wtf/release/generated/functions/unlistedIn.md +36 -0
  62. package/api/@wtf/release/generated/interfaces/GeneratedOptions.md +21 -0
  63. package/api/@wtf/release/generated/interfaces/StageOptions.md +76 -0
  64. package/api/@wtf/release/generated/variables/GENERATED.md +13 -0
  65. package/api/@wtf/{release-system → release}/git/README.md +11 -10
  66. package/api/@wtf/{release-system → release}/git/functions/commitsSince.md +3 -3
  67. package/api/@wtf/{release-system → release}/git/functions/filesOfCommits.md +3 -3
  68. package/api/@wtf/{release-system → release}/git/functions/git.md +3 -3
  69. package/api/@wtf/release/git/functions/revisionOf.md +33 -0
  70. package/api/@wtf/release/git/functions/tagsOfRepo.md +33 -0
  71. package/api/@wtf/{release-system → release}/git/functions/trackedFiles.md +3 -3
  72. package/api/@wtf/release/git/interfaces/GitContext.md +26 -0
  73. package/api/@wtf/release/git/interfaces/LogCommit.md +43 -0
  74. package/api/@wtf/release/interfaces/RepoContext.md +57 -0
  75. package/api/@wtf/release/order/README.md +37 -0
  76. package/api/@wtf/{release-trains/packages → release/order}/functions/normalizeDir.md +2 -2
  77. package/api/@wtf/{release-trains/packages → release/order}/functions/publishOrder.md +7 -6
  78. package/api/@wtf/release/order/interfaces/OrderFault.md +39 -0
  79. package/api/@wtf/release/order/interfaces/OrderPins.md +27 -0
  80. package/api/@wtf/release/order/interfaces/PublishOrder.md +35 -0
  81. package/api/@wtf/{release-system → release}/paths/README.md +4 -4
  82. package/api/@wtf/{release-system → release}/paths/functions/normalizePath.md +2 -2
  83. package/api/@wtf/{release-system → release}/paths/functions/pathMatcher.md +2 -2
  84. package/api/@wtf/{release-system → release}/paths/type-aliases/PathMatcher.md +2 -2
  85. package/api/@wtf/{release-system → release}/posix/README.md +5 -5
  86. package/api/@wtf/{release-system → release}/posix/functions/basenameOf.md +2 -2
  87. package/api/@wtf/{release-system → release}/posix/functions/dirnameOf.md +2 -2
  88. package/api/@wtf/{release-system → release}/posix/functions/joinPath.md +2 -2
  89. package/api/@wtf/{release-system → release}/posix/functions/relativePath.md +2 -2
  90. package/api/@wtf/{release-system → release}/posix/functions/resolvePath.md +3 -3
  91. package/api/@wtf/release/process/README.md +30 -0
  92. package/api/@wtf/release/process/functions/envOf.md +34 -0
  93. package/api/@wtf/release/process/functions/run.md +48 -0
  94. package/api/@wtf/release/process/interfaces/RunOptions.md +52 -0
  95. package/api/@wtf/release/process/interfaces/RunResult.md +35 -0
  96. package/api/@wtf/release/type-aliases/ReleasePlatform.md +22 -0
  97. package/api/@wtf/release/type-aliases/RepoPlatform.md +21 -0
  98. package/api/@wtf/{release-system → release}/validator/README.md +6 -5
  99. package/api/@wtf/{release-system → release}/validator/functions/allOf.md +2 -2
  100. package/api/@wtf/{release-system → release}/validator/functions/anyObject.md +3 -3
  101. package/api/@wtf/{release-system → release}/validator/functions/anyOf.md +2 -2
  102. package/api/@wtf/{release-system → release}/validator/functions/arrayOf.md +2 -2
  103. package/api/@wtf/{release-system → release}/validator/functions/booleanOf.md +2 -2
  104. package/api/@wtf/{release-system → release}/validator/functions/errorOf.md +2 -2
  105. package/api/@wtf/{release-system → release}/validator/functions/errorsOf.md +2 -2
  106. package/api/@wtf/{release-system → release}/validator/functions/exclusive.md +2 -2
  107. package/api/@wtf/release/validator/functions/issueOf.md +45 -0
  108. package/api/@wtf/{release-system → release}/validator/functions/issuesOf.md +2 -2
  109. package/api/@wtf/{release-system → release}/validator/functions/objectOf.md +2 -2
  110. package/api/@wtf/{release-system → release}/validator/functions/oneOf.md +2 -2
  111. package/api/@wtf/{release-system → release}/validator/functions/orFunction.md +2 -2
  112. package/api/@wtf/{release-system → release}/validator/functions/pathText.md +2 -2
  113. package/api/@wtf/{release-system → release}/validator/functions/recordOf.md +2 -2
  114. package/api/@wtf/{release-system → release}/validator/functions/refined.md +2 -2
  115. package/api/@wtf/{release-system → release}/validator/functions/stringOf.md +2 -2
  116. package/api/@wtf/{release-system → release}/validator/functions/tupleOf.md +2 -2
  117. package/api/@wtf/release/validator/functions/validatorOf.md +42 -0
  118. package/api/@wtf/{release-system → release}/validator/interfaces/ArrayOptions.md +6 -6
  119. package/api/@wtf/{release-system → release}/validator/interfaces/IssueOptions.md +5 -5
  120. package/api/@wtf/{release-system → release}/validator/interfaces/ObjectOptions.md +6 -6
  121. package/api/@wtf/release/validator/interfaces/OptionIssue.md +63 -0
  122. package/api/@wtf/release/validator/interfaces/Property.md +49 -0
  123. package/api/@wtf/{release-system → release}/validator/interfaces/RecordOptions.md +7 -7
  124. package/api/@wtf/{release-system → release}/validator/interfaces/StringOptions.md +7 -7
  125. package/api/@wtf/{release-system → release}/validator/interfaces/Validator.md +5 -5
  126. package/api/@wtf/release/validator/type-aliases/JsonSchema.md +17 -0
  127. package/api/@wtf/release/validator/type-aliases/Path.md +13 -0
  128. package/api/@wtf/release-cargo/README.md +11 -8
  129. package/api/@wtf/release-cargo/auth/README.md +1 -1
  130. package/api/@wtf/release-cargo/auth/functions/mask.md +1 -1
  131. package/api/@wtf/release-cargo/auth/functions/tokenVariableOf.md +1 -1
  132. package/api/@wtf/release-cargo/auth/functions/trustedPublishing.md +1 -1
  133. package/api/@wtf/release-cargo/auth/interfaces/HttpResponse.md +5 -5
  134. package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishing.md +5 -5
  135. package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishingOptions.md +6 -6
  136. package/api/@wtf/release-cargo/auth/type-aliases/HttpFetch.md +1 -1
  137. package/api/@wtf/release-cargo/auth/variables/CRATES_IO_API.md +1 -1
  138. package/api/@wtf/release-cargo/auth/variables/ID_TOKEN_VARIABLE.md +1 -1
  139. package/api/@wtf/release-cargo/auth/variables/USER_AGENT.md +3 -3
  140. package/api/@wtf/release-cargo/crates/README.md +11 -10
  141. package/api/@wtf/release-cargo/crates/functions/publishOrder.md +1 -1
  142. package/api/@wtf/release-cargo/crates/functions/publishable.md +1 -1
  143. package/api/@wtf/release-cargo/crates/functions/readWorkspace.md +9 -8
  144. package/api/@wtf/release-cargo/crates/functions/selectCrates.md +16 -16
  145. package/api/@wtf/release-cargo/crates/functions/selects.md +36 -0
  146. package/api/@wtf/release-cargo/crates/interfaces/Selection.md +15 -15
  147. package/api/@wtf/release-cargo/ecosystem/README.md +9 -6
  148. package/api/@wtf/release-cargo/ecosystem/functions/packagesAt.md +6 -6
  149. package/api/@wtf/release-cargo/ecosystem/functions/packagesOfTree.md +3 -3
  150. package/api/@wtf/release-cargo/ecosystem/functions/packagesOfWorkspace.md +2 -2
  151. package/api/@wtf/release-cargo/ecosystem/functions/resolveRequirement.md +1 -1
  152. package/api/@wtf/release-cargo/ecosystem/functions/satisfiesRequirement.md +1 -1
  153. package/api/@wtf/release-cargo/ecosystem/functions/semverRange.md +1 -1
  154. package/api/@wtf/release-cargo/ecosystem/interfaces/CargoPackage.md +17 -17
  155. package/api/@wtf/release-cargo/ecosystem/variables/cargoEcosystem.md +6 -4
  156. package/api/@wtf/release-cargo/errors/README.md +4 -5
  157. package/api/@wtf/release-cargo/errors/classes/CargoError.md +18 -33
  158. package/api/@wtf/release-cargo/errors/type-aliases/CargoErrorCode.md +1 -1
  159. package/api/@wtf/release-cargo/errors/variables/CARGO_ERRORS.md +8 -4
  160. package/api/@wtf/release-cargo/interfaces/Crate.md +6 -6
  161. package/api/@wtf/release-cargo/interfaces/CrateDependency.md +6 -6
  162. package/api/@wtf/release-cargo/interfaces/Workspace.md +3 -3
  163. package/api/@wtf/release-cargo/publish/README.md +4 -5
  164. package/api/@wtf/release-cargo/publish/functions/publishCrates.md +5 -4
  165. package/api/@wtf/release-cargo/publish/interfaces/PublishCratesOptions.md +33 -20
  166. package/api/@wtf/release-cargo/publish/interfaces/PublishedCrate.md +5 -5
  167. package/api/@wtf/release-cargo/publish/type-aliases/CrateStatus.md +1 -1
  168. package/api/@wtf/release-cargo/publish/variables/RECHECK_WAITS.md +1 -1
  169. package/api/@wtf/release-cargo/registry/README.md +5 -3
  170. package/api/@wtf/release-cargo/registry/functions/crateUrl.md +1 -1
  171. package/api/@wtf/release-cargo/registry/functions/indexHasVersion.md +1 -1
  172. package/api/@wtf/release-cargo/registry/functions/indexLookup.md +50 -0
  173. package/api/@wtf/release-cargo/registry/functions/indexPath.md +1 -1
  174. package/api/@wtf/release-cargo/registry/variables/CRATES_IO_INDEX.md +1 -1
  175. package/api/@wtf/release-cargo/release/README.md +54 -0
  176. package/api/@wtf/release-cargo/release/functions/prepareCrates.md +42 -0
  177. package/api/@wtf/release-cargo/release/functions/publishPlan.md +53 -0
  178. package/api/@wtf/release-cargo/release/functions/publishedOf.md +36 -0
  179. package/api/@wtf/release-cargo/release/functions/verifyCrates.md +44 -0
  180. package/api/@wtf/release-cargo/release/interfaces/CargoOptions.md +89 -0
  181. package/api/@wtf/release-cargo/release/type-aliases/CargoPlan.md +13 -0
  182. package/api/@wtf/release-cargo/stamp/README.md +6 -5
  183. package/api/@wtf/release-cargo/stamp/functions/checkVersions.md +1 -1
  184. package/api/@wtf/release-cargo/stamp/functions/inheritsVersion.md +1 -1
  185. package/api/@wtf/release-cargo/stamp/functions/stampManifest.md +1 -1
  186. package/api/@wtf/release-cargo/stamp/functions/stampWorkspace.md +19 -10
  187. package/api/@wtf/release-cargo/stamp/interfaces/StampOptions.md +4 -4
  188. package/api/@wtf/release-cargo/stamp/interfaces/StampWorkspaceOptions.md +21 -0
  189. package/api/@wtf/release-cargo/stamp/interfaces/Stamped.md +3 -3
  190. package/api/@wtf/release-cargo/stamp/interfaces/StampedWorkspace.md +4 -4
  191. package/api/@wtf/release-cargo/type-aliases/DependencyKind.md +1 -1
  192. package/api/@wtf/release-go/README.md +13 -9
  193. package/api/@wtf/release-go/ecosystem/README.md +13 -6
  194. package/api/@wtf/release-go/ecosystem/functions/packagesOfModules.md +2 -2
  195. package/api/@wtf/release-go/ecosystem/functions/packagesOfRepo.md +4 -4
  196. package/api/@wtf/release-go/ecosystem/functions/resolveVersion.md +2 -2
  197. package/api/@wtf/release-go/ecosystem/functions/satisfiesVersion.md +1 -1
  198. package/api/@wtf/release-go/ecosystem/interfaces/GoPackage.md +17 -17
  199. package/api/@wtf/release-go/ecosystem/variables/goEcosystem.md +6 -3
  200. package/api/@wtf/release-go/errors/README.md +4 -5
  201. package/api/@wtf/release-go/errors/classes/GoError.md +17 -32
  202. package/api/@wtf/release-go/errors/type-aliases/GoErrorCode.md +1 -1
  203. package/api/@wtf/release-go/errors/variables/GO_ERRORS.md +8 -4
  204. package/api/@wtf/release-go/gomod/functions/entriesOf.md +1 -1
  205. package/api/@wtf/release-go/gomod/functions/linesOf.md +1 -1
  206. package/api/@wtf/release-go/gomod/functions/readGoMod.md +1 -1
  207. package/api/@wtf/release-go/gomod/functions/tokensOf.md +1 -1
  208. package/api/@wtf/release-go/gomod/interfaces/Entry.md +4 -4
  209. package/api/@wtf/release-go/gomod/interfaces/GoMod.md +4 -4
  210. package/api/@wtf/release-go/gomod/interfaces/GoReplace.md +6 -6
  211. package/api/@wtf/release-go/gomod/interfaces/GoRequire.md +4 -4
  212. package/api/@wtf/release-go/gomod/interfaces/Token.md +5 -5
  213. package/api/@wtf/release-go/interfaces/GoIdentity.md +31 -0
  214. package/api/@wtf/release-go/interfaces/GoModule.md +6 -6
  215. package/api/@wtf/release-go/interfaces/GoOptions.md +86 -0
  216. package/api/@wtf/release-go/modules/README.md +9 -9
  217. package/api/@wtf/release-go/modules/functions/isFetchable.md +1 -1
  218. package/api/@wtf/release-go/modules/functions/isGoMod.md +1 -1
  219. package/api/@wtf/release-go/modules/functions/majorErrors.md +1 -1
  220. package/api/@wtf/release-go/modules/functions/majorOfPath.md +1 -1
  221. package/api/@wtf/release-go/modules/functions/modulesAt.md +3 -3
  222. package/api/@wtf/release-go/modules/functions/modulesOf.md +1 -1
  223. package/api/@wtf/release-go/modules/functions/readModules.md +4 -5
  224. package/api/@wtf/release-go/modules/functions/selectModules.md +13 -11
  225. package/api/@wtf/release-go/modules/interfaces/Selection.md +10 -11
  226. package/api/@wtf/release-go/release/README.md +45 -0
  227. package/api/@wtf/release-go/release/functions/isGoVersion.md +28 -0
  228. package/api/@wtf/release-go/release/functions/prepareModules.md +47 -0
  229. package/api/@wtf/release-go/release/functions/publishModules.md +54 -0
  230. package/api/@wtf/release-go/release/functions/releaseModules.md +48 -0
  231. package/api/@wtf/release-go/release/functions/releasedOf.md +41 -0
  232. package/api/@wtf/release-go/release/functions/verifyModules.md +44 -0
  233. package/api/@wtf/release-go/release/interfaces/ReleaseModules.md +31 -0
  234. package/api/@wtf/release-go/stamp/README.md +6 -5
  235. package/api/@wtf/release-go/stamp/functions/checkVersions.md +1 -1
  236. package/api/@wtf/release-go/stamp/functions/stampGoMod.md +1 -1
  237. package/api/@wtf/release-go/stamp/functions/stampModules.md +16 -10
  238. package/api/@wtf/release-go/stamp/interfaces/StampOptions.md +21 -0
  239. package/api/@wtf/release-go/stamp/interfaces/Stamped.md +3 -3
  240. package/api/@wtf/release-go/stamp/interfaces/StampedModules.md +13 -3
  241. package/api/@wtf/release-go/tags/README.md +3 -6
  242. package/api/@wtf/release-go/tags/functions/askProxy.md +6 -6
  243. package/api/@wtf/release-go/tags/functions/maskCredentials.md +1 -1
  244. package/api/@wtf/release-go/tags/functions/releaseCommit.md +16 -9
  245. package/api/@wtf/release-go/tags/functions/remoteTags.md +3 -3
  246. package/api/@wtf/release-go/tags/functions/tagModules.md +3 -3
  247. package/api/@wtf/release-go/tags/functions/tagOfModule.md +1 -1
  248. package/api/@wtf/release-go/tags/functions/tagPrefix.md +1 -1
  249. package/api/@wtf/release-go/tags/interfaces/CommitIdentity.md +35 -0
  250. package/api/@wtf/release-go/tags/interfaces/TagModulesOptions.md +42 -10
  251. package/api/@wtf/release-go/tags/interfaces/TaggedModule.md +5 -5
  252. package/api/@wtf/release-go/tags/interfaces/TagsContext.md +22 -0
  253. package/api/@wtf/release-go/tags/type-aliases/ModuleStatus.md +1 -1
  254. package/api/@wtf/release-maven/README.md +11 -8
  255. package/api/@wtf/release-maven/artifacts/README.md +11 -6
  256. package/api/@wtf/release-maven/artifacts/functions/groupIdOf.md +1 -1
  257. package/api/@wtf/release-maven/artifacts/functions/installsOf.md +1 -1
  258. package/api/@wtf/release-maven/artifacts/functions/isPomFile.md +1 -1
  259. package/api/@wtf/release-maven/artifacts/functions/isRange.md +1 -1
  260. package/api/@wtf/release-maven/artifacts/functions/modulesOf.md +1 -1
  261. package/api/@wtf/release-maven/artifacts/functions/nameOf.md +1 -1
  262. package/api/@wtf/release-maven/artifacts/functions/publishOrder.md +1 -1
  263. package/api/@wtf/release-maven/artifacts/functions/readModules.md +3 -3
  264. package/api/@wtf/release-maven/artifacts/functions/readPoms.md +4 -4
  265. package/api/@wtf/release-maven/artifacts/functions/selectArtifacts.md +1 -1
  266. package/api/@wtf/release-maven/artifacts/interfaces/Selection.md +8 -8
  267. package/api/@wtf/release-maven/ecosystem/README.md +28 -13
  268. package/api/@wtf/release-maven/ecosystem/functions/checkReleaseVersion.md +32 -0
  269. package/api/@wtf/release-maven/ecosystem/functions/compareVersions.md +1 -1
  270. package/api/@wtf/release-maven/ecosystem/functions/parseRange.md +1 -1
  271. package/api/@wtf/release-maven/ecosystem/functions/resolveVersion.md +1 -1
  272. package/api/@wtf/release-maven/ecosystem/functions/satisfiesVersion.md +1 -1
  273. package/api/@wtf/release-maven/ecosystem/interfaces/Bound.md +3 -3
  274. package/api/@wtf/release-maven/ecosystem/interfaces/MavenReleaseOptions.md +77 -0
  275. package/api/@wtf/release-maven/ecosystem/interfaces/Restriction.md +3 -3
  276. package/api/@wtf/release-maven/ecosystem/variables/mavenEcosystem.md +5 -3
  277. package/api/@wtf/release-maven/errors/README.md +3 -4
  278. package/api/@wtf/release-maven/errors/classes/MavenError.md +17 -32
  279. package/api/@wtf/release-maven/errors/type-aliases/MavenErrorCode.md +1 -1
  280. package/api/@wtf/release-maven/errors/variables/MAVEN_ERRORS.md +4 -4
  281. package/api/@wtf/release-maven/interfaces/MavenModule.md +24 -24
  282. package/api/@wtf/release-maven/pom/functions/childOf.md +1 -1
  283. package/api/@wtf/release-maven/pom/functions/childrenOf.md +1 -1
  284. package/api/@wtf/release-maven/pom/functions/dependencyOf.md +1 -1
  285. package/api/@wtf/release-maven/pom/functions/escapeXml.md +1 -1
  286. package/api/@wtf/release-maven/pom/functions/parseXml.md +1 -1
  287. package/api/@wtf/release-maven/pom/functions/readPom.md +1 -1
  288. package/api/@wtf/release-maven/pom/functions/textAt.md +1 -1
  289. package/api/@wtf/release-maven/pom/interfaces/Pom.md +15 -15
  290. package/api/@wtf/release-maven/pom/interfaces/PomDependency.md +5 -5
  291. package/api/@wtf/release-maven/pom/interfaces/PomParent.md +4 -4
  292. package/api/@wtf/release-maven/pom/interfaces/PomPlugin.md +5 -5
  293. package/api/@wtf/release-maven/pom/interfaces/PomRepository.md +3 -3
  294. package/api/@wtf/release-maven/pom/interfaces/Span.md +3 -3
  295. package/api/@wtf/release-maven/pom/interfaces/XmlElement.md +7 -7
  296. package/api/@wtf/release-maven/pom/variables/PLUGIN_GROUP.md +1 -1
  297. package/api/@wtf/release-maven/publish/README.md +9 -6
  298. package/api/@wtf/release-maven/publish/functions/deployModules.md +2 -2
  299. package/api/@wtf/release-maven/publish/functions/releasedModules.md +44 -0
  300. package/api/@wtf/release-maven/publish/interfaces/DeployModulesOptions.md +18 -27
  301. package/api/@wtf/release-maven/publish/interfaces/DeployedModule.md +4 -4
  302. package/api/@wtf/release-maven/publish/interfaces/ReleasedWhere.md +67 -0
  303. package/api/@wtf/release-maven/publish/type-aliases/ModuleStatus.md +1 -1
  304. package/api/@wtf/release-maven/repository/README.md +12 -6
  305. package/api/@wtf/release-maven/repository/functions/deployTargets.md +1 -1
  306. package/api/@wtf/release-maven/repository/functions/expandValues.md +1 -1
  307. package/api/@wtf/release-maven/repository/functions/hasPom.md +1 -1
  308. package/api/@wtf/release-maven/repository/functions/lookupHeaders.md +37 -0
  309. package/api/@wtf/release-maven/repository/functions/lookupPom.md +44 -0
  310. package/api/@wtf/release-maven/repository/functions/pomPath.md +1 -1
  311. package/api/@wtf/release-maven/repository/functions/pomUrl.md +1 -1
  312. package/api/@wtf/release-maven/repository/functions/releaseTargets.md +46 -0
  313. package/api/@wtf/release-maven/repository/interfaces/LookupAuth.md +32 -0
  314. package/api/@wtf/release-maven/repository/interfaces/ReleaseTargets.md +32 -0
  315. package/api/@wtf/release-maven/repository/interfaces/Repository.md +3 -3
  316. package/api/@wtf/release-maven/repository/interfaces/ValuesOf.md +3 -3
  317. package/api/@wtf/release-maven/repository/variables/MAVEN_CENTRAL.md +1 -1
  318. package/api/@wtf/release-maven/stamp/README.md +8 -8
  319. package/api/@wtf/release-maven/stamp/functions/checkVersions.md +1 -1
  320. package/api/@wtf/release-maven/stamp/functions/stampModules.md +15 -15
  321. package/api/@wtf/release-maven/stamp/functions/stampPom.md +1 -1
  322. package/api/@wtf/release-maven/stamp/interfaces/PomStampOptions.md +5 -5
  323. package/api/@wtf/release-maven/stamp/interfaces/Stamped.md +3 -3
  324. package/api/@wtf/release-maven/stamp/interfaces/StampedModules.md +4 -4
  325. package/api/@wtf/release-npm/README.md +20 -15
  326. package/api/@wtf/release-npm/check/README.md +1 -1
  327. package/api/@wtf/release-npm/check/functions/checkPackages.md +3 -3
  328. package/api/@wtf/release-npm/check/functions/formatIssue.md +1 -1
  329. package/api/@wtf/release-npm/check/interfaces/CheckOptions.md +7 -7
  330. package/api/@wtf/release-npm/check/interfaces/Issue.md +6 -6
  331. package/api/@wtf/release-npm/check/type-aliases/CheckedPackage.md +1 -1
  332. package/api/@wtf/release-npm/check/type-aliases/IssueCode.md +2 -2
  333. package/api/@wtf/release-npm/ecosystem/README.md +21 -11
  334. package/api/@wtf/release-npm/ecosystem/variables/npmEcosystem.md +17 -7
  335. package/api/@wtf/release-npm/errors/README.md +8 -4
  336. package/api/@wtf/release-npm/errors/classes/NpmError.md +253 -0
  337. package/api/@wtf/release-npm/errors/type-aliases/NpmErrorCode.md +1 -1
  338. package/api/@wtf/release-npm/errors/variables/NPM_ERRORS.md +7 -3
  339. package/api/@wtf/release-npm/interfaces/Lookup.md +3 -3
  340. package/api/@wtf/release-npm/interfaces/NpmAside.md +46 -0
  341. package/api/@wtf/release-npm/interfaces/NpmOptions.md +134 -0
  342. package/api/@wtf/release-npm/interfaces/PublishOptions.md +6 -6
  343. package/api/@wtf/release-npm/interfaces/PublishPackage.md +5 -5
  344. package/api/@wtf/release-npm/interfaces/Publisher.md +11 -11
  345. package/api/@wtf/release-npm/interfaces/PublisherContext.md +32 -23
  346. package/api/@wtf/release-npm/manifests/README.md +5 -5
  347. package/api/@wtf/release-npm/manifests/functions/concreteRange.md +1 -1
  348. package/api/@wtf/release-npm/manifests/functions/manifestsAt.md +3 -4
  349. package/api/@wtf/release-npm/manifests/functions/packageOf.md +1 -1
  350. package/api/@wtf/release-npm/manifests/functions/packagesOfManifests.md +1 -1
  351. package/api/@wtf/release-npm/manifests/functions/readManifests.md +7 -7
  352. package/api/@wtf/release-npm/manifests/functions/resolveSpecifier.md +1 -1
  353. package/api/@wtf/release-npm/manifests/functions/runtimeDependenciesOf.md +1 -1
  354. package/api/@wtf/release-npm/manifests/functions/satisfiesRange.md +1 -1
  355. package/api/@wtf/release-npm/manifests/interfaces/Manifest.md +5 -5
  356. package/api/@wtf/release-npm/manifests/interfaces/NpmPackage.md +16 -16
  357. package/api/@wtf/release-npm/manifests/type-aliases/DependencyField.md +1 -1
  358. package/api/@wtf/release-npm/manifests/variables/DEPENDENCY_FIELDS.md +1 -1
  359. package/api/@wtf/release-npm/manifests/variables/FIELD_KINDS.md +2 -2
  360. package/api/@wtf/release-npm/manifests/variables/RUNTIME_FIELDS.md +1 -1
  361. package/api/@wtf/release-npm/prepare/functions/isTypeScriptSource.md +1 -1
  362. package/api/@wtf/release-npm/prepare/functions/prepareManifest.md +1 -1
  363. package/api/@wtf/release-npm/prepare/functions/stripSourceConditions.md +1 -1
  364. package/api/@wtf/release-npm/prepare/interfaces/PrepareOptions.md +6 -6
  365. package/api/@wtf/release-npm/prepare/interfaces/PreparedManifest.md +6 -6
  366. package/api/@wtf/release-npm/prepare/variables/SOURCE_CONDITIONS.md +1 -1
  367. package/api/@wtf/release-npm/publishers/README.md +1 -1
  368. package/api/@wtf/release-npm/publishers/functions/builtInPublisher.md +1 -1
  369. package/api/@wtf/release-npm/publishers/functions/isPublisher.md +1 -1
  370. package/api/@wtf/release-npm/publishers/functions/registryOf.md +1 -1
  371. package/api/@wtf/release-npm/publishers/variables/NPM_REGISTRY.md +1 -1
  372. package/api/@wtf/release-npm/publishers/variables/PUBLISHERS.md +1 -1
  373. package/api/@wtf/release-npm/publishers/variables/npmPublisher.md +1 -1
  374. package/api/@wtf/release-npm/publishers/variables/pnpmPublisher.md +1 -1
  375. package/api/@wtf/release-npm/release/README.md +59 -37
  376. package/api/@wtf/release-npm/release/functions/checkPlan.md +44 -0
  377. package/api/@wtf/release-npm/release/functions/discardPacked.md +32 -0
  378. package/api/@wtf/release-npm/release/functions/moveRelease.md +47 -0
  379. package/api/@wtf/release-npm/release/functions/packRelease.md +39 -0
  380. package/api/@wtf/release-npm/release/functions/prepareRelease.md +46 -0
  381. package/api/@wtf/release-npm/release/functions/publishPacked.md +17 -11
  382. package/api/@wtf/release-npm/release/functions/publishRelease.md +44 -0
  383. package/api/@wtf/release-npm/release/functions/publishedOf.md +12 -11
  384. package/api/@wtf/release-npm/release/functions/resolvePlan.md +49 -0
  385. package/api/@wtf/release-npm/release/functions/smokeRelease.md +40 -0
  386. package/api/@wtf/release-npm/release/functions/verifyRelease.md +41 -0
  387. package/api/@wtf/release-npm/release/interfaces/MovedPackage.md +79 -0
  388. package/api/@wtf/release-npm/release/interfaces/MovedRelease.md +39 -0
  389. package/api/@wtf/release-npm/release/interfaces/NpmPlan.md +68 -0
  390. package/api/@wtf/release-npm/release/interfaces/PackOptions.md +35 -31
  391. package/api/@wtf/release-npm/release/interfaces/PackedRelease.md +107 -0
  392. package/api/@wtf/release-npm/release/interfaces/PublishRun.md +35 -50
  393. package/api/@wtf/release-npm/release/interfaces/PublishedOf.md +4 -14
  394. package/api/@wtf/release-npm/release/interfaces/PublishedPackage.md +13 -14
  395. package/api/@wtf/release-npm/release/interfaces/PublishedRelease.md +49 -0
  396. package/api/@wtf/release-npm/release/interfaces/ResolvedPackage.md +4 -4
  397. package/api/@wtf/release-npm/release/interfaces/ResolvedRelease.md +37 -0
  398. package/api/@wtf/release-npm/release/type-aliases/LookedUpRelease.md +13 -0
  399. package/api/@wtf/release-npm/release/variables/ID_TOKENS.md +1 -1
  400. package/api/@wtf/release-npm/release/variables/RUNNER_ENVIRONMENTS.md +1 -1
  401. package/api/@wtf/release-npm/release/variables/npmOptionsSchema.md +13 -0
  402. package/api/@wtf/release-npm/workspace/README.md +7 -3
  403. package/api/@wtf/release-npm/workspace/functions/pnpmWorkspaceGlobs.md +1 -1
  404. package/api/@wtf/release-npm/workspace/functions/publishableOf.md +1 -1
  405. package/api/@wtf/release-npm/workspace/functions/readWorkspace.md +3 -9
  406. package/api/@wtf/release-npm/workspace/functions/workspaceFolders.md +3 -9
  407. package/api/@wtf/release-npm/workspace/functions/workspaceGlobs.md +3 -9
  408. package/api/@wtf/release-npm/workspace/interfaces/WorkspaceGlobs.md +3 -3
  409. package/api/@wtf/release-oci/README.md +38 -0
  410. package/api/@wtf/release-oci/ecosystem/README.md +56 -0
  411. package/api/@wtf/release-oci/ecosystem/functions/packagesOfImages.md +29 -0
  412. package/api/@wtf/release-oci/ecosystem/functions/packagesOfRepo.md +32 -0
  413. package/api/@wtf/release-oci/ecosystem/functions/repositoriesOf.md +27 -0
  414. package/api/@wtf/release-oci/ecosystem/functions/resolveTag.md +35 -0
  415. package/api/@wtf/release-oci/ecosystem/functions/satisfiesTag.md +34 -0
  416. package/api/@wtf/release-oci/ecosystem/interfaces/OciOptions.md +64 -0
  417. package/api/@wtf/release-oci/ecosystem/interfaces/OciPackage.md +97 -0
  418. package/api/@wtf/release-oci/ecosystem/interfaces/OciSourceOptions.md +32 -0
  419. package/api/@wtf/release-oci/ecosystem/variables/ociEcosystem.md +29 -0
  420. package/api/@wtf/release-oci/errors/README.md +24 -0
  421. package/api/@wtf/release-oci/errors/classes/OciError.md +253 -0
  422. package/api/@wtf/release-oci/errors/type-aliases/OciErrorCode.md +13 -0
  423. package/api/@wtf/release-oci/errors/variables/OCI_ERRORS.md +51 -0
  424. package/api/@wtf/release-oci/images/README.md +35 -0
  425. package/api/@wtf/release-oci/images/functions/imageDirOf.md +28 -0
  426. package/api/@wtf/release-oci/images/functions/imagesAt.md +44 -0
  427. package/api/@wtf/release-oci/images/functions/imagesOf.md +34 -0
  428. package/api/@wtf/release-oci/images/functions/isImageManifest.md +27 -0
  429. package/api/@wtf/release-oci/images/functions/readImages.md +34 -0
  430. package/api/@wtf/release-oci/images/functions/registryImageOf.md +28 -0
  431. package/api/@wtf/release-oci/images/functions/repositoryOf.md +35 -0
  432. package/api/@wtf/release-oci/interfaces/OciImage.md +44 -0
  433. package/api/@wtf/release-oci/publish/README.md +65 -0
  434. package/api/@wtf/release-oci/publish/functions/digestOf.md +38 -0
  435. package/api/@wtf/release-oci/publish/functions/moveImages.md +32 -0
  436. package/api/@wtf/release-oci/publish/functions/platformsOf.md +44 -0
  437. package/api/@wtf/release-oci/publish/functions/publishImages.md +32 -0
  438. package/api/@wtf/release-oci/publish/functions/smokeImages.md +41 -0
  439. package/api/@wtf/release-oci/publish/interfaces/CraneContext.md +40 -0
  440. package/api/@wtf/release-oci/publish/interfaces/ImageToPublish.md +35 -0
  441. package/api/@wtf/release-oci/publish/interfaces/ImagesMove.md +84 -0
  442. package/api/@wtf/release-oci/publish/interfaces/ImagesRelease.md +84 -0
  443. package/api/@wtf/release-oci/publish/interfaces/MovedImage.md +41 -0
  444. package/api/@wtf/release-oci/publish/interfaces/OciSource.md +31 -0
  445. package/api/@wtf/release-oci/publish/interfaces/PublishedImage.md +91 -0
  446. package/api/@wtf/release-oci/publish/interfaces/SmokedImage.md +67 -0
  447. package/api/@wtf/release-oci/registry/README.md +50 -0
  448. package/api/@wtf/release-oci/registry/functions/checkRegistryAccess.md +28 -0
  449. package/api/@wtf/release-oci/registry/functions/registryPageOf.md +30 -0
  450. package/api/@wtf/release-oci/registry/interfaces/ContainerRegistry.md +35 -0
  451. package/api/@wtf/release-oci/registry/interfaces/RegistryProject.md +51 -0
  452. package/api/@wtf/release-oci/registry/interfaces/RegistryQuery.md +63 -0
  453. package/api/@wtf/release-oci/registry/interfaces/RegistryResponse.md +47 -0
  454. package/api/@wtf/release-oci/registry/type-aliases/RegistryAccess.md +13 -0
  455. package/api/@wtf/release-oci/registry/type-aliases/RegistryFetch.md +39 -0
  456. package/api/@wtf/release-oci/tags/README.md +28 -0
  457. package/api/@wtf/release-oci/tags/functions/checkReleaseTags.md +35 -0
  458. package/api/@wtf/release-oci/tags/functions/isImageTag.md +27 -0
  459. package/api/@wtf/release-oci/tags/interfaces/ReleaseTags.md +31 -0
  460. package/api/@wtf/release-replace/README.md +6 -5
  461. package/api/@wtf/release-replace/errors/README.md +3 -3
  462. package/api/@wtf/release-replace/errors/classes/ReplaceError.md +17 -32
  463. package/api/@wtf/release-replace/errors/type-aliases/ReplaceErrorCode.md +1 -1
  464. package/api/@wtf/release-replace/errors/variables/REPLACE_ERRORS.md +1 -1
  465. package/api/@wtf/release-replace/files/functions/filesMatcher.md +3 -3
  466. package/api/@wtf/release-replace/interfaces/ReplaceMatch.md +5 -5
  467. package/api/@wtf/release-replace/interfaces/ReplacementOf.md +5 -5
  468. package/api/@wtf/release-replace/replace/README.md +3 -3
  469. package/api/@wtf/release-replace/replace/functions/regExpOf.md +1 -1
  470. package/api/@wtf/release-replace/replace/functions/replaceFiles.md +3 -3
  471. package/api/@wtf/release-replace/replace/functions/replaceText.md +1 -1
  472. package/api/@wtf/release-replace/replace/interfaces/ReplaceOptions.md +35 -32
  473. package/api/@wtf/release-replace/replace/interfaces/TextOptions.md +5 -5
  474. package/api/@wtf/release-replace/replace/type-aliases/To.md +1 -1
  475. package/api/@wtf/release-replace/templates/functions/mergeTemplates.md +1 -1
  476. package/api/@wtf/release-replace/templates/functions/resolveReplacement.md +1 -1
  477. package/api/@wtf/release-replace/templates/functions/resolveReplacements.md +1 -1
  478. package/api/@wtf/release-replace/type-aliases/Escape.md +1 -1
  479. package/api/@wtf/release-replace/type-aliases/ReplaceFunction.md +1 -1
  480. package/api/@wtf/release-replace/type-aliases/Replacement.md +1 -1
  481. package/api/@wtf/release-replace/type-aliases/ReplacementSpec.md +1 -1
  482. package/api/@wtf/release-replace/type-aliases/TemplateUse.md +1 -1
  483. package/api/@wtf/release-replace/type-aliases/Templates.md +1 -1
  484. package/api/@wtf/release-replace/values/functions/escapeValue.md +1 -1
  485. package/api/@wtf/release-replace/values/functions/textOf.md +1 -1
  486. package/api/@wtf/release-replace/values/functions/valueAt.md +1 -1
  487. package/api/@wtf/release-replace/values/variables/ESCAPES.md +1 -1
  488. package/api/@wtf/release-replace/values/variables/VALUE.md +1 -1
  489. package/api/@wtf/release-trains/README.md +9 -8
  490. package/api/@wtf/release-trains/cascade/README.md +6 -5
  491. package/api/@wtf/release-trains/cascade/functions/cascadeNotes.md +1 -1
  492. package/api/@wtf/release-trains/cascade/functions/cascadeText.md +1 -1
  493. package/api/@wtf/release-trains/cascade/functions/cascadeType.md +1 -1
  494. package/api/@wtf/release-trains/cascade/functions/cascadesOf.md +2 -2
  495. package/api/@wtf/release-trains/cascade/functions/higherType.md +1 -1
  496. package/api/@wtf/release-trains/cascade/interfaces/Cascade.md +11 -11
  497. package/api/@wtf/release-trains/cascade/interfaces/CascadeCheck.md +30 -27
  498. package/api/@wtf/release-trains/cascade/type-aliases/CascadeKind.md +2 -2
  499. package/api/@wtf/release-trains/cascade/type-aliases/ReleaseType.md +1 -1
  500. package/api/@wtf/release-trains/cascade/variables/RELEASE_TYPES.md +1 -1
  501. package/api/@wtf/release-trains/errors/README.md +6 -5
  502. package/api/@wtf/release-trains/errors/classes/TrainsError.md +18 -32
  503. package/api/@wtf/release-trains/errors/type-aliases/TrainsErrorCode.md +1 -1
  504. package/api/@wtf/release-trains/errors/variables/TRAINS_ERRORS.md +1 -13
  505. package/api/@wtf/release-trains/git/README.md +4 -4
  506. package/api/@wtf/release-trains/git/functions/tagOf.md +1 -1
  507. package/api/@wtf/release-trains/git/functions/tagsOf.md +4 -4
  508. package/api/@wtf/release-trains/git/functions/versionOfTag.md +1 -1
  509. package/api/@wtf/release-trains/git/interfaces/TrainTag.md +3 -3
  510. package/api/@wtf/release-trains/gitlab/README.md +6 -3
  511. package/api/@wtf/release-trains/gitlab/functions/findPackage.md +1 -1
  512. package/api/@wtf/release-trains/gitlab/functions/gitlabForge.md +33 -0
  513. package/api/@wtf/release-trains/gitlab/functions/gitlabHeadersOf.md +1 -1
  514. package/api/@wtf/release-trains/gitlab/functions/gitlabProjectOf.md +1 -1
  515. package/api/@wtf/release-trains/gitlab/functions/gitlabRegistryOf.md +1 -1
  516. package/api/@wtf/release-trains/gitlab/functions/uploadGeneric.md +1 -1
  517. package/api/@wtf/release-trains/gitlab/interfaces/GenericUpload.md +8 -8
  518. package/api/@wtf/release-trains/gitlab/interfaces/GitLabForgeOptions.md +97 -0
  519. package/api/@wtf/release-trains/gitlab/interfaces/GitLabOptions.md +4 -4
  520. package/api/@wtf/release-trains/gitlab/interfaces/GitLabProject.md +6 -6
  521. package/api/@wtf/release-trains/gitlab/interfaces/GitLabRegistry.md +5 -5
  522. package/api/@wtf/release-trains/gitlab/interfaces/HttpResponse.md +4 -4
  523. package/api/@wtf/release-trains/gitlab/interfaces/PackageQuery.md +9 -9
  524. package/api/@wtf/release-trains/gitlab/type-aliases/HttpFetch.md +1 -1
  525. package/api/@wtf/release-trains/gitlab/variables/LISTING_WAITS.md +1 -1
  526. package/api/@wtf/release-trains/interfaces/Train.md +7 -7
  527. package/api/@wtf/release-trains/links/README.md +16 -20
  528. package/api/@wtf/release-trains/links/functions/releaseLinks.md +15 -13
  529. package/api/@wtf/release-trains/links/interfaces/LinkOptions.md +56 -33
  530. package/api/@wtf/release-trains/packages/README.md +11 -16
  531. package/api/@wtf/release-trains/packages/functions/dependencyEdges.md +2 -2
  532. package/api/@wtf/release-trains/packages/functions/dependencyText.md +1 -1
  533. package/api/@wtf/release-trains/packages/functions/dependsOnErrors.md +2 -2
  534. package/api/@wtf/release-trains/packages/functions/ownersOf.md +2 -2
  535. package/api/@wtf/release-trains/packages/functions/packagesOf.md +2 -2
  536. package/api/@wtf/release-trains/packages/functions/releasedVersions.md +2 -2
  537. package/api/@wtf/release-trains/packages/functions/trainDependencies.md +2 -2
  538. package/api/@wtf/release-trains/packages/functions/trainOrder.md +2 -2
  539. package/api/@wtf/release-trains/packages/functions/unsatisfiedErrors.md +5 -4
  540. package/api/@wtf/release-trains/packages/interfaces/DependencyEdge.md +6 -6
  541. package/api/@wtf/release-trains/packages/interfaces/TrainDependency.md +3 -3
  542. package/api/@wtf/release-trains/packages/interfaces/VersionsRelease.md +24 -21
  543. package/api/@wtf/release-trains/paths/README.md +5 -4
  544. package/api/@wtf/release-trains/paths/functions/filterCommits.md +1 -1
  545. package/api/@wtf/release-trains/paths/functions/gitFilesOf.md +4 -4
  546. package/api/@wtf/release-trains/paths/functions/overlapError.md +1 -1
  547. package/api/@wtf/release-trains/paths/functions/trainOfPath.md +1 -1
  548. package/api/@wtf/release-trains/paths/functions/trainsOfCommit.md +1 -1
  549. package/api/@wtf/release-trains/paths/functions/trainsOfPath.md +1 -1
  550. package/api/@wtf/release-trains/paths/type-aliases/FilesOf.md +1 -1
  551. package/api/@wtf/release-trains/plan/README.md +38 -0
  552. package/api/@wtf/release-trains/plan/functions/planOf.md +45 -0
  553. package/api/@wtf/release-trains/plan/interfaces/PlanRelease.md +113 -0
  554. package/api/@wtf/release-trains/plan/interfaces/TrainPlan.md +72 -0
  555. package/api/@wtf/release-trains/schema/README.md +1 -1
  556. package/api/@wtf/release-trains/schema/interfaces/ConfigPart.md +6 -6
  557. package/api/@wtf/release-trains/schema/interfaces/RootOptions.md +7 -17
  558. package/api/@wtf/release-trains/schema/type-aliases/DependencyRule.md +1 -1
  559. package/api/@wtf/release-trains/schema/variables/DEPENDENCY_RULES.md +1 -1
  560. package/api/@wtf/release-trains/schema/variables/TAG_FORMAT_PATTERN.md +1 -1
  561. package/api/@wtf/release-trains/schema/variables/TRAIN_NAME_PATTERN.md +1 -1
  562. package/api/@wtf/release-trains/schema/variables/configSchema.md +2 -2
  563. package/api/@wtf/release-trains/schema/variables/jsonSchema.md +2 -2
  564. package/api/@wtf/release-trains/schema/variables/rootOptionsSchema.md +4 -4
  565. package/api/@wtf/release-trains/schema/variables/trainSchema.md +2 -2
  566. package/api/@wtf/release-trains/schema/variables/trainsSchema.md +2 -2
  567. package/api/@wtf/release-trains/trains/functions/changelogOf.md +1 -1
  568. package/api/@wtf/release-trains/trains/functions/matchersOf.md +3 -3
  569. package/api/@wtf/release-trains/trains/functions/overlapErrors.md +1 -1
  570. package/api/@wtf/release-trains/trains/functions/selectTrain.md +1 -1
  571. package/api/@wtf/release-trains/trains/functions/tagFormatOf.md +1 -1
  572. package/api/@wtf/release-trains/trains/functions/trainHeadedNotes.md +1 -1
  573. package/api/@wtf/release-trains/trains/functions/trainOfRun.md +1 -1
  574. package/api/@wtf/release-trains/trains/functions/trainOfTag.md +1 -1
  575. package/api/@wtf/release-trains/trains/functions/trainsErrors.md +1 -1
  576. package/api/@wtf/release-trains/trains/functions/trainsOfOptions.md +4 -9
  577. package/api/@wtf/release-trains/trains/variables/TRAIN_VARIABLE.md +1 -1
  578. package/api/@wtf/release-trains/trains/variables/VERSION.md +1 -1
  579. package/api/@wtf/release-trains/type-aliases/BranchSpec.md +1 -1
  580. package/api/@wtf/release-trains/type-aliases/Trains.md +1 -1
  581. package/api/@wtf/release-trains/verify/README.md +8 -7
  582. package/api/@wtf/release-trains/verify/functions/unreleasedDependencies.md +3 -3
  583. package/api/@wtf/release-trains/verify/functions/verifyTrain.md +3 -3
  584. package/api/@wtf/release-trains/verify/interfaces/UnreleasedDependencies.md +33 -30
  585. package/api/@wtf/release-trains/verify/interfaces/VerifiedTrain.md +5 -5
  586. package/api/@wtf/release-trains/verify/interfaces/VerifyRelease.md +27 -24
  587. package/api/@wtf/release-validate/errors/README.md +3 -4
  588. package/api/@wtf/release-validate/errors/classes/ValidateError.md +29 -32
  589. package/api/@wtf/release-validate/errors/type-aliases/ValidateErrorCode.md +1 -1
  590. package/api/@wtf/release-validate/errors/variables/VALIDATE_ERRORS.md +1 -1
  591. package/api/@wtf/release-validate/interfaces/ConfigIssue.md +4 -4
  592. package/api/@wtf/release-validate/json-schema/functions/fromJsonSchema.md +1 -1
  593. package/api/@wtf/release-validate/json-schema/functions/pathOfPointer.md +1 -1
  594. package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaError.md +3 -3
  595. package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaValidator.md +3 -3
  596. package/api/@wtf/release-validate/validate/functions/configErrors.md +1 -1
  597. package/api/@wtf/release-validate/validate/functions/isStandardSchema.md +1 -1
  598. package/api/@wtf/release-validate/validate/functions/pathText.md +1 -1
  599. package/api/@wtf/release-validate/validate/functions/validateConfig.md +1 -1
  600. package/api/@wtf/semantic-release/README.md +36 -0
  601. package/api/@wtf/semantic-release/errors/README.md +32 -0
  602. package/api/@wtf/semantic-release/errors/functions/marked.md +29 -0
  603. package/api/@wtf/semantic-release/errors/functions/markedStep.md +36 -0
  604. package/api/@wtf/semantic-release/errors/variables/SEMANTIC_RELEASE_ERROR.md +13 -0
  605. package/api/@wtf/{release-system/node → semantic-release}/functions/realPathOf.md +3 -3
  606. package/api/@wtf/semantic-release/functions/runOf.md +31 -0
  607. package/api/@wtf/semantic-release/interfaces/RunContext.md +31 -0
  608. package/api/@wtf/semantic-release/links/README.md +38 -0
  609. package/api/@wtf/{release-trains → semantic-release}/links/functions/forgetReleased.md +2 -2
  610. package/api/@wtf/{release-trains → semantic-release}/links/functions/recordReleased.md +3 -3
  611. package/api/@wtf/semantic-release/links/functions/releasedOf.md +28 -0
  612. package/api/@wtf/semantic-release/links/interfaces/ReleaseRun.md +41 -0
  613. package/api/@wtf/semantic-release/release/README.md +47 -0
  614. package/api/@wtf/semantic-release/release/functions/inTrain.md +42 -0
  615. package/api/@wtf/semantic-release/release/functions/stepRelease.md +35 -0
  616. package/api/@wtf/semantic-release/release/functions/trainNamed.md +34 -0
  617. package/api/@wtf/semantic-release/release/functions/trainPrefix.md +27 -0
  618. package/api/@wtf/semantic-release/release/interfaces/StepContext.md +63 -0
  619. package/api/@wtf/semantic-release/release/interfaces/StepOf.md +63 -0
  620. package/api/@wtf/semantic-release/schema/README.md +23 -0
  621. package/api/@wtf/{release-system/validator → semantic-release/schema}/functions/pluginEntriesOf.md +5 -5
  622. package/api/@wtf/semantic-release-cargo/README.md +32 -26
  623. package/api/@wtf/semantic-release-cargo/functions/indexLookup.md +3 -3
  624. package/api/@wtf/semantic-release-cargo/interfaces/CargoPluginOptions.md +46 -23
  625. package/api/@wtf/semantic-release-cargo/interfaces/CargoRelease.md +3 -3
  626. package/api/@wtf/semantic-release-cargo/schema/README.md +2 -2
  627. package/api/@wtf/semantic-release-cargo/schema/type-aliases/CargoOptions.md +2 -2
  628. package/api/@wtf/semantic-release-cargo/schema/variables/cargoOptionsSchema.md +2 -2
  629. package/api/@wtf/semantic-release-cargo/schema/variables/cargoSchema.md +2 -2
  630. package/api/@wtf/semantic-release-cargo/schema/variables/configSchema.md +2 -2
  631. package/api/@wtf/semantic-release-cargo/schema/variables/jsonSchema.md +2 -2
  632. package/api/@wtf/semantic-release-cargo/variables/default.md +43 -14
  633. package/api/@wtf/semantic-release-cargo/{functions → variables}/prepare.md +7 -7
  634. package/api/@wtf/semantic-release-cargo/{functions → variables}/publish.md +6 -5
  635. package/api/@wtf/semantic-release-cargo/variables/verifyConditions.md +37 -0
  636. package/api/@wtf/semantic-release-cargo/variables/verifyRelease.md +37 -0
  637. package/api/@wtf/semantic-release-go/README.md +40 -36
  638. package/api/@wtf/semantic-release-go/interfaces/GoPluginOptions.md +7 -17
  639. package/api/@wtf/semantic-release-go/interfaces/GoRelease.md +3 -3
  640. package/api/@wtf/semantic-release-go/schema/README.md +2 -2
  641. package/api/@wtf/semantic-release-go/schema/type-aliases/GoOptions.md +2 -2
  642. package/api/@wtf/semantic-release-go/schema/variables/configSchema.md +2 -2
  643. package/api/@wtf/semantic-release-go/schema/variables/goOptionsSchema.md +2 -2
  644. package/api/@wtf/semantic-release-go/schema/variables/goSchema.md +2 -2
  645. package/api/@wtf/semantic-release-go/schema/variables/jsonSchema.md +2 -2
  646. package/api/@wtf/semantic-release-go/variables/default.md +26 -22
  647. package/api/@wtf/semantic-release-go/variables/prepare.md +40 -0
  648. package/api/@wtf/semantic-release-go/variables/publish.md +45 -0
  649. package/api/@wtf/semantic-release-go/{functions → variables}/verifyConditions.md +8 -7
  650. package/api/@wtf/semantic-release-go/variables/verifyRelease.md +40 -0
  651. package/api/@wtf/semantic-release-maven/README.md +38 -20
  652. package/api/@wtf/semantic-release-maven/functions/pomLookup.md +3 -3
  653. package/api/@wtf/semantic-release-maven/interfaces/MavenPluginOptions.md +12 -22
  654. package/api/@wtf/semantic-release-maven/interfaces/MavenRelease.md +2 -2
  655. package/api/@wtf/semantic-release-maven/schema/README.md +2 -2
  656. package/api/@wtf/semantic-release-maven/schema/type-aliases/MavenOptions.md +2 -2
  657. package/api/@wtf/semantic-release-maven/schema/variables/configSchema.md +2 -2
  658. package/api/@wtf/semantic-release-maven/schema/variables/jsonSchema.md +2 -2
  659. package/api/@wtf/semantic-release-maven/schema/variables/mavenOptionsSchema.md +2 -2
  660. package/api/@wtf/semantic-release-maven/schema/variables/mavenSchema.md +2 -2
  661. package/api/@wtf/semantic-release-maven/variables/default.md +45 -16
  662. package/api/@wtf/semantic-release-maven/variables/prepare.md +41 -0
  663. package/api/@wtf/semantic-release-maven/variables/publish.md +44 -0
  664. package/api/@wtf/semantic-release-maven/{functions → variables}/verifyConditions.md +6 -7
  665. package/api/@wtf/semantic-release-maven/variables/verifyRelease.md +36 -0
  666. package/api/@wtf/semantic-release-npm/README.md +39 -29
  667. package/api/@wtf/semantic-release-npm/functions/loadPublisher.md +1 -1
  668. package/api/@wtf/semantic-release-npm/interfaces/PublishPluginOptions.md +24 -82
  669. package/api/@wtf/semantic-release-npm/interfaces/PublishedRelease.md +4 -4
  670. package/api/@wtf/semantic-release-npm/interfaces/SmokeOption.md +2 -2
  671. package/api/@wtf/semantic-release-npm/schema/README.md +1 -1
  672. package/api/@wtf/semantic-release-npm/schema/type-aliases/PublishOptions.md +3 -3
  673. package/api/@wtf/semantic-release-npm/schema/variables/configSchema.md +2 -2
  674. package/api/@wtf/semantic-release-npm/schema/variables/jsonSchema.md +2 -2
  675. package/api/@wtf/semantic-release-npm/schema/variables/publishOptionsSchema.md +2 -2
  676. package/api/@wtf/semantic-release-npm/schema/variables/publishSchema.md +2 -2
  677. package/api/@wtf/semantic-release-npm/type-aliases/PublisherSpec.md +1 -1
  678. package/api/@wtf/semantic-release-npm/{functions → variables}/addChannel.md +7 -6
  679. package/api/@wtf/semantic-release-npm/variables/default.md +51 -15
  680. package/api/@wtf/semantic-release-npm/variables/fail.md +36 -0
  681. package/api/@wtf/semantic-release-npm/variables/prepare.md +37 -0
  682. package/api/@wtf/semantic-release-npm/{functions → variables}/publish.md +8 -6
  683. package/api/@wtf/semantic-release-npm/{functions → variables}/verifyConditions.md +6 -4
  684. package/api/@wtf/semantic-release-npm/variables/verifyRelease.md +35 -0
  685. package/api/@wtf/semantic-release-oci/README.md +64 -0
  686. package/api/@wtf/semantic-release-oci/interfaces/OciPluginOptions.md +119 -0
  687. package/api/@wtf/semantic-release-oci/interfaces/OciRelease.md +31 -0
  688. package/api/@wtf/semantic-release-oci/schema/README.md +38 -0
  689. package/api/@wtf/semantic-release-oci/schema/type-aliases/OciOptions.md +13 -0
  690. package/api/@wtf/semantic-release-oci/schema/variables/configSchema.md +13 -0
  691. package/api/@wtf/semantic-release-oci/schema/variables/jsonSchema.md +13 -0
  692. package/api/@wtf/semantic-release-oci/schema/variables/ociOptionsSchema.md +13 -0
  693. package/api/@wtf/semantic-release-oci/schema/variables/ociSchema.md +14 -0
  694. package/api/@wtf/semantic-release-oci/variables/default.md +112 -0
  695. package/api/@wtf/semantic-release-oci/variables/publish.md +47 -0
  696. package/api/@wtf/semantic-release-oci/variables/verifyConditions.md +38 -0
  697. package/api/@wtf/semantic-release-oci/variables/verifyRelease.md +35 -0
  698. package/api/@wtf/semantic-release-replace/README.md +4 -4
  699. package/api/@wtf/semantic-release-replace/functions/functionOf.md +1 -1
  700. package/api/@wtf/semantic-release-replace/functions/templatesOf.md +1 -1
  701. package/api/@wtf/semantic-release-replace/schema/README.md +1 -1
  702. package/api/@wtf/semantic-release-replace/schema/interfaces/ModuleExport.md +3 -3
  703. package/api/@wtf/semantic-release-replace/schema/interfaces/ReplaceOptions.md +4 -8
  704. package/api/@wtf/semantic-release-replace/schema/interfaces/RootTemplates.md +2 -2
  705. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacement.md +1 -1
  706. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacementSpec.md +1 -1
  707. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTemplates.md +1 -1
  708. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTo.md +1 -1
  709. package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplateSet.md +1 -1
  710. package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplatesOption.md +1 -1
  711. package/api/@wtf/semantic-release-replace/schema/variables/configSchema.md +2 -2
  712. package/api/@wtf/semantic-release-replace/schema/variables/exportedSetSchema.md +2 -2
  713. package/api/@wtf/semantic-release-replace/schema/variables/jsonSchema.md +2 -2
  714. package/api/@wtf/semantic-release-replace/schema/variables/replaceOptionsSchema.md +2 -2
  715. package/api/@wtf/semantic-release-replace/schema/variables/replacementSchema.md +2 -2
  716. package/api/@wtf/semantic-release-replace/schema/variables/rootTemplatesSchema.md +2 -2
  717. package/api/@wtf/semantic-release-replace/schema/variables/templateSchema.md +2 -2
  718. package/api/@wtf/semantic-release-replace/schema/variables/templatesSchema.md +2 -2
  719. package/api/@wtf/semantic-release-replace/type-aliases/ReplacePluginOptions.md +13 -0
  720. package/api/@wtf/semantic-release-replace/variables/default.md +5 -5
  721. package/api/@wtf/semantic-release-replace/{functions → variables}/prepare.md +6 -6
  722. package/api/@wtf/semantic-release-replace/{functions → variables}/verifyConditions.md +5 -5
  723. package/api/@wtf/semantic-release-trains/config/functions/skipPlugins.md +1 -1
  724. package/api/@wtf/semantic-release-trains/config/functions/stepId.md +1 -1
  725. package/api/@wtf/semantic-release-trains/config/functions/trainAssets.md +1 -1
  726. package/api/@wtf/semantic-release-trains/config/functions/trainChangelog.md +1 -1
  727. package/api/@wtf/semantic-release-trains/config/functions/trainOfTag.md +1 -1
  728. package/api/@wtf/semantic-release-trains/config/functions/trainTagFormat.md +1 -1
  729. package/api/@wtf/semantic-release-trains/config/interfaces/AssetsOptions.md +4 -4
  730. package/api/@wtf/semantic-release-trains/config/interfaces/SkipOptions.md +3 -3
  731. package/api/@wtf/semantic-release-trains/config/variables/BRANCHES.md +1 -1
  732. package/api/@wtf/semantic-release-trains/config/variables/BREAKING.md +1 -1
  733. package/api/@wtf/semantic-release-trains/config/variables/TITLE.md +1 -1
  734. package/api/@wtf/semantic-release-trains/defaults/functions/listingFetchOf.md +1 -1
  735. package/api/@wtf/semantic-release-trains/defaults/functions/skipRuleOf.md +1 -1
  736. package/api/@wtf/semantic-release-trains/defaults/functions/skips.md +3 -2
  737. package/api/@wtf/semantic-release-trains/defaults/functions/stepOptionsOf.md +1 -1
  738. package/api/@wtf/semantic-release-trains/defaults/functions/trainOptionsOf.md +1 -1
  739. package/api/@wtf/semantic-release-trains/defaults/interfaces/ListingRetry.md +3 -3
  740. package/api/@wtf/semantic-release-trains/defaults/interfaces/SkipContext.md +35 -12
  741. package/api/@wtf/semantic-release-trains/defaults/interfaces/StepOptionsContext.md +18 -7
  742. package/api/@wtf/semantic-release-trains/defaults/type-aliases/SkipCheck.md +3 -2
  743. package/api/@wtf/semantic-release-trains/defaults/type-aliases/StepOptions.md +1 -1
  744. package/api/@wtf/semantic-release-trains/defaults/type-aliases/TrainOptions.md +1 -1
  745. package/api/@wtf/semantic-release-trains/defaults/variables/SKIP_RULES.md +1 -1
  746. package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_OPTIONS.md +1 -1
  747. package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_SKIP.md +1 -1
  748. package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_STEP_OPTIONS.md +1 -1
  749. package/api/@wtf/semantic-release-trains/defaults/variables/releaseAssets.md +2 -2
  750. package/api/@wtf/semantic-release-trains/errors/type-aliases/PluginErrorCode.md +1 -1
  751. package/api/@wtf/semantic-release-trains/errors/variables/PLUGIN_ERRORS.md +1 -1
  752. package/api/@wtf/semantic-release-trains/info/README.md +3 -3
  753. package/api/@wtf/semantic-release-trains/info/functions/decideTrain.md +1 -1
  754. package/api/@wtf/semantic-release-trains/info/functions/dotenvOf.md +1 -1
  755. package/api/@wtf/semantic-release-trains/info/functions/infoOf.md +3 -2
  756. package/api/@wtf/semantic-release-trains/info/interfaces/DecideRun.md +4 -4
  757. package/api/@wtf/semantic-release-trains/info/interfaces/InfoRun.md +36 -33
  758. package/api/@wtf/semantic-release-trains/info/interfaces/TrainDecision.md +5 -5
  759. package/api/@wtf/semantic-release-trains/info/interfaces/TrainInfo.md +5 -5
  760. package/api/@wtf/semantic-release-trains/interfaces/TrainsEntryOptions.md +5 -5
  761. package/api/@wtf/semantic-release-trains/interfaces/TrainsOptions.md +7 -17
  762. package/api/@wtf/semantic-release-trains/schema/README.md +1 -1
  763. package/api/@wtf/semantic-release-trains/schema/variables/configSchema.md +2 -2
  764. package/api/@wtf/semantic-release-trains/schema/variables/jsonSchema.md +2 -2
  765. package/api/@wtf/semantic-release-trains/schema/variables/pluginSpecSchema.md +2 -2
  766. package/api/@wtf/semantic-release-trains/schema/variables/skipRuleSchema.md +2 -2
  767. package/api/@wtf/semantic-release-trains/schema/variables/trainsEntrySchema.md +2 -2
  768. package/api/@wtf/semantic-release-trains/schema/variables/trainsPluginSchema.md +2 -2
  769. package/api/@wtf/semantic-release-trains/type-aliases/PluginSpec.md +1 -1
  770. package/api/@wtf/semantic-release-trains/type-aliases/TrainsPluginOptions.md +1 -1
  771. package/api/@wtf/semantic-release-trains/variables/addChannel.md +1 -1
  772. package/api/@wtf/semantic-release-trains/variables/analyzeCommits.md +1 -1
  773. package/api/@wtf/semantic-release-trains/variables/default.md +1 -1
  774. package/api/@wtf/semantic-release-trains/variables/fail.md +1 -1
  775. package/api/@wtf/semantic-release-trains/variables/generateNotes.md +1 -1
  776. package/api/@wtf/semantic-release-trains/variables/prepare.md +1 -1
  777. package/api/@wtf/semantic-release-trains/variables/publish.md +1 -1
  778. package/api/@wtf/semantic-release-trains/variables/success.md +1 -1
  779. package/api/@wtf/semantic-release-trains/variables/verifyConditions.md +1 -1
  780. package/api/@wtf/semantic-release-trains/variables/verifyRelease.md +1 -1
  781. package/api/@wtf/semantic-release-validate/README.md +1 -1
  782. package/api/@wtf/semantic-release-validate/functions/configOf.md +1 -1
  783. package/api/@wtf/semantic-release-validate/functions/loadSchema.md +1 -1
  784. package/api/@wtf/semantic-release-validate/interfaces/ValidatePluginOptions.md +2 -2
  785. package/api/@wtf/semantic-release-validate/schema/interfaces/Validator.md +2 -2
  786. package/api/@wtf/semantic-release-validate/schema/variables/configSchema.md +1 -1
  787. package/api/@wtf/semantic-release-validate/schema/variables/jsonSchema.md +1 -1
  788. package/api/@wtf/semantic-release-validate/schema/variables/validateOptionsSchema.md +1 -1
  789. package/api/@wtf/semantic-release-validate/variables/default.md +2 -2
  790. package/api/@wtf/semantic-release-validate/{functions → variables}/verifyConditions.md +5 -5
  791. package/api/README.md +31 -10
  792. package/api/trains.json +32 -9
  793. package/guides/ci-recipes.md +29 -27
  794. package/guides/configuring-trains.md +24 -20
  795. package/guides/dependency-rules.md +17 -17
  796. package/guides/ecosystems.md +69 -32
  797. package/guides/getting-started.md +26 -21
  798. package/guides/platform.md +179 -0
  799. package/guides/publishing-crates.md +58 -17
  800. package/guides/publishing-go-modules.md +55 -11
  801. package/guides/publishing-maven.md +48 -10
  802. package/guides/publishing-oci.md +134 -0
  803. package/guides/publishing.md +105 -84
  804. package/guides/troubleshooting.md +13 -12
  805. package/guides/validating-a-config.md +1 -0
  806. package/package.json +24 -16
  807. package/api/@wtf/release-go/tags/variables/RELEASE_AUTHOR.md +0 -23
  808. package/api/@wtf/release-npm/interfaces/PublishTrainOptions.md +0 -144
  809. package/api/@wtf/release-npm/release/functions/checkTrain.md +0 -32
  810. package/api/@wtf/release-npm/release/functions/distTagOf.md +0 -31
  811. package/api/@wtf/release-npm/release/functions/packTrain.md +0 -39
  812. package/api/@wtf/release-npm/release/functions/publishTrain.md +0 -37
  813. package/api/@wtf/release-npm/release/functions/publishedOfResolved.md +0 -36
  814. package/api/@wtf/release-npm/release/functions/releaseTrain.md +0 -31
  815. package/api/@wtf/release-npm/release/functions/resolveManifests.md +0 -37
  816. package/api/@wtf/release-npm/release/functions/tagTrain.md +0 -36
  817. package/api/@wtf/release-npm/release/interfaces/CheckRelease.md +0 -222
  818. package/api/@wtf/release-npm/release/interfaces/PackedTrain.md +0 -125
  819. package/api/@wtf/release-npm/release/interfaces/PublishedTrain.md +0 -47
  820. package/api/@wtf/release-npm/release/interfaces/ResolveRelease.md +0 -220
  821. package/api/@wtf/release-npm/release/interfaces/ResolvedTrain.md +0 -55
  822. package/api/@wtf/release-npm/release/interfaces/TagRelease.md +0 -174
  823. package/api/@wtf/release-npm/release/type-aliases/LookedUpTrain.md +0 -13
  824. package/api/@wtf/release-npm/release/type-aliases/ReleaseRun.md +0 -13
  825. package/api/@wtf/release-npm/workspace/interfaces/WorkspaceOptions.md +0 -19
  826. package/api/@wtf/release-system/README.md +0 -71
  827. package/api/@wtf/release-system/errors/README.md +0 -42
  828. package/api/@wtf/release-system/errors/functions/throwAll.md +0 -26
  829. package/api/@wtf/release-system/errors/type-aliases/SystemErrorCode.md +0 -13
  830. package/api/@wtf/release-system/errors/variables/SYSTEM_ERRORS.md +0 -23
  831. package/api/@wtf/release-system/git/functions/gitOf.md +0 -39
  832. package/api/@wtf/release-system/git/interfaces/GitContext.md +0 -45
  833. package/api/@wtf/release-system/git/interfaces/LogCommit.md +0 -43
  834. package/api/@wtf/release-system/node/README.md +0 -25
  835. package/api/@wtf/release-system/node/functions/nodeSystem.md +0 -20
  836. package/api/@wtf/release-system/node/functions/systemOf.md +0 -29
  837. package/api/@wtf/release-system/system/README.md +0 -39
  838. package/api/@wtf/release-system/system/interfaces/DirEntry.md +0 -27
  839. package/api/@wtf/release-system/system/interfaces/ExecOptions.md +0 -41
  840. package/api/@wtf/release-system/system/interfaces/ExecResult.md +0 -35
  841. package/api/@wtf/release-system/system/interfaces/System.md +0 -73
  842. package/api/@wtf/release-system/system/interfaces/SystemFs.md +0 -184
  843. package/api/@wtf/release-system/system/type-aliases/Exec.md +0 -41
  844. package/api/@wtf/release-system/system/type-aliases/SystemInput.md +0 -20
  845. package/api/@wtf/release-system/validator/interfaces/OptionIssue.md +0 -63
  846. package/api/@wtf/release-system/validator/interfaces/Property.md +0 -49
  847. package/api/@wtf/release-system/validator/type-aliases/JsonSchema.md +0 -17
  848. package/api/@wtf/release-system/validator/type-aliases/Path.md +0 -13
  849. package/api/@wtf/release-trains/ecosystem/functions/isEcosystem.md +0 -27
  850. package/api/@wtf/release-trains/ecosystem/functions/readPackages.md +0 -33
  851. package/api/@wtf/release-trains/ecosystem/interfaces/Dependency.md +0 -43
  852. package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemContext.md +0 -68
  853. package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemPackages.md +0 -27
  854. package/api/@wtf/release-trains/ecosystem/interfaces/Package.md +0 -70
  855. package/api/@wtf/release-trains/ecosystem/type-aliases/DependencyKind.md +0 -16
  856. package/api/@wtf/release-trains/ecosystem/variables/DEPENDENCY_KINDS.md +0 -13
  857. package/api/@wtf/release-trains/generated/functions/listGenerated.md +0 -41
  858. package/api/@wtf/release-trains/generated/functions/readGenerated.md +0 -39
  859. package/api/@wtf/release-trains/generated/functions/stageGeneratedFolders.md +0 -29
  860. package/api/@wtf/release-trains/generated/functions/unlistedIn.md +0 -42
  861. package/api/@wtf/release-trains/generated/interfaces/GeneratedOptions.md +0 -19
  862. package/api/@wtf/release-trains/generated/interfaces/StageOptions.md +0 -73
  863. package/api/@wtf/release-trains/generated/variables/GENERATED.md +0 -13
  864. package/api/@wtf/release-trains/links/functions/releasedOf.md +0 -28
  865. package/api/@wtf/release-trains/links/interfaces/PackageRegistry.md +0 -41
  866. package/api/@wtf/release-trains/links/interfaces/ReleaseLink.md +0 -41
  867. package/api/@wtf/release-trains/links/interfaces/ReleaseRun.md +0 -41
  868. package/api/@wtf/release-trains/links/interfaces/ReleasedPackage.md +0 -92
  869. package/api/@wtf/release-trains/packages/interfaces/OrderFault.md +0 -39
  870. package/api/@wtf/release-trains/packages/interfaces/OrderPins.md +0 -27
  871. package/api/@wtf/release-trains/packages/interfaces/PublishOrder.md +0 -35
  872. package/api/@wtf/semantic-release-cargo/functions/verifyConditions.md +0 -39
  873. package/api/@wtf/semantic-release-go/functions/prepare.md +0 -41
  874. package/api/@wtf/semantic-release-go/functions/publish.md +0 -43
  875. package/api/@wtf/semantic-release-go/functions/verifyRelease.md +0 -38
  876. package/api/@wtf/semantic-release-maven/functions/prepare.md +0 -41
  877. package/api/@wtf/semantic-release-maven/functions/publish.md +0 -43
  878. package/api/@wtf/semantic-release-maven/interfaces/LookupAuth.md +0 -32
  879. package/api/@wtf/semantic-release-npm/functions/fail.md +0 -36
  880. package/api/@wtf/semantic-release-npm/functions/prepare.md +0 -34
  881. package/api/@wtf/semantic-release-replace/interfaces/ReplacePluginOptions.md +0 -71
  882. 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, and the plugin exports the same ecosystem at `./ecosystem`. Add
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
- 1. **`verifyConditions`** checks the options and reads the go.mod files that git tracks. It selects
106
- the modules that the release tags, and reads each other train's last release from its tags. A
107
- repo that cannot be released fails here, before the tag (see
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`** checks each module's path against the major of the release's version
110
- (`EGOMAJOR`; see [Release a new major](#release-a-new-major)).
111
- 3. **`prepare`** checks the majors again and writes the versions into the go.mod files. It writes
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 each module's tag (see
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, and again in
194
- `prepare`. So a breaking change to a module whose path has no `/v2` fails before anything is tagged
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, and finds each module's repository. A repo that cannot be deployed fails here, before
116
- the tag (see [When modules depend on other trains](#when-modules-depend-on-other-trains)).
117
- 2. **`prepare`** writes the versions into the poms: the release's version into the train's poms,
118
- and each other train's last release into that train's poms. It also writes them into the
119
- parents, dependencies and plugins that name those modules. Then it reads the poms again, and a
120
- module that is not at its train's version fails the run (see
121
- [What the stamp writes](#what-the-stamp-writes)).
122
- 3. **`publish`** asks each module's repository whether it has the module's pom, and skips each one
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 version and deploys
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` |
@@ -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 | 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 folder in the system's temporary files | 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). |
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
- A release runs three steps. Each step is a function of `@wtf/release-npm/release`.
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
- 1. **Resolve the manifests** (`resolveManifests`). The plugin finds the train's packages that
93
- publish: every package under the train's `paths` that is not private. It finds them the way the
94
- package manager does, by the globs in `pnpm-workspace.yaml` or in the `workspaces` field of
95
- `package.json`. It orders them so that each package comes after the packages it runs with
96
- (`dependencies`, `peerDependencies` and `optionalDependencies`). `first` and `last` pin a package
97
- to either end. Then it builds each manifest as it will publish:
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 on a package in the same train resolves to that version, the way pnpm
100
- resolves `workspace:*`, `workspace:^` and `workspace:~`.
101
- - Each `workspace:` range on a package in another train resolves to that train's last release,
102
- which the plugin reads from the tags. `releasedVersions` from `@wtf/release-trains/packages`
103
- and `resolveSpecifier` from `@wtf/release-npm/manifests` do this, and a train's cascade reads
104
- the same functions.
105
- - The plugin drops a devDependency whose `workspace:` range points at a package that no train
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** (`packTrain`). The plugin copies each package, without its `node_modules`,
114
- into a folder in the system's temporary files. It writes the resolved manifest into the copy and
115
- packs the copy there. It packs every package before the first publish, so a fault stops the run
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** (`publishTrain`). The plugin publishes each package under the dist-tag of the
119
- release's channel. That is `latest`, or `beta` for `2.1.0-beta.3`, or `prerelease` for
120
- `2.1.0-0`. A channel that npm would read as a range, such as `1.x` on a maintenance branch,
121
- becomes `release-1.x`. The plugin adds provenance where the CI provides an ID token, and skips
122
- each version that the registry already has.
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
- - `prepare` runs steps 1 and 2 and asks the registry, all before the tag. These faults fail the run
144
- here:
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 pushed. It returns the release
151
- to semantic-release as the stock plugin does: the publisher's name and its packages, the page of
152
- the first package, and the channel. Then it removes the copies and the tarballs. With
153
- `tarballDir`, it keeps the tarballs. If `publish` finds nothing packed for its train and version
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 `tagTrain`.
156
- semantic-release asks for this when you merge a branch of one channel into the branch of another.
157
- The plugin runs `npm dist-tag add` for each package of the train that the registry has at 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 the system's temporary
186
- files. Every other packed package installs from its tarball through npm's `overrides`, so npm does
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 three steps are functions of `@wtf/release-npm/release` and need no release tool. Each step runs
306
- on the `system` that its caller passes, as a CLI passes its own system adapted to the interface:
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 { System } from '@wtf/release-system/system'
310
- import { packTrain, publishTrain, resolveManifests } from '@wtf/release-npm/release'
311
-
312
- export async function release(system: System, version: string) {
313
- const resolved = await resolveManifests({
314
- trains: { trains: { paths: ['packages/release-trains', 'packages/release-trains-*'] } },
315
- train: 'trains',
316
- version,
317
- system
318
- })
319
- const packed = await packTrain(resolved, { system })
320
- try {
321
- return await publishTrain(packed, { system, dryRun: true })
322
- } finally {
323
- await packed.cleanup()
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
- `releaseTrain` runs all three in one call, the way a job in the tag's pipeline publishes its
329
- release. See [Publish from the tag pipeline](ci-recipes.md#publish-from-the-tag-pipeline).
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 `tagTrain`.
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, { system, env, dryRun, memo }) {
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 system.exec('yarn', args, { cwd: pkg.dir, env })
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, { system, env }) {
473
+ async lookup(pkg, version, _tag, { platform }) {
453
474
  const meta = `https://jsr.io/${pkg.name}/${version}_meta.json`
454
- const { code } = await system.exec('curl', ['--fail', '--silent', '--head', meta], { env })
475
+ const response = await platform.fetch(meta, { method: 'HEAD' })
455
476
  // JSR has no dist-tags: no `tagged`.
456
- return { published: code === 0 }
477
+ return { published: response.ok }
457
478
  },
458
- async publish(pkg, _options, { system, env, dryRun }) {
479
+ async publish(pkg, _options, { platform, dryRun }) {
459
480
  const args = ['jsr', 'publish', '--allow-dirty', ...(dryRun ? ['--dry-run'] : [])]
460
- const { code, stderr } = await system.exec('npx', args, { cwd: pkg.dir, env })
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
  }