@wtf/release-docs 8.2.1 → 8.2.2

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 (557) hide show
  1. package/README.md +56 -44
  2. package/api/@wtf/release-cargo/auth/functions/mask.md +1 -1
  3. package/api/@wtf/release-cargo/auth/functions/tokenVariableOf.md +1 -1
  4. package/api/@wtf/release-cargo/auth/functions/trustedPublishing.md +1 -1
  5. package/api/@wtf/release-cargo/auth/interfaces/HttpResponse.md +5 -5
  6. package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishing.md +5 -5
  7. package/api/@wtf/release-cargo/auth/interfaces/TrustedPublishingOptions.md +6 -6
  8. package/api/@wtf/release-cargo/auth/type-aliases/HttpFetch.md +1 -1
  9. package/api/@wtf/release-cargo/auth/variables/CRATES_IO_API.md +1 -1
  10. package/api/@wtf/release-cargo/auth/variables/ID_TOKEN_VARIABLE.md +1 -1
  11. package/api/@wtf/release-cargo/auth/variables/USER_AGENT.md +1 -1
  12. package/api/@wtf/release-cargo/crates/functions/publishOrder.md +1 -1
  13. package/api/@wtf/release-cargo/crates/functions/publishable.md +1 -1
  14. package/api/@wtf/release-cargo/crates/functions/readWorkspace.md +1 -1
  15. package/api/@wtf/release-cargo/crates/functions/selectCrates.md +1 -1
  16. package/api/@wtf/release-cargo/crates/interfaces/Selection.md +5 -5
  17. package/api/@wtf/release-cargo/ecosystem/functions/packagesAt.md +1 -1
  18. package/api/@wtf/release-cargo/ecosystem/functions/packagesOfTree.md +1 -1
  19. package/api/@wtf/release-cargo/ecosystem/functions/packagesOfWorkspace.md +1 -1
  20. package/api/@wtf/release-cargo/ecosystem/functions/resolveRequirement.md +1 -1
  21. package/api/@wtf/release-cargo/ecosystem/functions/satisfiesRequirement.md +1 -1
  22. package/api/@wtf/release-cargo/ecosystem/functions/semverRange.md +1 -1
  23. package/api/@wtf/release-cargo/ecosystem/interfaces/CargoPackage.md +7 -7
  24. package/api/@wtf/release-cargo/ecosystem/variables/cargoEcosystem.md +1 -1
  25. package/api/@wtf/release-cargo/errors/classes/CargoError.md +5 -5
  26. package/api/@wtf/release-cargo/errors/type-aliases/CargoErrorCode.md +1 -1
  27. package/api/@wtf/release-cargo/errors/variables/CARGO_ERRORS.md +1 -1
  28. package/api/@wtf/release-cargo/interfaces/Crate.md +6 -6
  29. package/api/@wtf/release-cargo/interfaces/CrateDependency.md +6 -6
  30. package/api/@wtf/release-cargo/interfaces/Workspace.md +3 -3
  31. package/api/@wtf/release-cargo/publish/functions/publishCrates.md +1 -1
  32. package/api/@wtf/release-cargo/publish/interfaces/PublishCratesOptions.md +11 -11
  33. package/api/@wtf/release-cargo/publish/interfaces/PublishedCrate.md +5 -5
  34. package/api/@wtf/release-cargo/publish/type-aliases/CrateStatus.md +1 -1
  35. package/api/@wtf/release-cargo/publish/variables/RECHECK_WAITS.md +1 -1
  36. package/api/@wtf/release-cargo/registry/functions/crateUrl.md +1 -1
  37. package/api/@wtf/release-cargo/registry/functions/indexHasVersion.md +1 -1
  38. package/api/@wtf/release-cargo/registry/functions/indexPath.md +1 -1
  39. package/api/@wtf/release-cargo/registry/variables/CRATES_IO_INDEX.md +1 -1
  40. package/api/@wtf/release-cargo/stamp/functions/checkVersions.md +1 -1
  41. package/api/@wtf/release-cargo/stamp/functions/inheritsVersion.md +1 -1
  42. package/api/@wtf/release-cargo/stamp/functions/stampManifest.md +1 -1
  43. package/api/@wtf/release-cargo/stamp/functions/stampWorkspace.md +1 -1
  44. package/api/@wtf/release-cargo/stamp/interfaces/StampOptions.md +4 -4
  45. package/api/@wtf/release-cargo/stamp/interfaces/Stamped.md +3 -3
  46. package/api/@wtf/release-cargo/stamp/interfaces/StampedWorkspace.md +3 -3
  47. package/api/@wtf/release-cargo/type-aliases/DependencyKind.md +1 -1
  48. package/api/@wtf/release-go/ecosystem/functions/packagesOfModules.md +1 -1
  49. package/api/@wtf/release-go/ecosystem/functions/packagesOfRepo.md +1 -1
  50. package/api/@wtf/release-go/ecosystem/functions/resolveVersion.md +1 -1
  51. package/api/@wtf/release-go/ecosystem/functions/satisfiesVersion.md +1 -1
  52. package/api/@wtf/release-go/ecosystem/interfaces/GoPackage.md +7 -7
  53. package/api/@wtf/release-go/ecosystem/variables/goEcosystem.md +1 -1
  54. package/api/@wtf/release-go/errors/classes/GoError.md +5 -5
  55. package/api/@wtf/release-go/errors/type-aliases/GoErrorCode.md +1 -1
  56. package/api/@wtf/release-go/errors/variables/GO_ERRORS.md +1 -1
  57. package/api/@wtf/release-go/gomod/functions/entriesOf.md +1 -1
  58. package/api/@wtf/release-go/gomod/functions/linesOf.md +1 -1
  59. package/api/@wtf/release-go/gomod/functions/readGoMod.md +1 -1
  60. package/api/@wtf/release-go/gomod/functions/tokensOf.md +1 -1
  61. package/api/@wtf/release-go/gomod/interfaces/Entry.md +4 -4
  62. package/api/@wtf/release-go/gomod/interfaces/GoMod.md +4 -4
  63. package/api/@wtf/release-go/gomod/interfaces/GoReplace.md +6 -6
  64. package/api/@wtf/release-go/gomod/interfaces/GoRequire.md +4 -4
  65. package/api/@wtf/release-go/gomod/interfaces/Token.md +5 -5
  66. package/api/@wtf/release-go/interfaces/GoModule.md +6 -6
  67. package/api/@wtf/release-go/modules/functions/isFetchable.md +1 -1
  68. package/api/@wtf/release-go/modules/functions/isGoMod.md +1 -1
  69. package/api/@wtf/release-go/modules/functions/majorErrors.md +1 -1
  70. package/api/@wtf/release-go/modules/functions/majorOfPath.md +1 -1
  71. package/api/@wtf/release-go/modules/functions/modulesAt.md +1 -1
  72. package/api/@wtf/release-go/modules/functions/modulesOf.md +1 -1
  73. package/api/@wtf/release-go/modules/functions/readModules.md +1 -1
  74. package/api/@wtf/release-go/modules/functions/selectModules.md +1 -1
  75. package/api/@wtf/release-go/modules/interfaces/Selection.md +4 -4
  76. package/api/@wtf/release-go/stamp/functions/checkVersions.md +1 -1
  77. package/api/@wtf/release-go/stamp/functions/stampGoMod.md +1 -1
  78. package/api/@wtf/release-go/stamp/functions/stampModules.md +1 -1
  79. package/api/@wtf/release-go/stamp/interfaces/Stamped.md +3 -3
  80. package/api/@wtf/release-go/stamp/interfaces/StampedModules.md +3 -3
  81. package/api/@wtf/release-go/tags/functions/askProxy.md +1 -1
  82. package/api/@wtf/release-go/tags/functions/maskCredentials.md +1 -1
  83. package/api/@wtf/release-go/tags/functions/releaseCommit.md +1 -1
  84. package/api/@wtf/release-go/tags/functions/remoteTags.md +1 -1
  85. package/api/@wtf/release-go/tags/functions/tagModules.md +1 -1
  86. package/api/@wtf/release-go/tags/functions/tagOfModule.md +1 -1
  87. package/api/@wtf/release-go/tags/functions/tagPrefix.md +1 -1
  88. package/api/@wtf/release-go/tags/interfaces/TagModulesOptions.md +8 -8
  89. package/api/@wtf/release-go/tags/interfaces/TaggedModule.md +5 -5
  90. package/api/@wtf/release-go/tags/type-aliases/ModuleStatus.md +1 -1
  91. package/api/@wtf/release-go/tags/variables/RELEASE_AUTHOR.md +1 -1
  92. package/api/@wtf/release-maven/artifacts/functions/groupIdOf.md +1 -1
  93. package/api/@wtf/release-maven/artifacts/functions/installsOf.md +1 -1
  94. package/api/@wtf/release-maven/artifacts/functions/isPomFile.md +1 -1
  95. package/api/@wtf/release-maven/artifacts/functions/isRange.md +1 -1
  96. package/api/@wtf/release-maven/artifacts/functions/modulesOf.md +1 -1
  97. package/api/@wtf/release-maven/artifacts/functions/nameOf.md +1 -1
  98. package/api/@wtf/release-maven/artifacts/functions/publishOrder.md +1 -1
  99. package/api/@wtf/release-maven/artifacts/functions/readModules.md +1 -1
  100. package/api/@wtf/release-maven/artifacts/functions/readPoms.md +1 -1
  101. package/api/@wtf/release-maven/artifacts/functions/selectArtifacts.md +1 -1
  102. package/api/@wtf/release-maven/artifacts/interfaces/Selection.md +4 -4
  103. package/api/@wtf/release-maven/ecosystem/functions/compareVersions.md +1 -1
  104. package/api/@wtf/release-maven/ecosystem/functions/parseRange.md +1 -1
  105. package/api/@wtf/release-maven/ecosystem/functions/resolveVersion.md +1 -1
  106. package/api/@wtf/release-maven/ecosystem/functions/satisfiesVersion.md +1 -1
  107. package/api/@wtf/release-maven/ecosystem/interfaces/Bound.md +3 -3
  108. package/api/@wtf/release-maven/ecosystem/interfaces/Restriction.md +3 -3
  109. package/api/@wtf/release-maven/ecosystem/variables/mavenEcosystem.md +1 -1
  110. package/api/@wtf/release-maven/errors/classes/MavenError.md +5 -5
  111. package/api/@wtf/release-maven/errors/type-aliases/MavenErrorCode.md +1 -1
  112. package/api/@wtf/release-maven/errors/variables/MAVEN_ERRORS.md +1 -1
  113. package/api/@wtf/release-maven/interfaces/MavenModule.md +14 -14
  114. package/api/@wtf/release-maven/pom/functions/childOf.md +1 -1
  115. package/api/@wtf/release-maven/pom/functions/childrenOf.md +1 -1
  116. package/api/@wtf/release-maven/pom/functions/dependencyOf.md +1 -1
  117. package/api/@wtf/release-maven/pom/functions/escapeXml.md +1 -1
  118. package/api/@wtf/release-maven/pom/functions/parseXml.md +1 -1
  119. package/api/@wtf/release-maven/pom/functions/readPom.md +1 -1
  120. package/api/@wtf/release-maven/pom/functions/textAt.md +1 -1
  121. package/api/@wtf/release-maven/pom/interfaces/Pom.md +15 -15
  122. package/api/@wtf/release-maven/pom/interfaces/PomDependency.md +5 -5
  123. package/api/@wtf/release-maven/pom/interfaces/PomParent.md +4 -4
  124. package/api/@wtf/release-maven/pom/interfaces/PomPlugin.md +5 -5
  125. package/api/@wtf/release-maven/pom/interfaces/PomRepository.md +3 -3
  126. package/api/@wtf/release-maven/pom/interfaces/Span.md +3 -3
  127. package/api/@wtf/release-maven/pom/interfaces/XmlElement.md +7 -7
  128. package/api/@wtf/release-maven/pom/variables/PLUGIN_GROUP.md +1 -1
  129. package/api/@wtf/release-maven/publish/functions/deployModules.md +1 -1
  130. package/api/@wtf/release-maven/publish/interfaces/DeployModulesOptions.md +11 -11
  131. package/api/@wtf/release-maven/publish/interfaces/DeployedModule.md +4 -4
  132. package/api/@wtf/release-maven/publish/type-aliases/ModuleStatus.md +1 -1
  133. package/api/@wtf/release-maven/repository/functions/deployTargets.md +1 -1
  134. package/api/@wtf/release-maven/repository/functions/expandValues.md +1 -1
  135. package/api/@wtf/release-maven/repository/functions/hasPom.md +1 -1
  136. package/api/@wtf/release-maven/repository/functions/pomPath.md +1 -1
  137. package/api/@wtf/release-maven/repository/functions/pomUrl.md +1 -1
  138. package/api/@wtf/release-maven/repository/interfaces/Repository.md +3 -3
  139. package/api/@wtf/release-maven/repository/interfaces/ValuesOf.md +3 -3
  140. package/api/@wtf/release-maven/repository/variables/MAVEN_CENTRAL.md +1 -1
  141. package/api/@wtf/release-maven/stamp/functions/checkVersions.md +1 -1
  142. package/api/@wtf/release-maven/stamp/functions/stampModules.md +1 -1
  143. package/api/@wtf/release-maven/stamp/functions/stampPom.md +1 -1
  144. package/api/@wtf/release-maven/stamp/interfaces/PomStampOptions.md +5 -5
  145. package/api/@wtf/release-maven/stamp/interfaces/Stamped.md +3 -3
  146. package/api/@wtf/release-maven/stamp/interfaces/StampedModules.md +3 -3
  147. package/api/@wtf/release-npm/check/functions/checkPackages.md +1 -1
  148. package/api/@wtf/release-npm/check/functions/formatIssue.md +1 -1
  149. package/api/@wtf/release-npm/check/interfaces/CheckOptions.md +6 -6
  150. package/api/@wtf/release-npm/check/interfaces/Issue.md +5 -5
  151. package/api/@wtf/release-npm/check/type-aliases/CheckedPackage.md +1 -1
  152. package/api/@wtf/release-npm/check/type-aliases/IssueCode.md +1 -1
  153. package/api/@wtf/release-npm/ecosystem/variables/npmEcosystem.md +1 -1
  154. package/api/@wtf/release-npm/errors/type-aliases/NpmErrorCode.md +1 -1
  155. package/api/@wtf/release-npm/errors/variables/NPM_ERRORS.md +1 -1
  156. package/api/@wtf/release-npm/interfaces/Lookup.md +3 -3
  157. package/api/@wtf/release-npm/interfaces/PublishOptions.md +6 -6
  158. package/api/@wtf/release-npm/interfaces/PublishPackage.md +5 -5
  159. package/api/@wtf/release-npm/interfaces/PublishTrainOptions.md +13 -13
  160. package/api/@wtf/release-npm/interfaces/Publisher.md +7 -7
  161. package/api/@wtf/release-npm/interfaces/PublisherContext.md +7 -7
  162. package/api/@wtf/release-npm/manifests/functions/concreteRange.md +1 -1
  163. package/api/@wtf/release-npm/manifests/functions/manifestsAt.md +1 -1
  164. package/api/@wtf/release-npm/manifests/functions/packageOf.md +1 -1
  165. package/api/@wtf/release-npm/manifests/functions/packagesOfManifests.md +1 -1
  166. package/api/@wtf/release-npm/manifests/functions/readManifests.md +1 -1
  167. package/api/@wtf/release-npm/manifests/functions/resolveSpecifier.md +1 -1
  168. package/api/@wtf/release-npm/manifests/functions/runtimeDependenciesOf.md +1 -1
  169. package/api/@wtf/release-npm/manifests/functions/satisfiesRange.md +1 -1
  170. package/api/@wtf/release-npm/manifests/interfaces/Manifest.md +5 -5
  171. package/api/@wtf/release-npm/manifests/interfaces/NpmPackage.md +7 -7
  172. package/api/@wtf/release-npm/manifests/type-aliases/DependencyField.md +1 -1
  173. package/api/@wtf/release-npm/manifests/variables/DEPENDENCY_FIELDS.md +1 -1
  174. package/api/@wtf/release-npm/manifests/variables/FIELD_KINDS.md +1 -1
  175. package/api/@wtf/release-npm/manifests/variables/RUNTIME_FIELDS.md +1 -1
  176. package/api/@wtf/release-npm/prepare/functions/isTypeScriptSource.md +1 -1
  177. package/api/@wtf/release-npm/prepare/functions/prepareManifest.md +1 -1
  178. package/api/@wtf/release-npm/prepare/functions/stripSourceConditions.md +1 -1
  179. package/api/@wtf/release-npm/prepare/interfaces/PrepareOptions.md +5 -5
  180. package/api/@wtf/release-npm/prepare/interfaces/PreparedManifest.md +6 -6
  181. package/api/@wtf/release-npm/prepare/variables/SOURCE_CONDITIONS.md +1 -1
  182. package/api/@wtf/release-npm/publishers/functions/builtInPublisher.md +1 -1
  183. package/api/@wtf/release-npm/publishers/functions/isPublisher.md +1 -1
  184. package/api/@wtf/release-npm/publishers/variables/NPM_REGISTRY.md +1 -1
  185. package/api/@wtf/release-npm/publishers/variables/PUBLISHERS.md +1 -1
  186. package/api/@wtf/release-npm/publishers/variables/npmPublisher.md +1 -1
  187. package/api/@wtf/release-npm/publishers/variables/pnpmPublisher.md +1 -1
  188. package/api/@wtf/release-npm/release/functions/checkTrain.md +1 -1
  189. package/api/@wtf/release-npm/release/functions/distTagOf.md +1 -1
  190. package/api/@wtf/release-npm/release/functions/packTrain.md +1 -1
  191. package/api/@wtf/release-npm/release/functions/publishPacked.md +1 -1
  192. package/api/@wtf/release-npm/release/functions/publishTrain.md +1 -1
  193. package/api/@wtf/release-npm/release/functions/publishedOf.md +1 -1
  194. package/api/@wtf/release-npm/release/functions/publishedOfResolved.md +1 -1
  195. package/api/@wtf/release-npm/release/functions/releaseTrain.md +1 -1
  196. package/api/@wtf/release-npm/release/functions/resolveManifests.md +1 -1
  197. package/api/@wtf/release-npm/release/functions/tagTrain.md +1 -1
  198. package/api/@wtf/release-npm/release/interfaces/CheckRelease.md +16 -16
  199. package/api/@wtf/release-npm/release/interfaces/PackOptions.md +8 -8
  200. package/api/@wtf/release-npm/release/interfaces/PackedTrain.md +12 -12
  201. package/api/@wtf/release-npm/release/interfaces/PublishRun.md +11 -11
  202. package/api/@wtf/release-npm/release/interfaces/PublishedOf.md +4 -4
  203. package/api/@wtf/release-npm/release/interfaces/PublishedPackage.md +7 -7
  204. package/api/@wtf/release-npm/release/interfaces/PublishedTrain.md +5 -5
  205. package/api/@wtf/release-npm/release/interfaces/ResolveRelease.md +17 -17
  206. package/api/@wtf/release-npm/release/interfaces/ResolvedPackage.md +4 -4
  207. package/api/@wtf/release-npm/release/interfaces/ResolvedTrain.md +6 -6
  208. package/api/@wtf/release-npm/release/interfaces/TagRelease.md +14 -14
  209. package/api/@wtf/release-npm/release/type-aliases/LookedUpTrain.md +1 -1
  210. package/api/@wtf/release-npm/release/type-aliases/ReleaseRun.md +1 -1
  211. package/api/@wtf/release-npm/release/variables/ID_TOKENS.md +1 -1
  212. package/api/@wtf/release-npm/release/variables/RUNNER_ENVIRONMENTS.md +1 -1
  213. package/api/@wtf/release-npm/workspace/functions/pnpmWorkspaceGlobs.md +1 -1
  214. package/api/@wtf/release-npm/workspace/functions/publishableOf.md +1 -1
  215. package/api/@wtf/release-npm/workspace/functions/readWorkspace.md +1 -1
  216. package/api/@wtf/release-npm/workspace/functions/workspaceFolders.md +1 -1
  217. package/api/@wtf/release-npm/workspace/functions/workspaceGlobs.md +1 -1
  218. package/api/@wtf/release-npm/workspace/interfaces/WorkspaceGlobs.md +3 -3
  219. package/api/@wtf/release-npm/workspace/interfaces/WorkspaceOptions.md +2 -2
  220. package/api/@wtf/release-replace/errors/classes/ReplaceError.md +5 -5
  221. package/api/@wtf/release-replace/errors/type-aliases/ReplaceErrorCode.md +1 -1
  222. package/api/@wtf/release-replace/errors/variables/REPLACE_ERRORS.md +1 -1
  223. package/api/@wtf/release-replace/files/functions/filesMatcher.md +1 -1
  224. package/api/@wtf/release-replace/interfaces/ReplaceMatch.md +5 -5
  225. package/api/@wtf/release-replace/interfaces/ReplacementOf.md +5 -5
  226. package/api/@wtf/release-replace/replace/functions/regExpOf.md +1 -1
  227. package/api/@wtf/release-replace/replace/functions/replaceFiles.md +1 -1
  228. package/api/@wtf/release-replace/replace/functions/replaceText.md +1 -1
  229. package/api/@wtf/release-replace/replace/interfaces/ReplaceOptions.md +10 -10
  230. package/api/@wtf/release-replace/replace/interfaces/TextOptions.md +5 -5
  231. package/api/@wtf/release-replace/replace/type-aliases/To.md +1 -1
  232. package/api/@wtf/release-replace/templates/functions/mergeTemplates.md +1 -1
  233. package/api/@wtf/release-replace/templates/functions/resolveReplacement.md +1 -1
  234. package/api/@wtf/release-replace/templates/functions/resolveReplacements.md +1 -1
  235. package/api/@wtf/release-replace/type-aliases/Escape.md +1 -1
  236. package/api/@wtf/release-replace/type-aliases/ReplaceFunction.md +1 -1
  237. package/api/@wtf/release-replace/type-aliases/Replacement.md +1 -1
  238. package/api/@wtf/release-replace/type-aliases/ReplacementSpec.md +1 -1
  239. package/api/@wtf/release-replace/type-aliases/TemplateUse.md +1 -1
  240. package/api/@wtf/release-replace/type-aliases/Templates.md +1 -1
  241. package/api/@wtf/release-replace/values/functions/escapeValue.md +1 -1
  242. package/api/@wtf/release-replace/values/functions/textOf.md +1 -1
  243. package/api/@wtf/release-replace/values/functions/valueAt.md +1 -1
  244. package/api/@wtf/release-replace/values/variables/ESCAPES.md +1 -1
  245. package/api/@wtf/release-replace/values/variables/VALUE.md +1 -1
  246. package/api/@wtf/release-system/errors/classes/ReleaseError.md +5 -5
  247. package/api/@wtf/release-system/errors/functions/throwAll.md +1 -1
  248. package/api/@wtf/release-system/errors/type-aliases/ErrorClass.md +1 -1
  249. package/api/@wtf/release-system/errors/type-aliases/SystemErrorCode.md +1 -1
  250. package/api/@wtf/release-system/errors/variables/SYSTEM_ERRORS.md +1 -1
  251. package/api/@wtf/release-system/git/functions/commitsSince.md +1 -1
  252. package/api/@wtf/release-system/git/functions/filesOfCommits.md +1 -1
  253. package/api/@wtf/release-system/git/functions/git.md +1 -1
  254. package/api/@wtf/release-system/git/functions/gitOf.md +1 -1
  255. package/api/@wtf/release-system/git/functions/trackedFiles.md +1 -1
  256. package/api/@wtf/release-system/git/interfaces/GitContext.md +4 -4
  257. package/api/@wtf/release-system/git/interfaces/LogCommit.md +5 -5
  258. package/api/@wtf/release-system/node/functions/nodeSystem.md +1 -1
  259. package/api/@wtf/release-system/node/functions/realPathOf.md +1 -1
  260. package/api/@wtf/release-system/node/functions/systemOf.md +1 -1
  261. package/api/@wtf/release-system/paths/functions/normalizePath.md +1 -1
  262. package/api/@wtf/release-system/paths/functions/pathMatcher.md +1 -1
  263. package/api/@wtf/release-system/paths/type-aliases/PathMatcher.md +1 -1
  264. package/api/@wtf/release-system/posix/functions/basenameOf.md +1 -1
  265. package/api/@wtf/release-system/posix/functions/dirnameOf.md +1 -1
  266. package/api/@wtf/release-system/posix/functions/joinPath.md +1 -1
  267. package/api/@wtf/release-system/posix/functions/relativePath.md +1 -1
  268. package/api/@wtf/release-system/posix/functions/resolvePath.md +1 -1
  269. package/api/@wtf/release-system/system/interfaces/DirEntry.md +3 -3
  270. package/api/@wtf/release-system/system/interfaces/ExecOptions.md +4 -4
  271. package/api/@wtf/release-system/system/interfaces/ExecResult.md +4 -4
  272. package/api/@wtf/release-system/system/interfaces/System.md +7 -7
  273. package/api/@wtf/release-system/system/interfaces/SystemFs.md +8 -8
  274. package/api/@wtf/release-system/system/type-aliases/Exec.md +1 -1
  275. package/api/@wtf/release-system/system/type-aliases/SystemInput.md +1 -1
  276. package/api/@wtf/release-system/validator/functions/allOf.md +1 -1
  277. package/api/@wtf/release-system/validator/functions/anyObject.md +1 -1
  278. package/api/@wtf/release-system/validator/functions/anyOf.md +1 -1
  279. package/api/@wtf/release-system/validator/functions/arrayOf.md +1 -1
  280. package/api/@wtf/release-system/validator/functions/booleanOf.md +1 -1
  281. package/api/@wtf/release-system/validator/functions/errorOf.md +1 -1
  282. package/api/@wtf/release-system/validator/functions/errorsOf.md +1 -1
  283. package/api/@wtf/release-system/validator/functions/exclusive.md +1 -1
  284. package/api/@wtf/release-system/validator/functions/issuesOf.md +1 -1
  285. package/api/@wtf/release-system/validator/functions/objectOf.md +1 -1
  286. package/api/@wtf/release-system/validator/functions/oneOf.md +1 -1
  287. package/api/@wtf/release-system/validator/functions/orFunction.md +1 -1
  288. package/api/@wtf/release-system/validator/functions/pathText.md +1 -1
  289. package/api/@wtf/release-system/validator/functions/pluginEntriesOf.md +1 -1
  290. package/api/@wtf/release-system/validator/functions/recordOf.md +1 -1
  291. package/api/@wtf/release-system/validator/functions/refined.md +1 -1
  292. package/api/@wtf/release-system/validator/functions/stringOf.md +1 -1
  293. package/api/@wtf/release-system/validator/functions/tupleOf.md +1 -1
  294. package/api/@wtf/release-system/validator/interfaces/ArrayOptions.md +5 -5
  295. package/api/@wtf/release-system/validator/interfaces/IssueOptions.md +4 -4
  296. package/api/@wtf/release-system/validator/interfaces/ObjectOptions.md +5 -5
  297. package/api/@wtf/release-system/validator/interfaces/OptionIssue.md +4 -4
  298. package/api/@wtf/release-system/validator/interfaces/Property.md +4 -4
  299. package/api/@wtf/release-system/validator/interfaces/RecordOptions.md +6 -6
  300. package/api/@wtf/release-system/validator/interfaces/StringOptions.md +6 -6
  301. package/api/@wtf/release-system/validator/interfaces/Validator.md +4 -4
  302. package/api/@wtf/release-system/validator/type-aliases/JsonSchema.md +1 -1
  303. package/api/@wtf/release-system/validator/type-aliases/Path.md +1 -1
  304. package/api/@wtf/release-trains/cascade/functions/cascadeNotes.md +1 -1
  305. package/api/@wtf/release-trains/cascade/functions/cascadeText.md +1 -1
  306. package/api/@wtf/release-trains/cascade/functions/cascadeType.md +1 -1
  307. package/api/@wtf/release-trains/cascade/functions/cascadesOf.md +1 -1
  308. package/api/@wtf/release-trains/cascade/functions/higherType.md +1 -1
  309. package/api/@wtf/release-trains/cascade/interfaces/Cascade.md +11 -11
  310. package/api/@wtf/release-trains/cascade/interfaces/CascadeCheck.md +8 -8
  311. package/api/@wtf/release-trains/cascade/type-aliases/CascadeKind.md +1 -1
  312. package/api/@wtf/release-trains/cascade/type-aliases/ReleaseType.md +1 -1
  313. package/api/@wtf/release-trains/cascade/variables/RELEASE_TYPES.md +1 -1
  314. package/api/@wtf/release-trains/ecosystem/functions/isEcosystem.md +1 -1
  315. package/api/@wtf/release-trains/ecosystem/functions/loadEcosystems.md +1 -1
  316. package/api/@wtf/release-trains/ecosystem/functions/readPackages.md +1 -1
  317. package/api/@wtf/release-trains/ecosystem/interfaces/Dependency.md +4 -4
  318. package/api/@wtf/release-trains/ecosystem/interfaces/Ecosystem.md +5 -5
  319. package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemContext.md +5 -5
  320. package/api/@wtf/release-trains/ecosystem/interfaces/EcosystemPackages.md +3 -3
  321. package/api/@wtf/release-trains/ecosystem/interfaces/Package.md +6 -6
  322. package/api/@wtf/release-trains/ecosystem/type-aliases/DependencyKind.md +1 -1
  323. package/api/@wtf/release-trains/ecosystem/type-aliases/ModuleLoader.md +1 -1
  324. package/api/@wtf/release-trains/ecosystem/variables/DEPENDENCY_KINDS.md +1 -1
  325. package/api/@wtf/release-trains/errors/classes/TrainsError.md +5 -5
  326. package/api/@wtf/release-trains/errors/type-aliases/TrainsErrorCode.md +1 -1
  327. package/api/@wtf/release-trains/errors/variables/TRAINS_ERRORS.md +1 -1
  328. package/api/@wtf/release-trains/generated/functions/filesIn.md +1 -1
  329. package/api/@wtf/release-trains/generated/functions/formatGenerated.md +1 -1
  330. package/api/@wtf/release-trains/generated/functions/listGenerated.md +1 -1
  331. package/api/@wtf/release-trains/generated/functions/parseGenerated.md +1 -1
  332. package/api/@wtf/release-trains/generated/functions/readGenerated.md +1 -1
  333. package/api/@wtf/release-trains/generated/functions/stageGenerated.md +1 -1
  334. package/api/@wtf/release-trains/generated/functions/stageGeneratedFolders.md +1 -1
  335. package/api/@wtf/release-trains/generated/functions/unlistedIn.md +1 -1
  336. package/api/@wtf/release-trains/generated/interfaces/GeneratedOptions.md +2 -2
  337. package/api/@wtf/release-trains/generated/interfaces/StageOptions.md +6 -6
  338. package/api/@wtf/release-trains/generated/variables/GENERATED.md +1 -1
  339. package/api/@wtf/release-trains/git/functions/tagOf.md +1 -1
  340. package/api/@wtf/release-trains/git/functions/tagsOf.md +1 -1
  341. package/api/@wtf/release-trains/git/functions/versionOfTag.md +1 -1
  342. package/api/@wtf/release-trains/git/interfaces/TrainTag.md +3 -3
  343. package/api/@wtf/release-trains/interfaces/Train.md +7 -7
  344. package/api/@wtf/release-trains/packages/functions/dependencyEdges.md +1 -1
  345. package/api/@wtf/release-trains/packages/functions/dependencyText.md +1 -1
  346. package/api/@wtf/release-trains/packages/functions/dependsOnErrors.md +1 -1
  347. package/api/@wtf/release-trains/packages/functions/normalizeDir.md +1 -1
  348. package/api/@wtf/release-trains/packages/functions/ownersOf.md +1 -1
  349. package/api/@wtf/release-trains/packages/functions/packagesOf.md +1 -1
  350. package/api/@wtf/release-trains/packages/functions/publishOrder.md +1 -1
  351. package/api/@wtf/release-trains/packages/functions/releasedVersions.md +1 -1
  352. package/api/@wtf/release-trains/packages/functions/trainDependencies.md +1 -1
  353. package/api/@wtf/release-trains/packages/functions/trainOrder.md +1 -1
  354. package/api/@wtf/release-trains/packages/functions/unsatisfiedErrors.md +1 -1
  355. package/api/@wtf/release-trains/packages/interfaces/DependencyEdge.md +6 -6
  356. package/api/@wtf/release-trains/packages/interfaces/OrderFault.md +4 -4
  357. package/api/@wtf/release-trains/packages/interfaces/OrderPins.md +3 -3
  358. package/api/@wtf/release-trains/packages/interfaces/PublishOrder.md +3 -3
  359. package/api/@wtf/release-trains/packages/interfaces/TrainDependency.md +3 -3
  360. package/api/@wtf/release-trains/packages/interfaces/VersionsRelease.md +7 -7
  361. package/api/@wtf/release-trains/paths/functions/filterCommits.md +1 -1
  362. package/api/@wtf/release-trains/paths/functions/gitFilesOf.md +1 -1
  363. package/api/@wtf/release-trains/paths/functions/overlapError.md +1 -1
  364. package/api/@wtf/release-trains/paths/functions/trainOfPath.md +1 -1
  365. package/api/@wtf/release-trains/paths/functions/trainsOfCommit.md +1 -1
  366. package/api/@wtf/release-trains/paths/functions/trainsOfPath.md +1 -1
  367. package/api/@wtf/release-trains/paths/type-aliases/FilesOf.md +1 -1
  368. package/api/@wtf/release-trains/schema/interfaces/ConfigPart.md +6 -6
  369. package/api/@wtf/release-trains/schema/interfaces/RootOptions.md +7 -7
  370. package/api/@wtf/release-trains/schema/type-aliases/DependencyRule.md +1 -1
  371. package/api/@wtf/release-trains/schema/variables/DEPENDENCY_RULES.md +1 -1
  372. package/api/@wtf/release-trains/schema/variables/TAG_FORMAT_PATTERN.md +1 -1
  373. package/api/@wtf/release-trains/schema/variables/TRAIN_NAME_PATTERN.md +1 -1
  374. package/api/@wtf/release-trains/schema/variables/configSchema.md +1 -1
  375. package/api/@wtf/release-trains/schema/variables/jsonSchema.md +1 -1
  376. package/api/@wtf/release-trains/schema/variables/rootOptionsSchema.md +1 -1
  377. package/api/@wtf/release-trains/schema/variables/trainSchema.md +1 -1
  378. package/api/@wtf/release-trains/schema/variables/trainsSchema.md +1 -1
  379. package/api/@wtf/release-trains/trains/functions/changelogOf.md +1 -1
  380. package/api/@wtf/release-trains/trains/functions/matchersOf.md +1 -1
  381. package/api/@wtf/release-trains/trains/functions/overlapErrors.md +1 -1
  382. package/api/@wtf/release-trains/trains/functions/selectTrain.md +1 -1
  383. package/api/@wtf/release-trains/trains/functions/tagFormatOf.md +1 -1
  384. package/api/@wtf/release-trains/trains/functions/trainHeadedNotes.md +1 -1
  385. package/api/@wtf/release-trains/trains/functions/trainOfRun.md +1 -1
  386. package/api/@wtf/release-trains/trains/functions/trainOfTag.md +1 -1
  387. package/api/@wtf/release-trains/trains/functions/trainsErrors.md +1 -1
  388. package/api/@wtf/release-trains/trains/functions/trainsOfOptions.md +1 -1
  389. package/api/@wtf/release-trains/trains/variables/TRAIN_VARIABLE.md +1 -1
  390. package/api/@wtf/release-trains/trains/variables/VERSION.md +1 -1
  391. package/api/@wtf/release-trains/type-aliases/BranchSpec.md +1 -1
  392. package/api/@wtf/release-trains/type-aliases/Trains.md +1 -1
  393. package/api/@wtf/release-trains/verify/functions/unreleasedDependencies.md +1 -1
  394. package/api/@wtf/release-trains/verify/functions/verifyTrain.md +1 -1
  395. package/api/@wtf/release-trains/verify/interfaces/UnreleasedDependencies.md +10 -10
  396. package/api/@wtf/release-trains/verify/interfaces/VerifiedTrain.md +5 -5
  397. package/api/@wtf/release-trains/verify/interfaces/VerifyRelease.md +8 -8
  398. package/api/@wtf/release-validate/errors/classes/ValidateError.md +5 -5
  399. package/api/@wtf/release-validate/errors/type-aliases/ValidateErrorCode.md +1 -1
  400. package/api/@wtf/release-validate/errors/variables/VALIDATE_ERRORS.md +1 -1
  401. package/api/@wtf/release-validate/interfaces/ConfigIssue.md +4 -4
  402. package/api/@wtf/release-validate/json-schema/functions/fromJsonSchema.md +1 -1
  403. package/api/@wtf/release-validate/json-schema/functions/pathOfPointer.md +1 -1
  404. package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaError.md +3 -3
  405. package/api/@wtf/release-validate/json-schema/interfaces/JsonSchemaValidator.md +3 -3
  406. package/api/@wtf/release-validate/validate/functions/configErrors.md +1 -1
  407. package/api/@wtf/release-validate/validate/functions/isStandardSchema.md +1 -1
  408. package/api/@wtf/release-validate/validate/functions/pathText.md +1 -1
  409. package/api/@wtf/release-validate/validate/functions/validateConfig.md +1 -1
  410. package/api/@wtf/semantic-release-cargo/functions/indexLookup.md +1 -1
  411. package/api/@wtf/semantic-release-cargo/functions/prepare.md +1 -1
  412. package/api/@wtf/semantic-release-cargo/functions/publish.md +1 -1
  413. package/api/@wtf/semantic-release-cargo/functions/verifyConditions.md +1 -1
  414. package/api/@wtf/semantic-release-cargo/interfaces/CargoPluginOptions.md +12 -12
  415. package/api/@wtf/semantic-release-cargo/interfaces/CargoRelease.md +3 -3
  416. package/api/@wtf/semantic-release-cargo/schema/type-aliases/CargoOptions.md +1 -1
  417. package/api/@wtf/semantic-release-cargo/schema/variables/cargoOptionsSchema.md +1 -1
  418. package/api/@wtf/semantic-release-cargo/schema/variables/cargoSchema.md +1 -1
  419. package/api/@wtf/semantic-release-cargo/schema/variables/configSchema.md +1 -1
  420. package/api/@wtf/semantic-release-cargo/schema/variables/jsonSchema.md +1 -1
  421. package/api/@wtf/semantic-release-cargo/variables/default.md +1 -1
  422. package/api/@wtf/semantic-release-go/functions/prepare.md +1 -1
  423. package/api/@wtf/semantic-release-go/functions/publish.md +1 -1
  424. package/api/@wtf/semantic-release-go/functions/verifyConditions.md +1 -1
  425. package/api/@wtf/semantic-release-go/functions/verifyRelease.md +1 -1
  426. package/api/@wtf/semantic-release-go/interfaces/GoPluginOptions.md +8 -8
  427. package/api/@wtf/semantic-release-go/interfaces/GoRelease.md +3 -3
  428. package/api/@wtf/semantic-release-go/schema/type-aliases/GoOptions.md +1 -1
  429. package/api/@wtf/semantic-release-go/schema/variables/configSchema.md +1 -1
  430. package/api/@wtf/semantic-release-go/schema/variables/goOptionsSchema.md +1 -1
  431. package/api/@wtf/semantic-release-go/schema/variables/goSchema.md +1 -1
  432. package/api/@wtf/semantic-release-go/schema/variables/jsonSchema.md +1 -1
  433. package/api/@wtf/semantic-release-go/variables/default.md +1 -1
  434. package/api/@wtf/semantic-release-maven/functions/pomLookup.md +1 -1
  435. package/api/@wtf/semantic-release-maven/functions/prepare.md +1 -1
  436. package/api/@wtf/semantic-release-maven/functions/publish.md +1 -1
  437. package/api/@wtf/semantic-release-maven/functions/verifyConditions.md +1 -1
  438. package/api/@wtf/semantic-release-maven/interfaces/LookupAuth.md +3 -3
  439. package/api/@wtf/semantic-release-maven/interfaces/MavenPluginOptions.md +12 -12
  440. package/api/@wtf/semantic-release-maven/interfaces/MavenRelease.md +2 -2
  441. package/api/@wtf/semantic-release-maven/schema/type-aliases/MavenOptions.md +1 -1
  442. package/api/@wtf/semantic-release-maven/schema/variables/configSchema.md +1 -1
  443. package/api/@wtf/semantic-release-maven/schema/variables/jsonSchema.md +1 -1
  444. package/api/@wtf/semantic-release-maven/schema/variables/mavenOptionsSchema.md +1 -1
  445. package/api/@wtf/semantic-release-maven/schema/variables/mavenSchema.md +1 -1
  446. package/api/@wtf/semantic-release-maven/variables/default.md +1 -1
  447. package/api/@wtf/semantic-release-npm/functions/addChannel.md +1 -1
  448. package/api/@wtf/semantic-release-npm/functions/fail.md +1 -1
  449. package/api/@wtf/semantic-release-npm/functions/loadPublisher.md +1 -1
  450. package/api/@wtf/semantic-release-npm/functions/prepare.md +1 -1
  451. package/api/@wtf/semantic-release-npm/functions/publish.md +1 -1
  452. package/api/@wtf/semantic-release-npm/functions/verifyConditions.md +1 -1
  453. package/api/@wtf/semantic-release-npm/interfaces/PublishPluginOptions.md +18 -18
  454. package/api/@wtf/semantic-release-npm/interfaces/PublishedRelease.md +4 -4
  455. package/api/@wtf/semantic-release-npm/interfaces/SmokeOption.md +2 -2
  456. package/api/@wtf/semantic-release-npm/schema/type-aliases/PublishOptions.md +1 -1
  457. package/api/@wtf/semantic-release-npm/schema/variables/configSchema.md +1 -1
  458. package/api/@wtf/semantic-release-npm/schema/variables/jsonSchema.md +1 -1
  459. package/api/@wtf/semantic-release-npm/schema/variables/publishOptionsSchema.md +1 -1
  460. package/api/@wtf/semantic-release-npm/schema/variables/publishSchema.md +1 -1
  461. package/api/@wtf/semantic-release-npm/type-aliases/PublisherSpec.md +1 -1
  462. package/api/@wtf/semantic-release-npm/variables/default.md +1 -1
  463. package/api/@wtf/semantic-release-replace/functions/functionOf.md +1 -1
  464. package/api/@wtf/semantic-release-replace/functions/prepare.md +1 -1
  465. package/api/@wtf/semantic-release-replace/functions/templatesOf.md +1 -1
  466. package/api/@wtf/semantic-release-replace/functions/verifyConditions.md +1 -1
  467. package/api/@wtf/semantic-release-replace/interfaces/ReplacePluginOptions.md +5 -5
  468. package/api/@wtf/semantic-release-replace/schema/interfaces/ModuleExport.md +3 -3
  469. package/api/@wtf/semantic-release-replace/schema/interfaces/ReplaceOptions.md +4 -4
  470. package/api/@wtf/semantic-release-replace/schema/interfaces/RootTemplates.md +2 -2
  471. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacement.md +1 -1
  472. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginReplacementSpec.md +1 -1
  473. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTemplates.md +1 -1
  474. package/api/@wtf/semantic-release-replace/schema/type-aliases/PluginTo.md +1 -1
  475. package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplateSet.md +1 -1
  476. package/api/@wtf/semantic-release-replace/schema/type-aliases/TemplatesOption.md +1 -1
  477. package/api/@wtf/semantic-release-replace/schema/variables/configSchema.md +1 -1
  478. package/api/@wtf/semantic-release-replace/schema/variables/exportedSetSchema.md +1 -1
  479. package/api/@wtf/semantic-release-replace/schema/variables/jsonSchema.md +1 -1
  480. package/api/@wtf/semantic-release-replace/schema/variables/replaceOptionsSchema.md +1 -1
  481. package/api/@wtf/semantic-release-replace/schema/variables/replacementSchema.md +1 -1
  482. package/api/@wtf/semantic-release-replace/schema/variables/rootTemplatesSchema.md +1 -1
  483. package/api/@wtf/semantic-release-replace/schema/variables/templateSchema.md +1 -1
  484. package/api/@wtf/semantic-release-replace/schema/variables/templatesSchema.md +1 -1
  485. package/api/@wtf/semantic-release-replace/variables/default.md +1 -1
  486. package/api/@wtf/semantic-release-trains/config/functions/skipPlugins.md +1 -1
  487. package/api/@wtf/semantic-release-trains/config/functions/stepId.md +1 -1
  488. package/api/@wtf/semantic-release-trains/config/functions/trainAssets.md +1 -1
  489. package/api/@wtf/semantic-release-trains/config/functions/trainChangelog.md +1 -1
  490. package/api/@wtf/semantic-release-trains/config/functions/trainOfTag.md +1 -1
  491. package/api/@wtf/semantic-release-trains/config/functions/trainTagFormat.md +1 -1
  492. package/api/@wtf/semantic-release-trains/config/interfaces/AssetsOptions.md +4 -4
  493. package/api/@wtf/semantic-release-trains/config/interfaces/SkipOptions.md +3 -3
  494. package/api/@wtf/semantic-release-trains/config/variables/BRANCHES.md +1 -1
  495. package/api/@wtf/semantic-release-trains/config/variables/BREAKING.md +1 -1
  496. package/api/@wtf/semantic-release-trains/config/variables/TITLE.md +1 -1
  497. package/api/@wtf/semantic-release-trains/defaults/functions/skipRuleOf.md +1 -1
  498. package/api/@wtf/semantic-release-trains/defaults/functions/skips.md +1 -1
  499. package/api/@wtf/semantic-release-trains/defaults/functions/trainOptionsOf.md +1 -1
  500. package/api/@wtf/semantic-release-trains/defaults/interfaces/SkipContext.md +5 -5
  501. package/api/@wtf/semantic-release-trains/defaults/type-aliases/SkipCheck.md +1 -1
  502. package/api/@wtf/semantic-release-trains/defaults/type-aliases/TrainOptions.md +1 -1
  503. package/api/@wtf/semantic-release-trains/defaults/variables/SKIP_RULES.md +1 -1
  504. package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_OPTIONS.md +1 -1
  505. package/api/@wtf/semantic-release-trains/defaults/variables/TRAIN_SKIP.md +1 -1
  506. package/api/@wtf/semantic-release-trains/errors/type-aliases/PluginErrorCode.md +1 -1
  507. package/api/@wtf/semantic-release-trains/errors/variables/PLUGIN_ERRORS.md +1 -1
  508. package/api/@wtf/semantic-release-trains/info/functions/decideTrain.md +1 -1
  509. package/api/@wtf/semantic-release-trains/info/functions/dotenvOf.md +1 -1
  510. package/api/@wtf/semantic-release-trains/info/functions/infoOf.md +1 -1
  511. package/api/@wtf/semantic-release-trains/info/interfaces/DecideRun.md +4 -4
  512. package/api/@wtf/semantic-release-trains/info/interfaces/InfoRun.md +8 -8
  513. package/api/@wtf/semantic-release-trains/info/interfaces/TrainDecision.md +5 -5
  514. package/api/@wtf/semantic-release-trains/info/interfaces/TrainInfo.md +5 -5
  515. package/api/@wtf/semantic-release-trains/interfaces/TrainsEntryOptions.md +5 -5
  516. package/api/@wtf/semantic-release-trains/interfaces/TrainsOptions.md +7 -7
  517. package/api/@wtf/semantic-release-trains/schema/variables/configSchema.md +1 -1
  518. package/api/@wtf/semantic-release-trains/schema/variables/jsonSchema.md +1 -1
  519. package/api/@wtf/semantic-release-trains/schema/variables/pluginSpecSchema.md +1 -1
  520. package/api/@wtf/semantic-release-trains/schema/variables/skipRuleSchema.md +1 -1
  521. package/api/@wtf/semantic-release-trains/schema/variables/trainsEntrySchema.md +1 -1
  522. package/api/@wtf/semantic-release-trains/schema/variables/trainsPluginSchema.md +1 -1
  523. package/api/@wtf/semantic-release-trains/type-aliases/PluginSpec.md +1 -1
  524. package/api/@wtf/semantic-release-trains/type-aliases/TrainsPluginOptions.md +1 -1
  525. package/api/@wtf/semantic-release-trains/variables/addChannel.md +1 -1
  526. package/api/@wtf/semantic-release-trains/variables/analyzeCommits.md +1 -1
  527. package/api/@wtf/semantic-release-trains/variables/default.md +1 -1
  528. package/api/@wtf/semantic-release-trains/variables/fail.md +1 -1
  529. package/api/@wtf/semantic-release-trains/variables/generateNotes.md +1 -1
  530. package/api/@wtf/semantic-release-trains/variables/prepare.md +1 -1
  531. package/api/@wtf/semantic-release-trains/variables/publish.md +1 -1
  532. package/api/@wtf/semantic-release-trains/variables/success.md +1 -1
  533. package/api/@wtf/semantic-release-trains/variables/verifyConditions.md +1 -1
  534. package/api/@wtf/semantic-release-trains/variables/verifyRelease.md +1 -1
  535. package/api/@wtf/semantic-release-validate/functions/configOf.md +1 -1
  536. package/api/@wtf/semantic-release-validate/functions/loadSchema.md +1 -1
  537. package/api/@wtf/semantic-release-validate/functions/verifyConditions.md +1 -1
  538. package/api/@wtf/semantic-release-validate/interfaces/ValidatePluginOptions.md +2 -2
  539. package/api/@wtf/semantic-release-validate/schema/interfaces/Validator.md +2 -2
  540. package/api/@wtf/semantic-release-validate/schema/variables/configSchema.md +1 -1
  541. package/api/@wtf/semantic-release-validate/schema/variables/jsonSchema.md +1 -1
  542. package/api/@wtf/semantic-release-validate/schema/variables/validateOptionsSchema.md +1 -1
  543. package/api/@wtf/semantic-release-validate/variables/default.md +1 -1
  544. package/guides/changelogs.md +39 -28
  545. package/guides/ci-recipes.md +393 -271
  546. package/guides/configuring-trains.md +291 -203
  547. package/guides/dependency-rules.md +171 -113
  548. package/guides/ecosystems.md +222 -156
  549. package/guides/getting-started.md +135 -69
  550. package/guides/publishing-crates.md +208 -143
  551. package/guides/publishing-go-modules.md +170 -110
  552. package/guides/publishing-maven.md +197 -123
  553. package/guides/publishing.md +278 -191
  554. package/guides/system.md +50 -34
  555. package/guides/troubleshooting.md +358 -92
  556. package/guides/validating-a-config.md +68 -49
  557. package/package.json +1 -1
@@ -1,9 +1,13 @@
1
- # Configuring trains
1
+ # Configure trains
2
2
 
3
- ## A train
3
+ This page covers every option of a train, how the trains decide which commits count, and how to
4
+ write the config that runs them. If you are new to trains, read
5
+ [Getting started](getting-started.md) first.
4
6
 
5
- Each train is a key of the trains object. The key is the name of the train, and it is part of the
6
- tags of the train:
7
+ ## Declare a train
8
+
9
+ Each key of the `trains` object declares a train. The key is the train's name, and it is part of
10
+ the train's tags:
7
11
 
8
12
  ```ts
9
13
  import type { Trains } from '@wtf/release-trains'
@@ -42,73 +46,87 @@ export const trains: Trains = {
42
46
  }
43
47
  ```
44
48
 
45
- | Field | Default | What it is |
46
- | ----------- | --------------------------- | -------------------------------------------------------------------- |
47
- | `paths` | (required) | Folders or globs. A file is the train's when it is under one. |
48
- | `shared` | none | Files or folders outside the train that count for it too: see below. |
49
- | `tagFormat` | `<train>-v${version}` | The tags of the train. It contains `${version}` exactly once. |
50
- | `changelog` | `<first path>/CHANGELOG.md` | The changelog of the train, or `false`. |
51
- | `generated` | none | Folders that the build writes, committed by the release. |
52
- | `dependsOn` | none | Trains this train releases after, besides those its packages list. |
49
+ | Field | Default | What it does |
50
+ | ----------- | --------------------------- | --------------------------------------------------------------------------------- |
51
+ | `paths` | (required) | Folders or globs. A file belongs to the train when it is under one of them. |
52
+ | `shared` | none | Files or folders outside the train that also count for it. See below. |
53
+ | `tagFormat` | `<train>-v${version}` | The train's tags. It must contain `${version}` exactly once. |
54
+ | `changelog` | `<first path>/CHANGELOG.md` | The train's changelog, or `false` for none. |
55
+ | `generated` | none | Folders that the build writes. The release commits them. |
56
+ | `dependsOn` | none | Trains that this train releases after, besides the trains its packages depend on. |
53
57
 
54
- The types of a train are of `@wtf/release-trains`, the library, which has no dependency on
58
+ The `Trains` type comes from the library `@wtf/release-trains`, which does not depend on
55
59
  semantic-release.
56
60
 
57
- ### Dependencies between trains
61
+ ### Order trains by their dependencies
62
+
63
+ A train depends on another train when one of its packages depends on a package in the other train.
64
+ Every kind of dependency counts except a dev dependency:
65
+
66
+ - In a `package.json`: `dependencies`, `peerDependencies` and `optionalDependencies`.
67
+ - In a `Cargo.toml`: normal dependencies and build dependencies.
68
+
69
+ A dev dependency does not order trains, because no user installs it.
70
+
71
+ Let the manifests order the trains whenever a train installs a package of the other train. Name a
72
+ train in `dependsOn` when your train must release after it but installs none of its packages. A
73
+ docs train is an example: its reference shows the release of the trains it documents, but it lists
74
+ their packages only in its `devDependencies`.
75
+
76
+ A manifest dependency and a `dependsOn` entry count the same, both for the `dependencies` rule and
77
+ for the order of the trains. Only a range in a manifest requires a version.
78
+
79
+ A train also releases when a dependency train releases a version outside a range that the train's
80
+ last release published. The root option `cascade` controls this, and it is `true` by default. See
81
+ [Trains that depend on other trains](dependency-rules.md).
58
82
 
59
- A train depends on another train when one of its packages depends on a package of the other train,
60
- by any kind but `dev`: a `dependency`, a `peerDependency` or an `optionalDependency` of its
61
- `package.json`, or a normal or a build dependency of its `Cargo.toml`. A devDependency orders no
62
- train, as no user installs it. Use that whenever the train installs the other train's package. Name
63
- a train in `dependsOn` when the train must release after it, and installs none of its packages, as a
64
- docs train whose reference shows the release of the trains it documents and lists their packages of
65
- its devDependencies alone. Both count the same for the rule `dependencies` and for the order of the
66
- trains. Only a range of a manifest requires a version. A train also releases when a dependency train releases a version outside a range that its
67
- last release published, by the option `cascade` of the root, `true` by default. See
68
- [Dependency rules](dependency-rules.md).
83
+ ### Choose the files of a train
69
84
 
70
- ### Paths and globs
85
+ A folder holds every file under it. `packages/release-trains` holds
86
+ `packages/release-trains/src/index.ts`, but not `packages/release-npm/src/index.ts`.
71
87
 
72
- A folder holds every file under it: `packages/release-trains` holds
73
- `packages/release-trains/src/index.ts`, and not `packages/release-npm/src/index.ts`. A
74
- glob holds each file that it matches, and every file under each folder that it matches:
75
- `packages/release-trains-*` holds `packages/release-npm/src/index.ts`. `.` holds every
76
- file of the repo.
88
+ A glob holds each file that it matches, and every file under each folder that it matches.
89
+ `packages/release-trains-*` holds `packages/release-trains-extra/src/index.ts`. `.` holds every
90
+ file in the repo.
77
91
 
78
- A file belongs to one train only. The run fails with `ETRAINOVERLAP` when the paths of two trains
79
- hold the same file. A file that more than one train builds with, such as the lockfile, goes in the
80
- `shared` of each of those trains.
92
+ A file belongs to one train only. When the paths of two trains hold the same file, the run fails
93
+ with `ETRAINOVERLAP`. If several trains build with one file, such as the lockfile, put that file in
94
+ the `shared` of each of those trains.
81
95
 
82
96
  ### Which commits count
83
97
 
84
- The trains plugin reads the files of each commit with `git diff-tree`. A file under the `paths` of a
85
- train is that train's own file. A commit counts for a train by its files:
98
+ The trains plugin reads the files of each commit with `git diff-tree`. A file under a train's
99
+ `paths` is one of that train's own files. A commit counts for a train by the files it changes:
86
100
 
87
- - A commit that changes the own files of one or more trains counts for each of those trains, and
88
- for each train whose `shared` holds one of those files, as a docs train that shares the paths of
89
- the trains it documents. The other files that it changes, as the lockfile or the root
90
- `package.json`, count for no further train.
91
- - A commit that changes the own files of no train, as a commit of the lockfile alone, counts for
101
+ - If the commit changes the own files of one or more trains, it counts for each of those trains. It
102
+ also counts for each train whose `shared` holds one of those files, such as a docs train that
103
+ shares the paths of the trains it documents. The other files it changes, such as the lockfile or
104
+ the root `package.json`, add no further train.
105
+ - If the commit changes no train's own files, such as a commit of the lockfile alone, it counts for
92
106
  each train whose `shared` holds one of its files.
93
107
 
94
108
  A commit that changes the files of two trains counts for both, and appears in the notes of both. A
95
- merge commit counts for the files that it brings into its branch, which are its changes against its
109
+ merge commit counts for the files it brings into its branch, which are its changes against its
96
110
  first parent.
97
111
 
98
- So a breaking change in train `trains` makes a major release of `trains` only. A `feat` of train
99
- `replace` that adds a dependency, and so changes the lockfile too, releases `replace`, and not each
100
- train that lists the lockfile in its `shared`. A `fix` of the lockfile alone releases each train
101
- that lists the lockfile in its `shared`, and no other train.
112
+ Some examples:
113
+
114
+ - A breaking change in train `trains` makes a major release of `trains` only.
115
+ - A `feat` in train `replace` that adds a dependency also changes the lockfile. It releases
116
+ `replace`, but not each train that lists the lockfile in its `shared`.
117
+ - A `fix` of the lockfile alone releases each train that lists the lockfile in its `shared`, and no
118
+ other train.
102
119
 
103
120
  ### Generated folders
104
121
 
105
- A folder in `generated`, such as an API reference that a build writes, is committed with the
106
- release, and a page that the build no longer writes leaves git. The build lists what it wrote, in
107
- the folder's `.generated`, and an entry of `@wtf/semantic-release-trains` of `generated: true`
108
- stages the folder from that list in `prepare`: every file of it unstaged, each one the list names staged, though git
109
- ignores the folder, and each other removed. This matters when the release job gets the build of
110
- another job, because unpacking that build over the checkout leaves the pages of the last release.
111
- At the end of the build, after it wrote the folder in full:
122
+ Use `generated` when a build writes a folder that the release must commit, such as an API
123
+ reference. The release commits the folder, and a page that the build no longer writes leaves git.
124
+
125
+ This matters when the release job gets its build from another job. Unpacking that build over the
126
+ checkout adds the new pages, but it also leaves the pages of the last release in place.
127
+
128
+ So the build lists what it wrote, in the folder's `.generated` file. Call `listGenerated` at the end
129
+ of the build, after the build has written the folder in full:
112
130
 
113
131
  ```ts
114
132
  import { nodeSystem } from '@wtf/release-system/node'
@@ -118,8 +136,15 @@ const system = nodeSystem()
118
136
  await listGenerated(system.cwd, 'packages/docs/api', { system })
119
137
  ```
120
138
 
121
- With no list, the entry stages the folder as it is, deletions too. Its folders are the `generated`
122
- of the train of the run:
139
+ In `prepare`, an entry of `@wtf/semantic-release-trains` with `generated: true` stages the folder
140
+ from that list:
141
+
142
+ 1. It unstages every file in the folder.
143
+ 2. It stages each file that the list names, even when git ignores the folder.
144
+ 3. It removes every other file.
145
+
146
+ Without a list, the entry stages the folder as it is, deletions included. The entry stages the
147
+ `generated` folders of the run's train:
123
148
 
124
149
  ```js train=docs
125
150
  // release.config.mjs
@@ -137,36 +162,52 @@ export default {
137
162
  }
138
163
  ```
139
164
 
140
- List it after the build that writes the folders, and before `@semantic-release/git`, which then
141
- commits what it staged. An entry has one role: `generated` beside `wrap` fails with `EOPTIONS`.
165
+ List the entry after the build that writes the folders, and before `@semantic-release/git`, which
166
+ then commits what the entry staged. Each entry has one role: `generated` together with `wrap` fails
167
+ with `EOPTIONS`.
142
168
 
143
169
  ### Replacements
144
170
 
145
- A version written into a file of the repo, as the badge of shields.io of a README, is wrong from the
146
- next release, and nothing fails then. The plugin `@wtf/semantic-release-replace` replaces text in
147
- files in `prepare`, of no train: each match of each of its `replacements`, in each file of its
148
- `files`. Its options, each JSON:
149
-
150
- | Option | What it is |
151
- | -------------- | ----------------------------------------------------------------------------------------------------- |
152
- | `files` | Paths, globs and negations, in order, from the root, of the files git tracks: required |
153
- | `replacements` | Each `{ from, flags, to, escape }`, or of a template, `{ template, … }` or its name alone: required |
154
- | `templates` | Replacements by name: a set, or sets merged in order; at the root of the config too, under an entry's |
155
-
156
- `files` holds, of a path, the file, or each file under the folder; of a glob, each file it matches,
157
- `*` and `?` within a name, `**` across folders, `[…]` a class, `[^…]` one not of it, and `{a,b}`
158
- each of a list; an entry of `!` first leaves out what it matches of what the entries before it hold.
159
- A replacement replaces each match of `from`, the source of a RegExp, of its `flags` but `g`, by
160
- `to`: a text of `$1` each group of the match and `${nextRelease.version}` each value of the context
161
- of the release by its dotted path, as the message of `@semantic-release/git` writes one, each value
162
- as `escape` writes it, `none`, the default, `shields`, each `-` and `_` doubled, as the text of a
163
- badge of shields.io takes them, or `url`; or the function of a module, `{ module, export }`.
164
-
165
- A template is a replacement of a name, defined once in `templates`, at the root of the config,
166
- which semantic-release gives every plugin, or of an entry, whose own are over the root's of the same
167
- name. A replacement names it, alone, as `"badge"`, or with options over the template's own, as
168
- `{ "template": "badge", "escape": "none" }`; a name of no template fails the run before it releases,
169
- with `ETEMPLATE`, naming those there are. The badge of the version, as a config defines it:
171
+ Use `@wtf/semantic-release-replace` to keep a version that is written in a file up to date, such as
172
+ the version in a shields.io badge of a README. Without it, that version is wrong from the next
173
+ release on, and nothing fails.
174
+
175
+ The plugin replaces text in files in `prepare`. It does not depend on the train. It replaces each
176
+ match of each of its `replacements` in each file of its `files`. All of its options are JSON:
177
+
178
+ | Option | What it does |
179
+ | -------------- | -------------------------------------------------------------------------------------------------------------------- |
180
+ | `files` | Required. Paths, globs and negations, applied in order, from the root, to the files that git tracks. |
181
+ | `replacements` | Required. Each one is `{ from, flags, to, escape }`, or a template: `{ template, … }`, or the template's name alone. |
182
+ | `templates` | Replacements by name: one set, or several sets merged in order. Also allowed at the root of the config. |
183
+
184
+ Each entry of `files` selects files:
185
+
186
+ - A path selects the file, or each file under the folder.
187
+ - A glob selects each file it matches. `*` and `?` match within a name, `**` matches across
188
+ folders, `[…]` matches one character of a class, `[^…]` one character outside it, and `{a,b}`
189
+ each item of a list.
190
+ - An entry that starts with `!` leaves out what it matches from what the entries before it
191
+ selected.
192
+
193
+ A replacement replaces each match of `from` by `to`:
194
+
195
+ - `from` is the source of a RegExp. `flags` holds its flags; the plugin always adds `g`, so leave
196
+ `g` out.
197
+ - In `to`, `$1` stands for a group of the match. `${nextRelease.version}` stands for a value of the
198
+ release context, by its dotted path, in the same syntax as the message of `@semantic-release/git`.
199
+ - `escape` sets how each context value is written: `none` (the default) as it is, `shields` with
200
+ each `-` and `_` doubled as a shields.io badge needs them, or `url`.
201
+ - `to` can also name the function of a module instead of a text: `{ module, export }`.
202
+
203
+ A template is a replacement with a name. You define it once in `templates`, either at the root of
204
+ the config, which semantic-release gives every plugin, or in an entry. An entry's own templates
205
+ override the root's templates of the same name.
206
+
207
+ A replacement names a template alone, as `"badge"`, or with options that override the template's
208
+ own, as `{ "template": "badge", "escape": "none" }`. A name that no template has fails the run with
209
+ `ETEMPLATE` before it releases, and the error lists the templates that exist. This config defines
210
+ the version badge:
170
211
 
171
212
  ```json
172
213
  {
@@ -193,12 +234,17 @@ with `ETEMPLATE`, naming those there are. The badge of the version, as a config
193
234
  }
194
235
  ```
195
236
 
196
- A package shares templates, as the badge of the version, which each repo would else write again.
197
- `templates` is a set, or an array of sets merged in order, each over those before it by name. A set
198
- is a map of each template by its name, a replacement or the export of a module that is one; or the
199
- export of a module that is a set, each of whose templates comes in under its own name. A module is
200
- named as a function is, `{ module, export }`, `default` by default, as of a package of templates this
201
- repo does not have, `@wtf/replace-shields`:
237
+ A package can share templates, such as the version badge, so that each repo does not write them
238
+ again. `templates` is one set, or an array of sets merged in order. Each set overrides the sets
239
+ before it by name. A set can be:
240
+
241
+ - A map of templates by name. Each template is a replacement, or the export of a module that is
242
+ one.
243
+ - The export of a module that is a set. Each of its templates keeps its own name.
244
+
245
+ You name a module the same way as a function: `{ module, export }`, where `export` is `default` by
246
+ default. This example uses `@wtf/replace-shields`, a package of templates that this repo does not
247
+ have:
202
248
 
203
249
  ```json
204
250
  {
@@ -216,28 +262,37 @@ repo does not have, `@wtf/replace-shields`:
216
262
  }
217
263
  ```
218
264
 
219
- The plugin imports each in `verifyConditions`: `EREPLACEMODULE` of a module it cannot load, or of
220
- no such export; `ETEMPLATE` of an export of no replacement, or of no set. It takes a package of the
221
- repo's, a devDependency; else one installed beside it, of a global install of semantic-release, as
222
- the semantic-release component of to-be-continuous makes one: list the package in its
223
- `semrel-required-plugins.txt` (see [CI recipes](ci-recipes.md)).
224
-
225
- List it before `@semantic-release/git`, whose `assets` hold the files it replaces:
226
- `trainAssets(trains, train, { replaced: 'README.md' })` lists the README.md of each folder of the
227
- train, as `` `packages/*-${train}/README.md` `` does in [a config of literals](#a-config-of-literals)
228
- of these trains. The release commit then
229
- commits each, and the packages are packed of it, of their READMEs replaced. See
265
+ The plugin imports each module in `verifyConditions`. It fails with:
266
+
267
+ - `EREPLACEMODULE` when it cannot load a module, or the module has no such export.
268
+ - `ETEMPLATE` when an export is not a replacement, or not a set.
269
+
270
+ It loads a package that the repo installs, as a devDependency. Otherwise it loads one that is
271
+ installed beside the plugin, as in a global install of semantic-release. The semantic-release
272
+ component of to-be-continuous makes such an install: list the package in its
273
+ `semrel-required-plugins.txt` (see [Run releases in CI](ci-recipes.md)).
274
+
275
+ List the plugin before `@semantic-release/git`, and put the files it replaces in the git plugin's
276
+ `assets`. `trainAssets(trains, train, { replaced: 'README.md' })` lists the README.md of each
277
+ folder of the train. In [a config of literals](#a-config-of-literals) of these trains,
278
+ `` `packages/*-${train}/README.md` `` does the same. The release commit then commits each README,
279
+ and the packages are packed with their replaced READMEs. See
230
280
  [`@wtf/semantic-release-replace`](../../semantic-release-replace/README.md).
231
281
 
232
- ## The config
282
+ ## Write the config
233
283
 
234
- `release.config.mjs` is yours: the plugins, their options and their order. The plugins of the trains
235
- read `trains` and `ecosystems` of the root, which semantic-release gives every plugin, and the train
236
- of the run of `RELEASE_TRAIN` of its environment, as a plugin of semantic-release reads a variable
237
- of its own. `ecosystems` is required: the name of the module of each ecosystem of the repo, whose
238
- packages the trains read, as `@wtf/release-npm` of each `package.json`. Each is loaded of the repo,
239
- as an entry of `wrap` loads the plugin it wraps, by its name, its path from the repo, or its `file:`
240
- URL; one that cannot be loaded, or whose default export is no ecosystem, fails with `EECOSYSTEM`:
284
+ `release.config.mjs` is yours: you choose the plugins, their options and their order. The trains
285
+ plugins read these values:
286
+
287
+ - `trains` and `ecosystems` from the root of the config, which semantic-release gives every plugin.
288
+ - The run's train from `RELEASE_TRAIN` in the run's environment, the same way any semantic-release
289
+ plugin reads a variable of its own.
290
+
291
+ `ecosystems` is required. It names the module of each ecosystem in the repo, and the trains read
292
+ the packages through it. For example, `@wtf/release-npm` reads each `package.json`. Each module is
293
+ loaded from the repo, the same way a `wrap` entry loads the plugin it wraps: by its name, its path
294
+ from the repo, or its `file:` URL. A module that cannot be loaded, or whose default export is not
295
+ an ecosystem, fails with `EECOSYSTEM`:
241
296
 
242
297
  ```js train=trains
243
298
  // release.config.mjs
@@ -298,58 +353,70 @@ export default {
298
353
  }
299
354
  ```
300
355
 
301
- The values of `@wtf/semantic-release-trains/config`:
302
-
303
- | Value | What it is |
304
- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
305
- | `trainTagFormat(trains, train)` | The tag format of the train, for `tagFormat`. The trains plugin fails with `ETAGFORMAT` of another. |
306
- | `trainChangelog(trains, train)` | The changelog of the train, for `trainChangelog` of the changelog plugin, or `changelogFile` of `@semantic-release/changelog`. |
307
- | `trainAssets(trains, train, options)` | The `assets` of `@semantic-release/git`: the changelogs, the files replaced (`replaced`), and the generated folders. |
308
- | `trainOfTag(trains, tag)` | The train whose tag format names a tag, as of `RELEASE_TAG` of the run of a tag: see [CI recipes](ci-recipes.md). |
309
- | `skipPlugins(plugins, pattern, opts)` | The entries of `plugins` but those a pattern of their step ids matches, as a job leaves out a step: see [CI recipes](ci-recipes.md). |
310
- | `BRANCHES` | `main`, and `rc`, `pre`, `beta` and `alpha` as prereleases. |
311
- | `BREAKING` | The parser options that read `type!:` as a breaking change, for the root. |
312
-
313
- These values are for a config that imports them, of a repo that installs the plugins. A config that
314
- a global install of semantic-release reads, as the semantic-release component of to-be-continuous
315
- reads one, imports nothing of them: see [A config of literals](#a-config-of-literals).
316
-
317
- The order of `plugins` is the order of each step. Of `prepare`: the changelogs, then the files
318
- replaced, then the packages packed, then the generated folders staged, then the release commit.
319
- After the tag, of `publish`: the packages, then the release of the host, last.
320
-
321
- The plugin of the trains is one package, listed once for each role, each entry where its role runs:
322
- of `wrap`, where the plugin it wraps runs; of `generated`, after the build that writes the folders;
323
- and every entry checks the trains, once a run. It needs all the trains, not only the train of the
324
- run, to find overlapping paths and dependencies. With one train, a config needs no entry of `wrap`:
325
- the stock analyzer and notes generator read every commit.
326
-
327
- ### The train of a run
328
-
329
- Each plugin of the trains reads the train of the run of its option `train`, or else of
330
- `RELEASE_TRAIN` of the environment of the run, never of the process's own: the option wins. Of
331
- neither, the run fails with `ETRAINNOTSELECTED`. The environment is the simpler way, as above: the
332
- config declares the trains, and each job names its train. A config that names it at its root, as
333
- `train: process.env.RELEASE_TRAIN`, does the same.
334
-
335
- The tag format is semantic-release's own, `tagFormat` of the config or `--tag-format` of the
336
- command, and must be the train's, or the run would read the tags of another train: the trains plugin
337
- fails with `ETAGFORMAT` of another.
338
-
339
- ### On the train
340
-
341
- semantic-release gives each plugin its own copy of the context of a run, with every commit of the
342
- repo since the train's last tag, so no plugin can filter the commits of another. It releases by the
343
- highest type of release that any analyzer returns, and joins the notes of every generator; the
344
- plugin of the host comments on the merge request of each commit when the release succeeds. So wrap
345
- each plugin that reads the commits in an entry of `@wtf/semantic-release-trains` of `wrap`, which
346
- gives each of its steps the commits of the train alone: the commit analyzer, the release notes
347
- generator, the plugin of the host, and any other. List no commit analyzer and no release notes
348
- generator unwrapped: it would bump the train by the commits of every other train, or add their
349
- notes.
350
-
351
- `wrap` names the plugin as an entry of `plugins` names one. The array form, the plugin's name and
352
- its options, is where the options of that plugin go, as its `preset` or `releaseRules`:
356
+ `@wtf/semantic-release-trains/config` exports these values:
357
+
358
+ | Value | What it gives |
359
+ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
360
+ | `trainTagFormat(trains, train)` | The train's tag format, for `tagFormat`. The trains plugin fails with `ETAGFORMAT` when `tagFormat` is any other. |
361
+ | `trainChangelog(trains, train)` | The train's changelog, for `changelogFile` of `@semantic-release/changelog`, or `undefined` for a train with no changelog. |
362
+ | `trainAssets(trains, train, options)` | The `assets` of `@semantic-release/git`: the changelogs, the replaced files (`replaced`), and the generated folders. |
363
+ | `trainOfTag(trains, tag)` | The train whose tag format matches a tag, such as `RELEASE_TAG` in a run on a tag. See [Run releases in CI](ci-recipes.md). |
364
+ | `skipPlugins(plugins, pattern, opts)` | The entries of `plugins` without those whose step ids match a pattern, so that a job can leave out a step. See [Run releases in CI](ci-recipes.md). |
365
+ | `BRANCHES` | `main`, and `rc`, `pre`, `beta` and `alpha` as prereleases. |
366
+ | `BREAKING` | The parser options that read `type!:` as a breaking change. Spread them at the root. |
367
+
368
+ These values are for a config that imports them, in a repo that installs the plugins. A config
369
+ that a global install of semantic-release reads, such as the one the semantic-release component of
370
+ to-be-continuous reads, imports nothing from them. See [A config of literals](#a-config-of-literals).
371
+
372
+ The order of `plugins` is the order within each step:
373
+
374
+ - In `prepare`: the changelogs, then the replaced files, then the packed packages, then the staged
375
+ generated folders, then the release commit.
376
+ - In `publish`, after the tag: the packages, then the release on the host, last.
377
+
378
+ The trains plugin is one package that you list once for each role. Put each entry where its role
379
+ runs:
380
+
381
+ - A `wrap` entry goes where the plugin it wraps would run.
382
+ - A `generated` entry goes after the build that writes the folders.
383
+ - Every entry checks the trains, once a run.
384
+
385
+ The plugin needs all the trains, not only the run's train, so that it can find overlapping paths
386
+ and dependencies. With one train, a config needs no `wrap` entry: the stock analyzer and notes
387
+ generator read every commit.
388
+
389
+ ### Choose the train of a run
390
+
391
+ Each trains plugin reads the run's train from its option `train`. Without that option, it reads
392
+ `RELEASE_TRAIN` from the run's environment, never from its own process. The option wins over the
393
+ variable. With neither, the run fails with `ETRAINNOTSELECTED`.
394
+
395
+ The environment is the simpler way, as above: the config declares the trains, and each job names
396
+ its train. A config that sets `train: process.env.RELEASE_TRAIN` at its root does the same.
397
+
398
+ The tag format is semantic-release's own: `tagFormat` in the config, or `--tag-format` on the
399
+ command line. It must be the train's tag format, or the run would read the tags of another train.
400
+ The trains plugin fails with `ETAGFORMAT` when it is any other.
401
+
402
+ ### Give each plugin only the train's commits
403
+
404
+ semantic-release gives each plugin its own copy of the run's context. That context holds every
405
+ commit in the repo since the train's last tag, so no plugin can filter the commits for another
406
+ plugin. semantic-release then:
407
+
408
+ - releases by the highest release type that any analyzer returns,
409
+ - joins the notes of every notes generator,
410
+ - lets the host plugin comment on the merge request of each commit when the release succeeds.
411
+
412
+ So wrap each plugin that reads the commits in a `wrap` entry of `@wtf/semantic-release-trains`. The
413
+ entry gives each step of the wrapped plugin only the train's commits. Wrap the commit analyzer, the
414
+ release notes generator, the host plugin, and any other plugin that reads commits. Do not list a
415
+ commit analyzer or a release notes generator unwrapped. It would bump the train for the commits of
416
+ every other train, or add their notes.
417
+
418
+ `wrap` names a plugin the same way an entry of `plugins` does. Use the array form, the plugin's
419
+ name and its options, to give that plugin options such as its `preset` or `releaseRules`:
353
420
 
354
421
  ```js fragment
355
422
  ;[
@@ -363,47 +430,65 @@ its options, is where the options of that plugin go, as its `preset` or `release
363
430
  ]
364
431
  ```
365
432
 
366
- The name alone is the shorthand of a plugin with no options of its own:
433
+ Use the name alone for a plugin with no options of its own:
367
434
 
368
435
  ```js fragment
369
436
  ;['@wtf/semantic-release-trains', { wrap: '@semantic-release/release-notes-generator' }]
370
437
  ```
371
438
 
372
- The wrapped plugin is given the options of the root of the config, with its own over them, as
373
- semantic-release gives any plugin its options over the root's. Any preset works, as does any plugin.
374
- The entry loads it as semantic-release loads a plugin: of the plugins semantic-release depends on
375
- itself, as the commit analyzer and the release notes generator, in the node_modules of the
376
- semantic-release beside it, of a global install too; or else of the repo, which installs any other;
377
- or else beside the plugin of the trains, as of a global install of semantic-release and its
378
- plugins. Of a global install, as the semantic-release component of to-be-continuous makes one of
379
- each name of `plugins`, a wrapped plugin that is no dependency of semantic-release, as
380
- `@semantic-release/gitlab`, is a name of its own to install beside it: list it in the component's
381
- `semrel-required-plugins.txt`. A shared config (`extends`) that wraps a plugin the repo does not
382
- install names it by its path, or by the URL `import.meta.resolve('@semantic-release/gitlab')` of the
383
- config gives: semantic-release finds the plugins of a shared config of its folder, which it gives no
384
- plugin. A `wrap` of another shape, or of the plugin of the trains itself, fails with `EOPTIONS`; a
385
- plugin it cannot load, with `EPLUGINLOAD`. The analyzer it wraps also checks the trains the train
386
- depends on, by `dependencies` of the root, and releases the train of what they released, by
387
- `cascade` of the root, which the notes generator it wraps says: see
388
- [Dependency rules](dependency-rules.md).
389
-
390
- semantic-release calls each step of the plugin of every entry. Of a step an entry has no role in,
391
- or the plugin it wraps has not, the entry gives what semantic-release takes as nothing: no type of
392
- release, and no notes (`''`, which semantic-release leaves out of the notes it joins). Of the steps
393
- of a release, `publish` and `addChannel`, it gives `false`, which semantic-release lists as a
394
- release of no name, of the plugin of the trains: the plugins of the host, which say the releases of
395
- a run by their names, leave it out, and the releases of a name are those of the plugins that
396
- published.
439
+ The wrapped plugin gets the root options of the config, with its own options over them, the same
440
+ way semantic-release gives any plugin its options. Any preset works, and so does any plugin.
441
+
442
+ The entry loads the wrapped plugin the same way semantic-release loads a plugin. It looks in these
443
+ places, in order:
444
+
445
+ 1. For a plugin that semantic-release itself depends on, such as the commit analyzer and the
446
+ release notes generator: the node_modules of the semantic-release beside it, also in a global
447
+ install.
448
+ 2. The repo, which installs any other plugin.
449
+ 3. Beside the trains plugin, as in a global install of semantic-release and its plugins.
450
+
451
+ In a global install, such as the one the semantic-release component of to-be-continuous makes from
452
+ each name in `plugins`, a wrapped plugin that semantic-release does not depend on needs an install
453
+ of its own. `@semantic-release/gitlab` is an example: list it in the component's
454
+ `semrel-required-plugins.txt`.
455
+
456
+ A shared config (`extends`) that wraps a plugin the repo does not install must name that plugin by
457
+ its path. Or it can use the URL that `import.meta.resolve('@semantic-release/gitlab')` gives in the
458
+ shared config. semantic-release finds the plugins of a shared config in that config's folder, but
459
+ it does not give that folder to any plugin.
460
+
461
+ The entry fails with:
462
+
463
+ - `EOPTIONS` when `wrap` has any other shape, or wraps the trains plugin itself.
464
+ - `EPLUGINLOAD` when it cannot load the plugin.
465
+
466
+ The analyzer that an entry wraps also checks the trains that the train depends on, by the root
467
+ option `dependencies`. It also releases the train when they released outside a published range, by
468
+ the root option `cascade`, and the wrapped notes generator lists those releases. See
469
+ [Trains that depend on other trains](dependency-rules.md).
470
+
471
+ semantic-release calls every step of the plugin of every entry. Sometimes an entry has no role in a
472
+ step, or the plugin it wraps has no such step. Then the entry returns what semantic-release takes
473
+ as nothing: no release type, and empty notes (`''`, which semantic-release leaves out of the notes
474
+ it joins). For the release steps, `publish` and `addChannel`, it returns `false`. semantic-release
475
+ lists that as a release with no name from the trains plugin. The host plugins announce the releases
476
+ of a run by name, so they leave it out. The named releases are those of the plugins that published.
397
477
 
398
478
  ### A config of literals
399
479
 
400
- Each entry of the plugin of the trains is JSON, which a config writes as it is. A config of
401
- literals imports nothing, and awaits nothing: as one a global install of semantic-release reads, before anything of the repo is
402
- installed. The semantic-release component of to-be-continuous makes `.releaserc.json` of a
403
- `release.config.mjs` by `require()`, which takes no top-level `await`, before it installs the
404
- plugins, and installs each name of `plugins` then, by `npm install --global`: so each plugin is a
405
- package of its own, named whole, and each option of each is JSON. The values of
406
- `@wtf/semantic-release-trains/config` are written out: the tag format of the train as
480
+ Each entry of the trains plugin is JSON, so a config can write it as it is. A config of literals
481
+ imports nothing and awaits nothing. A global install of semantic-release can read it before
482
+ anything in the repo is installed.
483
+
484
+ The semantic-release component of to-be-continuous works this way:
485
+
486
+ 1. It makes `.releaserc.json` from `release.config.mjs` with `require()`, which does not allow a
487
+ top-level `await`. It does this before it installs any plugin.
488
+ 2. Then it installs each name in `plugins` with `npm install --global`.
489
+
490
+ So each plugin must be a package of its own, named in full, and each option of each plugin must be
491
+ JSON. Write out the values of `@wtf/semantic-release-trains/config`: the train's tag format as
407
492
  `${train}-v\${version}`, and `BREAKING` as `parserOpts`.
408
493
 
409
494
  ```js train=replace
@@ -448,8 +533,8 @@ export default {
448
533
  }
449
534
  ```
450
535
 
451
- A JSON config, as `.releaserc.json`, writes the same, of no train, which each job gives in its
452
- environment, and the job gives the train's tag format on the command line:
536
+ A JSON config, such as `.releaserc.json`, writes the same without a train. Each job gives the train
537
+ in its environment, and passes the train's tag format on the command line:
453
538
 
454
539
  ```json
455
540
  {
@@ -482,10 +567,10 @@ RELEASE_TRAIN=trains npx semantic-release --tag-format 'trains-v${version}'
482
567
 
483
568
  ### A preset, and `type!:`
484
569
 
485
- The default preset of semantic-release, `angular`, does not read a `!` after the type, as in
486
- `feat!: drop Node 20`. Spread `BREAKING` of `@wtf/semantic-release-trains/config` at the root of the
487
- config: it is a `breakingHeaderPattern` of the parser at the
488
- root of the config, so that every plugin reads `type!:` as a breaking change.
570
+ semantic-release's default preset, `angular`, does not read a `!` after the type, as in
571
+ `feat!: drop Node 20`. Spread `BREAKING` from `@wtf/semantic-release-trains/config` at the root of
572
+ the config. It sets the parser's `breakingHeaderPattern` at the root, so that every plugin reads
573
+ `type!:` as a breaking change.
489
574
 
490
575
  > **Caveat.** Do not trust `type!:` alone. A tool that reads the commits with other parser options
491
576
  > (another analyzer, a CI job that keeps only some options, or a preset that ignores the pattern)
@@ -498,13 +583,16 @@ root of the config, so that every plugin reads `type!:` as a breaking change.
498
583
  > BREAKING CHANGE: a train with no commits of its own releases too; set cascade: false for none.
499
584
  > ```
500
585
 
501
- ## The libraries
586
+ ## Use the libraries directly
587
+
588
+ `@wtf/release-trains` holds what the trains plugin runs, and it does not depend on semantic-release.
589
+ Each function takes the `system` it runs on, so a CLI can pass its own. The parts that know nothing
590
+ about trains (the system, paths and globs, git, validators and `ReleaseError`) live in
591
+ `@wtf/release-system`, which `@wtf/release-trains` builds on.
502
592
 
503
- `@wtf/release-trains` holds what the trains plugin runs, with no dependency on semantic-release.
504
- Each function takes the `system` it runs by, as a CLI passes its own. What is of no train, the
505
- system, paths and globs, git, validators and `ReleaseError`, is of `@wtf/release-system`, which it
506
- builds on. It reads no manifest: the packages of the repo are those its ecosystems give, as the
507
- default export of `@wtf/release-npm` gives those of each `package.json`:
593
+ `@wtf/release-trains` reads no manifest itself. The repo's packages are the ones its ecosystems
594
+ give. For example, the default export of `@wtf/release-npm` gives the packages of each
595
+ `package.json`:
508
596
 
509
597
  ```ts
510
598
  import npm from '@wtf/release-npm'