@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
@@ -14,15 +14,21 @@ An ecosystem is a module that reads one kind of manifest, such as npm's `package
14
14
  depends on.
15
15
  - `satisfies` says whether a version is within a range, by the ecosystem's own rules.
16
16
 
17
- Four ecosystems are built in. Each one has a semantic-release plugin of its own that publishes its
18
- packages:
19
-
20
- | Ecosystem | Package | Plugin | Manifests it reads |
21
- | --------- | -------------------- | ----------------------------- | --------------------------------------------------------- |
22
- | `npm` | `@wtf/release-npm` | `@wtf/semantic-release-npm` | each `package.json` that git tracks |
23
- | `cargo` | `@wtf/release-cargo` | `@wtf/semantic-release-cargo` | the Cargo workspace at the root, through `cargo metadata` |
24
- | `go` | `@wtf/release-go` | `@wtf/semantic-release-go` | each `go.mod` that git tracks |
25
- | `maven` | `@wtf/release-maven` | `@wtf/semantic-release-maven` | each `pom.xml` that git tracks |
17
+ An ecosystem that releases implements the steps of the contract of `@wtf/release/contract` too:
18
+ `verify`, `prepare`, `smoke`, `publish` and `move`, each optional but `publish`. Any driver runs
19
+ them, a semantic-release plugin, a CLI or a test, over a plan of the packages to publish (see
20
+ [Release the packages](#release-the-packages)).
21
+
22
+ Five ecosystems are built in, each one releasing by the contract, and each with a semantic-release
23
+ plugin of its own that drives it:
24
+
25
+ | Ecosystem | Package | Plugin | Manifests it reads |
26
+ | --------- | -------------------- | ----------------------------- | --------------------------------------------------------------------------------------- |
27
+ | `npm` | `@wtf/release-npm` | `@wtf/semantic-release-npm` | each `package.json` that git tracks |
28
+ | `cargo` | `@wtf/release-cargo` | `@wtf/semantic-release-cargo` | the Cargo workspace at the root, through `cargo metadata` |
29
+ | `go` | `@wtf/release-go` | `@wtf/semantic-release-go` | each `go.mod` that git tracks |
30
+ | `maven` | `@wtf/release-maven` | `@wtf/semantic-release-maven` | each `pom.xml` that git tracks |
31
+ | `oci` | `@wtf/release-oci` | `@wtf/semantic-release-oci` | each `Dockerfile`, `Containerfile` or `.devcontainer/devcontainer.json` that git tracks |
26
32
 
27
33
  ## Name the ecosystems in your config
28
34
 
@@ -69,8 +75,8 @@ ecosystem costs a repo nothing. For example, cargo's ecosystem gives no package
69
75
  a train (`EDEPENDENCYNOTRAIN`). That train must have released (`EDEPENDENCYNORELEASE`), and one
70
76
  of its releases must be within the range (`EDEPENDENCYUNSATISFIED`).
71
77
  - **Versions.** A release stamps each range on another train's package with that train's last
72
- release, read from the train's tags that `HEAD` holds (`releasedVersions` of
73
- `@wtf/release-trains/packages`).
78
+ release, read from the train's tags that `HEAD` holds. `planOf` of `@wtf/release-trains/plan`
79
+ gives them in the plan of the train, the version of each package of the repo.
74
80
  - **Cascade.** When another train's last release falls outside a range that this train's last
75
81
  release published, this train releases again. It releases a major when a major left a `peer`
76
82
  range behind, and a patch for any other kind.
@@ -106,8 +112,8 @@ See [Publish npm packages](publishing.md).
106
112
 
107
113
  `@wtf/release-cargo` reads the Cargo workspace at the root of the repo with
108
114
  `cargo metadata --no-deps --format-version 1`. For a commit, it exports the files with
109
- `git archive` into the system's temporary files, unpacks them with `tar`, reads them, and removes
110
- them.
115
+ `git archive` into a temporary folder of the platform, unpacks them with `tar`, reads them, and
116
+ removes them.
111
117
 
112
118
  - **Published:** every crate without `publish = false`.
113
119
  - **Kinds:** a normal dependency is `runtime`, a build dependency is `build`, and a dev-dependency
@@ -189,6 +195,24 @@ own.
189
195
  So a bare version never causes a cascade, and the release never rewrites a range of your own. See
190
196
  [Publish Maven modules](publishing-maven.md).
191
197
 
198
+ ### OCI images
199
+
200
+ `@wtf/release-oci` reads each folder of a file an image is built of that git tracks: a
201
+ `Dockerfile`, a `Containerfile`, or a `.devcontainer/devcontainer.json`, which the devcontainer CLI
202
+ builds. A folder of more than one is one image. It reads a commit's files with `git ls-tree`.
203
+
204
+ - **Name:** the image's repository in its registry: the registry image of the project,
205
+ `CI_REGISTRY_IMAGE` of a pipeline, for the image at the root, and that and its folder for another.
206
+ Where the environment names no registry image, the image is named by its folder.
207
+ - **Published:** every image.
208
+ - **Kinds:** none. An image does not depend on another image of the repo as the trains read it: a
209
+ `FROM` or a base pins a tag of a registry. Order such trains by `dependsOn`.
210
+ - **`resolve`:** the version itself, the tag a release publishes.
211
+ - **`satisfies`:** a tag of the one version it names.
212
+
213
+ A release copies the image a pipeline tested, by its digest, to the tags of the version, and moves
214
+ the minor and the major of a release. See [Publish OCI images](publishing-oci.md).
215
+
192
216
  ## Write your own ecosystem
193
217
 
194
218
  Write an ecosystem when your repo holds a kind of package that none of the built-in ecosystems
@@ -196,13 +220,13 @@ reads.
196
220
 
197
221
  ### The interface
198
222
 
199
- `@wtf/release-trains/ecosystem` declares the interface:
223
+ `@wtf/release/ecosystem` declares the interface:
200
224
 
201
225
  ```ts fragment
202
226
  export interface Ecosystem {
203
227
  /** 'npm', 'cargo': as an error, the notes and a key of the trains say it. */
204
228
  readonly name: string
205
- /** The packages of the repo, of the working tree, or at `context.ref`, by `context.system`. */
229
+ /** The packages of the repo, of the working tree, or at `context.ref`, of `context.root`. */
206
230
  packages(context: EcosystemContext): Promise<readonly Package[]>
207
231
  /** The range a release publishes of `range`, of `version`, the release of the package it names. */
208
232
  resolve(range: string, version: string): string
@@ -227,8 +251,8 @@ export interface Dependency {
227
251
 
228
252
  The trains call `packages` for the working tree, with no `ref`. They also call it for a commit, such
229
253
  as the tag of a train's last release, which a cascade reads. `packages` does everything through its
230
- context's `system`, as every library does: files, git, and the ecosystem's own tool. See
231
- [The system](system.md).
254
+ context, as every library does: the files of the folder of the repo, `root`, and git and the
255
+ ecosystem's own tool by the `platform`. See [The platform](platform.md).
232
256
 
233
257
  ### An example
234
258
 
@@ -237,9 +261,10 @@ of its own, a `release.json` in each folder. The manifest holds a name, a flag t
237
261
  package publishes, and dependencies at exact versions:
238
262
 
239
263
  ```ts
240
- import { git, gitOf, trackedFiles } from '@wtf/release-system/git'
241
- import { basenameOf, dirnameOf, joinPath } from '@wtf/release-system/posix'
242
- import type { Ecosystem, EcosystemContext, Package } from '@wtf/release-trains/ecosystem'
264
+ import { readFile } from '@wtf/release/files'
265
+ import { git, trackedFiles } from '@wtf/release/git'
266
+ import { basenameOf, dirnameOf } from '@wtf/release/posix'
267
+ import type { Ecosystem, EcosystemContext, Package } from '@wtf/release/ecosystem'
243
268
 
244
269
  /** What a release.json holds. */
245
270
  interface Manifest {
@@ -250,8 +275,7 @@ interface Manifest {
250
275
 
251
276
  /** Each release.json of the repo, of the working tree or of `context.ref`, by git. */
252
277
  async function manifestsOf(context: EcosystemContext): Promise<[string, Manifest][]> {
253
- const { cwd, system } = gitOf(context)
254
- const { ref } = context
278
+ const { root, ref } = context
255
279
  const files = (
256
280
  ref === undefined
257
281
  ? await trackedFiles(context)
@@ -261,7 +285,7 @@ async function manifestsOf(context: EcosystemContext): Promise<[string, Manifest
261
285
  files.map(async (file): Promise<[string, Manifest]> => {
262
286
  const text =
263
287
  ref === undefined
264
- ? await system.fs.readFile(joinPath(cwd, file))
288
+ ? await readFile(root, file)
265
289
  : await git(['show', `${ref}:${file}`], context)
266
290
  return [file, JSON.parse(text) as Manifest]
267
291
  })
@@ -306,16 +330,29 @@ export default ecosystem
306
330
  such as `1.5.0-beta.1` for `^1.4.0`, because the trains release prereleases on their channels.
307
331
  - **No manifest means no package.** In a repo without any of the ecosystem's manifests, return `[]`
308
332
  rather than fail. A config can then name the ecosystem before the first manifest exists.
309
- - **Always use the system.** Do not use `node:*`, `process` or the global `fetch`. Everything the
310
- module does outside itself goes through `context.system`. The trains can then run it on a CLI's
311
- system, or on a test's system in memory.
333
+ - **Always use the context.** Do not use `node:*`, `process` or the global `fetch`. Everything the
334
+ module does outside itself goes through `context.root` and `context.platform`. The trains can
335
+ then run it on a CLI's platform, or on a test's platform and folder in memory.
336
+
337
+ ### Release the packages
312
338
 
313
- ### Publish the packages
339
+ To release its packages too, the ecosystem implements `ReleasingEcosystem` of
340
+ `@wtf/release/contract`, of options of its own: `publish`, and the steps of `verify`, `prepare`,
341
+ `smoke` and `move` that fit it. Each step takes the `Release` (the version, the folder of the repo,
342
+ the platform, whether it is a dry run, and where to log), the `Plan` of the ecosystem (its packages
343
+ to publish, in order, and the version of each package of the repo), and its options. It knows no
344
+ train: a driver gives it the plan, as `planOf` of `@wtf/release-trains/plan` works one out for a
345
+ train, and runs a step of every ecosystem by `runStep` of `@wtf/release/driver`. The test ecosystem
346
+ of `@wtf/release` (`packages/release/test/contract.test.ts`) implements every step, and each
347
+ built-in library one, as the guide of each shows.
314
348
 
315
- The ecosystem does not publish. Write a semantic-release plugin for that, as
316
- `@wtf/semantic-release-npm`, `@wtf/semantic-release-cargo`, `@wtf/semantic-release-go` and
317
- `@wtf/semantic-release-maven` are. The plugin:
349
+ A semantic-release plugin over it, as `@wtf/semantic-release-npm`, `-cargo`, `-go`, `-maven` and
350
+ `-oci` are:
318
351
 
319
352
  - reads `trains`, `ecosystems` and `train` from the root of the config;
320
- - finds its train's packages with `ownersOf` from `@wtf/release-trains/packages`;
321
- - reads the other trains' versions with `releasedVersions`, which throws the trains' errors.
353
+ - works out the plan of its train with `planOf`, which throws the trains' errors;
354
+ - runs each step of the ecosystem in its step of semantic-release, on the platform and the folder of
355
+ the run that `runOf` of `@wtf/semantic-release` gives, marking the errors that leave it by
356
+ `markedStep`;
357
+ - records what `publish` published for the links of the release, by `recordReleased` of
358
+ `@wtf/semantic-release/links`.
@@ -18,14 +18,15 @@ other train first.
18
18
  ## Which packages it releases
19
19
 
20
20
  An **ecosystem** tells the trains how to read one kind of package: where its manifests are, what it
21
- depends on, and what a version range means. Four ecosystems are built in, and one repo can mix them:
21
+ depends on, and what a version range means. Five ecosystems are built in, and one repo can mix them:
22
22
 
23
- | Ecosystem | Manifests | Plugin | Guide |
24
- | --------- | ------------------------------- | ----------------------------- | ---------------------------------------------- |
25
- | npm | each `package.json` | `@wtf/semantic-release-npm` | [Publish npm packages](publishing.md) |
26
- | Cargo | the Cargo workspace at the root | `@wtf/semantic-release-cargo` | [Publish Cargo crates](publishing-crates.md) |
27
- | Go | each `go.mod` | `@wtf/semantic-release-go` | [Publish Go modules](publishing-go-modules.md) |
28
- | Maven | each `pom.xml` | `@wtf/semantic-release-maven` | [Publish Maven modules](publishing-maven.md) |
23
+ | Ecosystem | Manifests | Plugin | Guide |
24
+ | --------- | ----------------------------------------------------------------------- | ----------------------------- | ---------------------------------------------- |
25
+ | npm | each `package.json` | `@wtf/semantic-release-npm` | [Publish npm packages](publishing.md) |
26
+ | Cargo | the Cargo workspace at the root | `@wtf/semantic-release-cargo` | [Publish Cargo crates](publishing-crates.md) |
27
+ | Go | each `go.mod` | `@wtf/semantic-release-go` | [Publish Go modules](publishing-go-modules.md) |
28
+ | Maven | each `pom.xml` | `@wtf/semantic-release-maven` | [Publish Maven modules](publishing-maven.md) |
29
+ | OCI | each `Dockerfile`, `Containerfile` or `.devcontainer/devcontainer.json` | `@wtf/semantic-release-oci` | [Publish OCI images](publishing-oci.md) |
29
30
 
30
31
  You can also write an ecosystem of your own for any other kind of package. See
31
32
  [How ecosystems work](ecosystems.md).
@@ -35,28 +36,33 @@ You can also write an ecosystem of your own for any other kind of package. See
35
36
  wtf release has two layers:
36
37
 
37
38
  - **Libraries** do the work. They do not depend on semantic-release or on any other release tool.
38
- Each function takes the `system` it runs on from its caller, so you can also run the libraries
39
- from a CLI or a script of your own. See [The system](system.md).
39
+ Each function takes the folder of the repo and the platform it runs on from its caller, so you
40
+ can also run the libraries from a CLI or a script of your own. See [The platform](platform.md).
40
41
  - **Plugins** let semantic-release run the libraries. Each plugin is a thin adapter over its
41
42
  library.
42
43
 
43
44
  The libraries:
44
45
 
45
- - `@wtf/release-system` is the base of the other libraries: the system, paths and globs, git,
46
- option validators and `ReleaseError`. It knows nothing about trains.
46
+ - `@wtf/release` is the base of the other libraries: the platform they run on, the files of the
47
+ repo, programs, paths and globs, git, option validators and `ReleaseError`. It knows nothing about
48
+ trains.
47
49
  - `@wtf/release-trains` handles the trains: their commits, their checks, and the folders a build
48
50
  generates.
49
- - `@wtf/release-npm`, `@wtf/release-cargo`, `@wtf/release-go` and `@wtf/release-maven` are the
50
- four ecosystems. Each one also publishes the train's packages of its kind.
51
+ - `@wtf/release-npm`, `@wtf/release-cargo`, `@wtf/release-go`, `@wtf/release-maven` and
52
+ `@wtf/release-oci` are the five ecosystems. Each one also publishes the train's packages of its
53
+ kind.
51
54
  - `@wtf/release-replace` replaces text in files, such as the version in a badge.
52
55
  - `@wtf/release-validate` validates a config with any Standard Schema.
53
56
 
54
57
  The plugins:
55
58
 
59
+ - `@wtf/semantic-release` is what every plugin shares: it makes Node's platform and the folder of
60
+ the repo for a run, and marks the libraries' errors for semantic-release.
56
61
  - `@wtf/semantic-release-trains` checks the trains, gives a plugin it wraps only the train's
57
62
  commits, and stages the folders a build generates.
58
- - `@wtf/semantic-release-npm`, `@wtf/semantic-release-cargo`, `@wtf/semantic-release-go` and
59
- `@wtf/semantic-release-maven` publish the train's packages of one ecosystem.
63
+ - `@wtf/semantic-release-npm`, `@wtf/semantic-release-cargo`, `@wtf/semantic-release-go`,
64
+ `@wtf/semantic-release-maven` and `@wtf/semantic-release-oci` publish the train's packages of one
65
+ ecosystem.
60
66
  - `@wtf/semantic-release-replace` replaces text in files during a release.
61
67
  - `@wtf/semantic-release-validate` validates the config of a run with a schema of your own.
62
68
 
@@ -104,15 +110,14 @@ The examples in these guides use the trains that this repo releases its own pack
104
110
 
105
111
  | Train | Folders |
106
112
  | ---------- | ----------------------------------------------------------------- |
107
- | `system` | `packages/release-system` |
113
+ | `release` | `packages/release`, `packages/semantic-release` |
108
114
  | `trains` | `packages/release-trains`, `packages/semantic-release-trains`, … |
109
115
  | `replace` | `packages/release-replace`, `packages/semantic-release-replace` |
110
116
  | `validate` | `packages/release-validate`, `packages/semantic-release-validate` |
111
117
  | `docs` | `packages/docs` |
112
118
 
113
- `@wtf/release-trains` and `@wtf/release-replace` list `@wtf/release-system`, so `trains` and
114
- `replace` depend on `system`. `validate` depends on no other train. The docs package lists every
115
- package, so `docs` releases last.
119
+ Each library lists `@wtf/release`, and each plugin `@wtf/semantic-release`, so `trains`, `replace`
120
+ and `validate` depend on `release`. The docs package lists every package, so `docs` releases last.
116
121
 
117
122
  Each example shows only the trains it needs. The repo's own `release.config.mjs` declares them all,
118
123
  and tags each one `<train>-v<version>`. Here is a config with two trains:
@@ -189,7 +194,7 @@ releases nothing:
189
194
  RELEASE_TRAIN=trains npx semantic-release --dry-run --no-ci
190
195
  ```
191
196
 
192
- Release a train that another train depends on first, such as `system` before `trains`. The plugin
197
+ Release a train that another train depends on first, such as `release` before `trains`. The plugin
193
198
  warns you when a dependency train has commits that it has not released. See
194
199
  [Trains that depend on other trains](dependency-rules.md).
195
200
 
@@ -211,7 +216,7 @@ copy of each package that it packs. See [Publish npm packages](publishing.md).
211
216
  train's tag on your host.
212
217
  Wrapped in the trains plugin, `@semantic-release/gitlab` links each package that the release
213
218
  published. See [The links of the release](publishing.md#the-links-of-the-release).
214
- - [The system](system.md): run the libraries on a system of your own.
219
+ - [The platform](platform.md): run the libraries on a platform of your own.
215
220
 
216
221
  ## Make the first release
217
222
 
@@ -0,0 +1,179 @@
1
+ # The platform
2
+
3
+ Read this page when you want to run the libraries outside semantic-release, from a CLI of your own,
4
+ or in tests. You can also use it to change how the plugins run programs.
5
+
6
+ Every function of the libraries, such as `@wtf/release-trains`, `@wtf/release-npm` and
7
+ `@wtf/release-replace`, reaches the outside world through two things its caller gives it:
8
+
9
+ - `root`, the folder of the repo. It is a `FileSystemDirectoryHandle` of the File System standard,
10
+ so it can be a folder on disk, a folder in memory, or a browser's.
11
+ - `platform`, what runs programs, fetches and makes temporary folders. It is a part of the platform
12
+ of [`@wtf/platform`](https://www.npmjs.com/package/@wtf/platform), picked to what the function
13
+ uses.
14
+
15
+ The types come from `@wtf/release`, the base that the other libraries build on. A function requires
16
+ them from its caller and never makes them itself. None of the library modules names Node. Each
17
+ caller passes what fits it:
18
+
19
+ - A semantic-release plugin passes Node's platform and the folder of the run.
20
+ - A CLI passes Node's, or a platform of its own.
21
+ - A test passes a platform and a folder in memory.
22
+
23
+ Each function takes only what it uses:
24
+
25
+ | It takes | What it holds | Which functions take it |
26
+ | ----------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
27
+ | `root` alone | The folder of the repo. | A function that only reads or writes files of the repo. |
28
+ | `RepoPlatform` | `spawn`, which starts a program, `env`, the environment a program gets, and `dirs.cwd`, the working folder. | A function that runs git, or another program of the repo. |
29
+ | `ReleasePlatform` | A `RepoPlatform`, with `fetch`, and `path`, `navigator`, `crypto` and `dirs.temp` for temporary folders. | A release that fetches, or stages what it packs outside the repo. |
30
+
31
+ `platform.dirs.cwd` is the path of the folder that `root` is the handle of, and programs run there.
32
+ `RepoContext` holds the two together, `{ root, platform }`:
33
+
34
+ ```ts
35
+ import type { RepoContext } from '@wtf/release'
36
+ import { readFile } from '@wtf/release/files'
37
+ import { run } from '@wtf/release/process'
38
+
39
+ /** The name of the root package, and the commit of the working tree. */
40
+ export async function describe({ root, platform }: RepoContext) {
41
+ const { name } = JSON.parse(await readFile(root, 'package.json')) as { name: string }
42
+ const { stdout } = await run(platform, 'git', ['rev-parse', 'HEAD'])
43
+ return `${name}@${stdout.trim()}`
44
+ }
45
+ ```
46
+
47
+ `@wtf/release/files` reads and writes the files of a folder by their paths from it, with `/`:
48
+ `readFile`, `readBytes`, `writeFile`, `exists`, `readDir`, `makeDir`, `remove` and `copy`.
49
+ `@wtf/release/posix` joins paths without a platform.
50
+
51
+ `run` of `@wtf/release/process` runs a program in the folder of the repo, or in a folder of it, and
52
+ returns `{ stdout, stderr, code }`. The program gets the platform's `env`, or the environment you
53
+ give it whole; `envOf` makes one of the platform's with variables of your own. A non-zero exit code
54
+ is not a failure of `run` itself, and the caller decides what it means. `run` rejects only when the
55
+ program cannot start.
56
+
57
+ ## Use Node's platform
58
+
59
+ A CLI or a script on Node makes Node's platform with `nodePlatform` of
60
+ `@wtf/platform-node/platform`, and the folder of the repo with `nodeDirectory` of
61
+ `@wtf/platform-fs-node/handles`. Node's platform works in `process.cwd()` and gives each program
62
+ `process.env`:
63
+
64
+ ```ts
65
+ import type { ReleasePlatform } from '@wtf/release'
66
+ import { readWorkspace } from '@wtf/release-npm/workspace'
67
+ import { nodeDirectory } from '@wtf/platform-fs-node/handles'
68
+ import { nodeStorage } from '@wtf/platform-fs-node/storage'
69
+ import { nodePlatform } from '@wtf/platform-node/platform'
70
+
71
+ const platform: ReleasePlatform = nodePlatform({
72
+ fetch: (input, init) => fetch(input, init),
73
+ storage: nodeStorage()
74
+ })
75
+ const root = await nodeDirectory(platform.dirs.cwd)
76
+
77
+ export const packages = await readWorkspace(root)
78
+ ```
79
+
80
+ ## Write a platform of your own
81
+
82
+ A CLI gives each function the platform it runs on, so it can change any member of it. This example
83
+ logs each program before it runs:
84
+
85
+ ```ts
86
+ import type { ReleasePlatform, RepoContext } from '@wtf/release'
87
+ import npm from '@wtf/release-npm'
88
+ import { verifyTrain } from '@wtf/release-trains/verify'
89
+
90
+ /** A platform whose programs are logged before they run, over the one a CLI has. */
91
+ export const logged = (platform: ReleasePlatform): ReleasePlatform => ({
92
+ ...platform,
93
+ spawn: (command, args, options) => {
94
+ console.error(`$ ${command} ${args.join(' ')}`)
95
+ return platform.spawn(command, args, options)
96
+ }
97
+ })
98
+
99
+ export function check({ root, platform }: RepoContext<ReleasePlatform>) {
100
+ return verifyTrain({
101
+ trains: {
102
+ validate: { paths: ['packages/release-validate', 'packages/semantic-release-validate'] }
103
+ },
104
+ train: 'validate',
105
+ ecosystems: [npm],
106
+ root,
107
+ platform: logged(platform)
108
+ })
109
+ }
110
+ ```
111
+
112
+ ## The platform of the plugins
113
+
114
+ Each plugin makes Node's platform and the folder of the repo for the run, with `runOf` of
115
+ `@wtf/semantic-release`. It makes them from the folder and the environment that semantic-release
116
+ gives each step, `cwd` and `env`, which the plugin requires. It passes them to every call into its
117
+ library, so each program runs in that folder and with that environment.
118
+
119
+ A plugin knows it runs on Node, and a library does not: a library always takes the platform it is
120
+ given and assumes none. So a plugin has no option of its platform, and lays nothing over Node's. To
121
+ change what the programs of a release see, change the environment of the run, as the variables of
122
+ its job: `GIT_TERMINAL_PROMPT=0` stops every program of the release from asking for a password.
123
+
124
+ A test of a plugin that runs it on a platform in memory mocks `@wtf/platform-node/platform`, as
125
+ Vitest's `vi.mock` does, so the plugin's Node's platform is the test's.
126
+
127
+ ## Errors
128
+
129
+ The libraries throw plain errors: each is a `ReleaseError` of `@wtf/release/errors`, or of a class
130
+ of its package that extends it, with a stable code, a message of what is wrong, and details of how
131
+ to fix it. They know nothing of the tool that prints them.
132
+
133
+ A plugin marks them as they leave each of its steps, with `markedStep` of
134
+ `@wtf/semantic-release/errors`, so that semantic-release prints each by its code, its message and
135
+ its details. A CLI of your own prints them its own way:
136
+
137
+ ```ts
138
+ import { isReleaseError } from '@wtf/release/errors'
139
+
140
+ /** An error as a CLI prints it: its code and how to fix it, of a release's. */
141
+ export const printed = (error: unknown): string =>
142
+ isReleaseError(error) ? `${error.code}: ${error.message}\n${error.details}` : String(error)
143
+ ```
144
+
145
+ ## Use a platform in tests
146
+
147
+ A platform with scripted programs and a folder in memory run the libraries with no disk and no git.
148
+ `memoryPlatform` of `@wtf/platform-memory/platform` answers each program by a script, and records
149
+ each it runs. `memoryDirectory` of `@wtf/platform-fs-memory/handles` is a disk in memory:
150
+
151
+ ```ts
152
+ import { testDirs } from '@wtf/platform/dirs'
153
+ import { memoryDirectory } from '@wtf/platform-fs-memory/handles'
154
+ import { memoryPlatform } from '@wtf/platform-memory/platform'
155
+ import { makeDir, writeFile } from '@wtf/release/files'
156
+ import npm from '@wtf/release-npm'
157
+
158
+ // A disk in memory, of the folder of the repo, /repo, and a temporary folder, /tmp.
159
+ const disk = memoryDirectory()
160
+ const root = await makeDir(disk, 'repo')
161
+ await makeDir(disk, 'tmp')
162
+ await writeFile(root, 'package.json', '{ "name": "repo", "private": true }')
163
+ await writeFile(root, 'packages/core/package.json', '{ "name": "@acme/core" }')
164
+
165
+ // git lists the files it tracks. Any other program is not there, as of a command not found.
166
+ const platform = memoryPlatform({
167
+ dirs: testDirs({ cwd: '/repo', temp: '/tmp' }),
168
+ directory: () => disk,
169
+ spawn: (command, args) =>
170
+ command === 'git' && args[0] === 'ls-files'
171
+ ? { stdout: 'package.json\0packages/core/package.json\0' }
172
+ : undefined
173
+ })
174
+
175
+ export const names = async () => (await npm.packages({ root, platform })).map(({ name }) => name) // ['repo', '@acme/core']
176
+
177
+ // Each program that ran: [{ command: 'git', args: ['ls-files', '-z'], … }]
178
+ export const runs = () => platform.spawn.runs
179
+ ```
@@ -94,21 +94,57 @@ and at the commit of a train's last release. For that commit, they export the fi
94
94
 
95
95
  ## What a release does
96
96
 
97
- 1. **`verifyConditions`** checks the options and reads the workspace with `cargo metadata`. It
98
- selects the crates that the release publishes and puts them in dependency order. It reads each
99
- other train's last release from its tags. It checks the credentials. A workspace that cannot be
97
+ The plugin maps each step of semantic-release onto a step of the cargo ecosystem, the contract of
98
+ [`@wtf/release`](../../release/README.md). It gives the ecosystem the release, of the next
99
+ release's version, and the train's plan: the train's crates that publish, in dependency order, and
100
+ the version of each crate of the workspace, the release's for the train's crates and each other
101
+ train's last release for that train's crates.
102
+
103
+ 1. **`verifyConditions`** checks the options and works out the plan, which reads the workspace with
104
+ `cargo metadata` and each other train's last release from its tags. A workspace that cannot be
100
105
  published fails here, before the tag (see
101
106
  [When crates depend on other trains](#when-crates-depend-on-other-trains)).
102
- 2. **`prepare`** writes the versions into the manifests: the release's version into the train's
103
- crates, and each other train's last release into that train's crates and into each dependency on
104
- them. It then reads the workspace again. A crate that is not at its train's version fails the run
105
- (see [What the stamp does not read](#what-the-stamp-does-not-read)).
106
- 3. **`publish`** asks the registry's sparse index which crates it already has, and skips them. It
107
- publishes the rest in dependency order with `cargo publish`. cargo waits for each crate to appear
108
- in the index before the next one, so the crates of a release can install each other.
109
-
110
- A dry run of semantic-release runs only `verifyConditions`. It writes no version and publishes
111
- nothing.
107
+ 2. **`verifyRelease`** runs the ecosystem's `verify` once semantic-release knows the version: it
108
+ checks the version, the crates that the release publishes, of `include` and `exclude`, their
109
+ order, and the credentials.
110
+ 3. **`prepare`** runs the ecosystem's `prepare`, which writes the plan's versions into the
111
+ manifests: the release's version into the train's crates, and each other train's last release
112
+ into that train's crates and into each dependency on them. It then reads the workspace again. A
113
+ crate that is not at its train's version fails the run (see
114
+ [What the stamp does not read](#what-the-stamp-does-not-read)).
115
+ 4. **`publish`** runs the ecosystem's `publish`. It asks the registry's sparse index which crates
116
+ it already has, and skips them. It publishes the rest in the plan's order with `cargo publish`.
117
+ cargo waits for each crate to appear in the index before the next one, so the crates of a
118
+ release can install each other.
119
+
120
+ A dry run of semantic-release runs only `verifyConditions` and `verifyRelease`. It writes no
121
+ version and publishes nothing.
122
+
123
+ ### Without semantic-release
124
+
125
+ The ecosystem knows no train and no release tool, so any driver can release the crates: give it a
126
+ release and a plan, and run its steps, as with `runStep` of `@wtf/release/driver`. A dry run
127
+ (`dryRun: true`) writes and publishes nothing: `prepare` gives the manifests it would write, and
128
+ `publish` only asks the registry.
129
+
130
+ ```ts
131
+ import type { Release } from '@wtf/release/contract'
132
+ import { runStep } from '@wtf/release/driver'
133
+ import { publishOrder } from '@wtf/release/order'
134
+ import cargo from '@wtf/release-cargo'
135
+
136
+ /** Every crate of the workspace that publishes, at the version of the release, but the docs. */
137
+ export async function releaseCrates(release: Release) {
138
+ const packages = await cargo.packages(release)
139
+ const { order } = publishOrder(packages.filter(({ published }) => published))
140
+ const versions = new Map(order.map(({ name }) => [name, release.version]))
141
+ const plans = new Map([['cargo', { own: order, versions }]])
142
+ const ecosystems = [[cargo, { exclude: ['docs'] }]] as const
143
+ await runStep(release, plans, ecosystems, 'verify')
144
+ await runStep(release, plans, ecosystems, 'prepare')
145
+ return (await runStep(release, plans, ecosystems, 'publish')).released
146
+ }
147
+ ```
112
148
 
113
149
  ## When crates depend on other trains
114
150
 
@@ -210,7 +246,10 @@ no release publishes it.
210
246
  before the tag with `EDEPENDENCYNORELEASE`.
211
247
  - **`publish = false` on what is not published.** Mark an example or a test crate of the workspace
212
248
  this way. Otherwise the train whose paths hold it publishes it. You can also leave a crate of the
213
- train out with `exclude`, which names only crates of the train (`ECRATES`).
249
+ train out with `exclude`, which names only crates of the train, or crates that publish nowhere
250
+ (`ECRATES`). A crate with `publish = false` that a train's paths hold is stamped at the
251
+ train's version all the same, with its dependencies on published crates, so `cargo publish
252
+ --workspace` and the smoke, which build every member, resolve it.
214
253
 
215
254
  ## Authenticate to the registry
216
255
 
@@ -220,9 +259,9 @@ uses:
220
259
  - an ID token of the job, in `CRATES_IO_ID_TOKEN` by default (`idToken` names another variable);
221
260
  - a token, in `CARGO_REGISTRY_TOKEN`.
222
261
 
223
- With both, the plugin uses the ID token and the log says so. With neither, `verifyConditions` fails
224
- with `ECRATEAUTH` before the tag. A dry run only warns, because semantic-release runs only
225
- `verifyConditions` in a dry run.
262
+ With both, the plugin uses the ID token and the log says so. With neither, `verifyRelease` fails
263
+ with `ECRATEAUTH` before the tag. A dry run only warns so, because semantic-release runs neither
264
+ `prepare` nor `publish` in a dry run.
226
265
 
227
266
  ### Trusted publishing
228
267
 
@@ -265,6 +304,8 @@ The plugin does the rest:
265
304
  - When the job ends, even when it fails, the plugin revokes the token (`DELETE` on the same URL). A
266
305
  failed revoke is logged and fails nothing, because the token expires by itself.
267
306
  - The tokens appear in no log and no error.
307
+ - Each request to the registry names the library, `@wtf/release-cargo`, as its user agent, as
308
+ crates.io asks every client to name itself.
268
309
 
269
310
  A registry other than crates.io that offers the same exchange takes its API as `registryApi`, with
270
311
  its `registry` and its `index`: