@wtf/release-docs 8.2.0 → 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 +4 -3
  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 +3 -3
@@ -1,25 +1,29 @@
1
- # Publishing crates
1
+ # Publish Cargo crates
2
2
 
3
- A release train can publish the crates of a Cargo workspace beside the npm packages of the same
4
- release: one version, one tag, and a retry that finishes what stopped. A workspace of several trains
5
- publishes each train's crates by its own release, and a crate that depends on a crate of another
6
- train at that train's last release. The libraries are
7
- [`@wtf/release-cargo`](../../release-cargo/README.md), and the plugin over it
8
- [`@wtf/semantic-release-cargo`](../../semantic-release-cargo/README.md). Neither reads a
9
- `package.json`: a crate is a package of `cargo metadata`, so the plugin is a plugin of its own,
10
- listed beside `@wtf/semantic-release-npm`, not a publisher of it.
3
+ [`@wtf/semantic-release-cargo`](../../semantic-release-cargo/README.md) publishes the crates of a
4
+ Cargo workspace that belong to a train. Use it when a train holds Rust crates, alone or beside npm
5
+ packages in the same release. The crates and the packages share one version and one tag, and a
6
+ retry finishes a release that stopped. In a workspace with several trains, each train's release
7
+ publishes its own crates. A crate that depends on a crate in another train gets that train's last
8
+ release.
11
9
 
12
- `@wtf/release-cargo` is the ecosystem of cargo too, its default export, which the plugin exports
13
- at `./ecosystem` and a config names in `ecosystems` as `'@wtf/semantic-release-cargo/ecosystem'`,
14
- so the trains read the crates of the repo by it, the same
15
- as the packages of npm ([Ecosystems](ecosystems.md)): which train holds each crate, the order of the
16
- trains, the checks of a release, and the releases a train owes the trains it depends on.
10
+ The plugin runs on the library [`@wtf/release-cargo`](../../release-cargo/README.md). Neither of
11
+ them reads a `package.json`: a crate is a package that `cargo metadata` reports. So the cargo plugin
12
+ is a plugin of its own, listed beside `@wtf/semantic-release-npm`, and not a publisher for it.
17
13
 
18
- ## The model
14
+ The library's default export is the cargo ecosystem, and the plugin exports the same ecosystem at
15
+ `./ecosystem`. Add `'@wtf/semantic-release-cargo/ecosystem'` to `ecosystems` in your config. The
16
+ trains then treat crates the same way as npm packages: they decide which train holds each crate,
17
+ the order of the trains, the checks of a release, and the releases a train owes the trains it
18
+ depends on. See [How ecosystems work](ecosystems.md).
19
19
 
20
- The tag is the version, and no version is written into git. Each `Cargo.toml` of the workspace holds
21
- a placeholder, `0.0.0-development`, as each `package.json` of an npm train does, and `[workspace.package]`
22
- holds the version the crates of one train inherit:
20
+ ## Turn it on
21
+
22
+ ### Keep a placeholder version in each manifest
23
+
24
+ The tag holds the version, and git holds no version. Each `Cargo.toml` in the workspace keeps a
25
+ placeholder, `0.0.0-development`, as each `package.json` in an npm train does.
26
+ `[workspace.package]` holds the version that the crates of one train inherit:
23
27
 
24
28
  ```toml
25
29
  [workspace.package]
@@ -29,22 +33,26 @@ version = "0.0.0-development"
29
33
  runtime = { path = "crates/runtime", version = "0.0.0-development" }
30
34
  ```
31
35
 
32
- A crate that depends on another by a path writes the `version` too, as a registry installs the
33
- crate by it and `cargo publish` refuses a path alone. The run of the tag writes the version of the
34
- tag into each, publishes, and the working tree is thrown away with the job.
36
+ A crate that depends on another crate by a path writes the `version` too. A registry installs the
37
+ crate by that version, and `cargo publish` refuses a path alone. The tag's run writes the tag's
38
+ version into each manifest and publishes. The job then throws the working tree away.
39
+
40
+ ### Add the cargo ecosystem
35
41
 
36
- A crate is of the train whose `paths` hold its folder, as a package is of the train whose paths
37
- hold its `package.json`; the plugin reads `trains`, `ecosystems` and `train` of the root of the
38
- config, as `@wtf/semantic-release-npm` does. A crate of no train, as an example or a tool, is
39
- published by no release. `ecosystems` must list the ecosystem of cargo, the plugin's
40
- `'@wtf/semantic-release-cargo/ecosystem'` or `'@wtf/release-cargo'`, or the trains read no crate
41
- and the plugin fails in `verifyConditions` with `ECARGOECOSYSTEM`: add it, as
42
+ A crate belongs to the train whose `paths` hold its folder, as a package belongs to the train whose
43
+ paths hold its `package.json`. The plugin reads `trains`, `ecosystems` and `train` from the root of
44
+ the config, as `@wtf/semantic-release-npm` does. No release publishes a crate that belongs to no
45
+ train, such as an example or a tool.
46
+
47
+ `ecosystems` must list the cargo ecosystem: the plugin's `'@wtf/semantic-release-cargo/ecosystem'`
48
+ or `'@wtf/release-cargo'`. Otherwise the trains read no crate, and the plugin fails in
49
+ `verifyConditions` with `ECARGOECOSYSTEM`. Add it, as
42
50
  `ecosystems: ['@wtf/semantic-release-npm/ecosystem', '@wtf/semantic-release-cargo/ecosystem']`.
43
51
 
44
- ## Run it on the tag
52
+ ### List the plugin in the tag's run
45
53
 
46
- The branch run decides the version and pushes the tag, as for any train. The run of the tag, the
47
- job that publishes, lists the plugin:
54
+ The branch run decides the version and pushes the tag, as for any train. The tag's run is the job
55
+ that publishes. List the plugin there:
48
56
 
49
57
  ```js norun
50
58
  // release.config.mjs
@@ -57,21 +65,44 @@ export const tagPlugins = [
57
65
  ]
58
66
  ```
59
67
 
60
- The order is the order of the registries: the crates first, then npm, then the release of the host.
61
- A crate depends on nothing of npm, and a package of npm may embed a build of the crates, so a
62
- release that fails in the crates publishes no npm package of a version whose crates are not there.
68
+ The order follows the registries: crates first, then npm, then the GitLab or GitHub release. A crate
69
+ depends on nothing in npm, and an npm package may embed a build of the crates. So when the crates
70
+ fail, the release publishes no npm package whose crates are missing.
71
+
72
+ ### What the jobs need
73
+
74
+ The tag's job needs `cargo` and a credential for the registry: see
75
+ [Authenticate to the registry](#authenticate-to-the-registry).
63
76
 
64
- The job needs `cargo` and a credential for the registry, one of the two below. The jobs of the
65
- branch need `cargo` too, where `ecosystems` names cargo's and the repo has a `Cargo.toml` at its
66
- root: the trains read the crates by `cargo metadata`, of the working tree, and of the commit of the
67
- last release of a train, which they export by `git archive` into a temporary folder and unpack by
68
- `tar`.
77
+ The branch jobs need `cargo` too, when `ecosystems` names the cargo ecosystem and the repo has a
78
+ `Cargo.toml` at its root. The trains read the crates with `cargo metadata`, both in the working tree
79
+ and at the commit of a train's last release. For that commit, they export the files with
80
+ `git archive` into a temporary folder and unpack them with `tar`.
69
81
 
70
- ## Crates of several trains
82
+ ## What a release does
71
83
 
72
- A workspace can be released in several trains, each its own crates, version and tags, whose crates
73
- depend on the crates of the others by a path: a runtime, codecs over it, and a client over both.
74
- Each crate names its dependencies by `[workspace.dependencies]`, of a path and the placeholder:
84
+ 1. **`verifyConditions`** checks the options and reads the workspace with `cargo metadata`. It
85
+ selects the crates that the release publishes and puts them in dependency order. It reads each
86
+ other train's last release from its tags. It checks the credentials. A workspace that cannot be
87
+ published fails here, before the tag (see
88
+ [When crates depend on other trains](#when-crates-depend-on-other-trains)).
89
+ 2. **`prepare`** writes the versions into the manifests: the release's version into the train's
90
+ crates, and each other train's last release into that train's crates and into each dependency on
91
+ them. It then reads the workspace again. A crate that is not at its train's version fails the run
92
+ (see [What the stamp does not read](#what-the-stamp-does-not-read)).
93
+ 3. **`publish`** asks the registry's sparse index which crates it already has, and skips them. It
94
+ publishes the rest in dependency order with `cargo publish`. cargo waits for each crate to appear
95
+ in the index before the next one, so the crates of a release can install each other.
96
+
97
+ A dry run of semantic-release runs only `verifyConditions`. It writes no version and publishes
98
+ nothing.
99
+
100
+ ## When crates depend on other trains
101
+
102
+ A workspace can be released in several trains. Each train has its own crates, version and tags, and
103
+ its crates can depend on other trains' crates by a path. For example: a runtime, codecs over it, and
104
+ a client over both. Each crate names its dependencies in `[workspace.dependencies]`, with a path and
105
+ the placeholder:
75
106
 
76
107
  ```toml
77
108
  [workspace.package]
@@ -84,10 +115,11 @@ codec = { path = "crates/codec", version = "0.0.0-development" }
84
115
  kafka = { path = "crates/kafka", version = "0.0.0-development" }
85
116
  ```
86
117
 
87
- The trains read the crates by the ecosystem of cargo, so a train whose crates depend on another
88
- train's crates, by a normal or a build dependency, releases after it, as an npm package of one train
89
- that depends on a package of another does; no `dependsOn` says so. Name a train in `dependsOn` only
90
- of what no crate says, as a docs train whose crate depends on none of them:
118
+ The trains read the crates through the cargo ecosystem. A train whose crates depend on another
119
+ train's crates, by a normal or a build dependency, releases after that train. This works as it does
120
+ for an npm package that depends on a package in another train, and you do not need `dependsOn`. Name
121
+ a train in `dependsOn` only for what no crate says, such as a docs train whose crate depends on none
122
+ of them:
91
123
 
92
124
  ```js norun
93
125
  // release.config.mjs
@@ -101,82 +133,103 @@ export const trains = {
101
133
  export const ecosystems = ['@wtf/semantic-release-cargo/ecosystem']
102
134
  ```
103
135
 
104
- The release of a train writes its own version into its crates, and the last release of each other
105
- train, of its tags that the tag's commit holds, into that train's crates and into each dependency
106
- on them, as a `workspace:` range of an npm package of another train publishes that train's last
107
- release. So the release `kafka-v1.0.0`, after `runtime-v1.4.0` and `codecs-v2.1.0`, publishes
108
- `kafka` 1.0.0 of `runtime = "1.4.0"` and `codec = "2.1.0"`, and nothing of the others, which
109
- crates.io has. The crates of the other trains are written too, though not published, as cargo
110
- resolves a dependency by a path only of the version its crate is at.
111
-
112
- The checks are the trains', the same of every ecosystem, in `verifyConditions` of the plugin of the
113
- trains and of this plugin, before the tag: a crate of the release that depends on a crate of no
114
- train fails with `EDEPENDENCYNOTRAIN`, and on a crate of a train that has no release with
115
- `EDEPENDENCYNORELEASE`, as neither has a version crates.io could install, so the release never
116
- publishes the placeholder; a crate the paths of two trains hold fails with `ETRAINOVERLAP`. A
117
- dev-dependency of no `version` is no fault, as cargo drops it as it packages; one of a `version` is,
118
- as cargo keeps it. A dependency on a crate of `publish = false` is cargo's own fault,
119
- `ECRATEPRIVATE`, before the tag: of a normal or a build dependency, and of a dev-dependency of a
120
- `version`, which cargo keeps as it packages, so crates.io would refuse the crate in the middle of a
121
- release. A dev-dependency of no `version` on it is allowed, as cargo drops it.
122
-
123
- A release of a train the other trains' last releases leave behind is owed by them: a cascade
124
- ([Dependency rules](dependency-rules.md)). The release publishes `version = "1.4.0"` of runtime
125
- 1.4.0, which cargo reads as `^1.4.0`: runtime 1.5.0 is within it, and owes kafka nothing, but
126
- runtime 2.0.0 is not, so kafka's next release is at least a patch, of `runtime = "2.0.0"`, and its
127
- notes say so.
128
-
129
- ### `[workspace.package]`
130
-
131
- `[workspace.package]` holds one version, so the crates of one train alone inherit it
132
- (`version.workspace = true`), and the crates of every other train set their own,
133
- `version = "0.0.0-development"` of their `[package]`, which their train's release writes. Where the
136
+ ### What versions the release writes
137
+
138
+ A train's release writes its own version into its crates. For each other train, it writes the last
139
+ release whose tag the tagged commit holds, into that train's crates and into each dependency on
140
+ them. An npm package's `workspace:` range on another train works the same way. For example, the
141
+ release `kafka-v1.0.0` comes after `runtime-v1.4.0` and `codecs-v2.1.0`. It publishes `kafka` 1.0.0
142
+ with `runtime = "1.4.0"` and `codec = "2.1.0"`, and publishes nothing else, because crates.io
143
+ already has the others. The release also writes the other trains' crates, without publishing them,
144
+ because cargo resolves a path dependency only at the version its crate is at.
145
+
146
+ ### Checks before the tag
147
+
148
+ The trains run the same checks for every ecosystem. They run in `verifyConditions` of the trains
149
+ plugin and of this plugin, before the tag:
150
+
151
+ - A crate of the release that depends on a crate of no train fails with `EDEPENDENCYNOTRAIN`.
152
+ - A crate of the release that depends on a crate of a train with no release fails with
153
+ `EDEPENDENCYNORELEASE`.
154
+ - A crate that the paths of two trains hold fails with `ETRAINOVERLAP`.
155
+
156
+ In the first two cases there is no version that crates.io could install, so the release never
157
+ publishes the placeholder. A dev-dependency without a `version` is not a fault, because cargo drops
158
+ it when it packages the crate. A dev-dependency with a `version` is a fault, because cargo keeps it.
159
+
160
+ A dependency on a crate with `publish = false` is cargo's own fault, `ECRATEPRIVATE`, also raised
161
+ before the tag. It applies to a normal or a build dependency, and to a dev-dependency with a
162
+ `version`, which cargo keeps when it packages. crates.io would refuse such a crate in the middle of
163
+ a release. A dev-dependency on it without a `version` is allowed, because cargo drops it.
164
+
165
+ ### When another train's release leaves a crate behind
166
+
167
+ When the other trains' last releases leave a train behind, that train owes a release: a cascade
168
+ (see [Trains that depend on other trains](dependency-rules.md)). The release publishes
169
+ `version = "1.4.0"` for runtime 1.4.0, which cargo reads as `^1.4.0`. Runtime 1.5.0 is within that
170
+ range, so it owes kafka nothing. Runtime 2.0.0 is not, so kafka's next release is at least a patch,
171
+ with `runtime = "2.0.0"`, and its notes say so.
172
+
173
+ ### Who inherits `[workspace.package]`
174
+
175
+ `[workspace.package]` holds one version, so only the crates of one train can inherit it
176
+ (`version.workspace = true`). The crates of every other train set their own
177
+ `version = "0.0.0-development"` in their `[package]`, which their train's release writes. If the
134
178
  crates of two trains inherit it, or the crates of a train and a published crate of no train, the
135
- stamp fails with `ESTAMP` and names them. A crate of `publish = false` of no train, as an example,
136
- may inherit it too: it is at the version `[workspace.package]` takes, and no release publishes it.
179
+ stamp fails with `ESTAMP` and names them. A crate with `publish = false` that belongs to no train,
180
+ such as an example, may inherit it too. It is at the version that `[workspace.package]` holds, and
181
+ no release publishes it.
137
182
 
138
183
  ## What crates.io needs
139
184
 
140
- - **A version of each dependency of a path.** `cargo publish` refuses a dependency of a path alone,
141
- but a dev-dependency, which it drops: give each `version = "0.0.0-development"`, which the release
142
- writes.
143
- - **What a crate says of itself.** crates.io takes no crate of no `description`, nor of no `license`
144
- or `license-file`; give each crate the release publishes both, of its own `[package]` or of
145
- `[workspace.package]` (`description.workspace = true`).
146
- - **A name and a publisher.** A crate's settings are its own, so a crate not on crates.io yet needs
147
- a placeholder version before trusted publishing serves it ([Trusted publishing](#trusted-publishing)).
148
- - **Each dependency there first.** cargo waits for each crate it publishes to be in the index, and
149
- the plugin publishes the crates of a train in the order of their dependencies, so the crates of a
150
- release install each other. The crates of the other trains are there already: a release of one of
151
- them fails before the tag, of `EDEPENDENCYNORELEASE`, where one is not.
152
- - **`publish = false` of what is not published.** An example or a test crate of the workspace says
153
- so, or it is published by the train whose paths hold it. A crate of the train can be left out by
154
- `exclude` too, which names only crates of the train (`ECRATES`).
155
-
156
- ## Authenticate
157
-
158
- The plugin publishes by the credential the environment of the run has, and tells which is which:
159
- an ID token of the job (`CRATES_IO_ID_TOKEN` by default, `idToken` names another variable), or a
160
- token (`CARGO_REGISTRY_TOKEN`). With both, the ID token is used and the log says so. With neither,
161
- `verifyConditions` fails with `ECRATEAUTH` before the tag, a dry run excepted: semantic-release runs
162
- `verifyConditions` alone of one, so it only warns.
185
+ - **A version on each path dependency.** `cargo publish` refuses a dependency with only a path,
186
+ except a dev-dependency, which it drops. Give each one `version = "0.0.0-development"`, which the
187
+ release writes.
188
+ - **A description and a license.** crates.io refuses a crate without a `description`, or without a
189
+ `license` or `license-file`. Give each crate that the release publishes both, in its own
190
+ `[package]` or in `[workspace.package]` (`description.workspace = true`).
191
+ - **A name and a publisher.** Each crate has its own settings on crates.io. A crate that is not on
192
+ crates.io yet needs a placeholder version before trusted publishing can serve it (see
193
+ [Trusted publishing](#trusted-publishing)).
194
+ - **Each dependency there first.** cargo waits for each crate it publishes to appear in the index,
195
+ and the plugin publishes a train's crates in dependency order, so the crates of a release can
196
+ install each other. The other trains' crates are there already. If one is not, the release fails
197
+ before the tag with `EDEPENDENCYNORELEASE`.
198
+ - **`publish = false` on what is not published.** Mark an example or a test crate of the workspace
199
+ this way. Otherwise the train whose paths hold it publishes it. You can also leave a crate of the
200
+ train out with `exclude`, which names only crates of the train (`ECRATES`).
201
+
202
+ ## Authenticate to the registry
203
+
204
+ The plugin publishes with the credential that the run's environment has, and tells which one it
205
+ uses:
206
+
207
+ - an ID token of the job, in `CRATES_IO_ID_TOKEN` by default (`idToken` names another variable);
208
+ - a token, in `CARGO_REGISTRY_TOKEN`.
209
+
210
+ With both, the plugin uses the ID token and the log says so. With neither, `verifyConditions` fails
211
+ with `ECRATEAUTH` before the tag. A dry run only warns, because semantic-release runs only
212
+ `verifyConditions` in a dry run.
163
213
 
164
214
  ### Trusted publishing
165
215
 
166
- Recommended: the project holds no secret, as for npm. crates.io exchanges the ID token of a CI job
167
- for a publish token that lives a short while. It is in public beta on crates.io, and of GitLab.com
168
- only.
216
+ Trusted publishing is the recommended way, because the project holds no secret, as with npm.
217
+ crates.io exchanges the CI job's ID token for a short-lived publish token. It is in public beta on
218
+ crates.io, and works only from GitLab.com.
219
+
220
+ Set it up for each crate:
169
221
 
170
- In the settings of each crate on crates.io, add a GitLab publisher: the namespace and the project, the
171
- file path of the workflow that defines the publishing job (`.gitlab-ci.yml`, or the file that
172
- includes it, as crates.io's page for the field says), and, where the job names one, its environment.
173
- A setting is a crate's, so a crate that is not on crates.io yet needs a placeholder first, as an npm
174
- package does: publish `0.0.0` of it once with a token of the scopes `publish-new` and
175
- `publish-update`, of a description that says what the name is reserved for, then add the publisher and
176
- revoke the token. crates.io deletes no version, so the placeholder stays, and can be yanked; the first
177
- release of the train is a higher version.
222
+ 1. In the crate's settings on crates.io, add a GitLab publisher. Give the namespace and the project,
223
+ the file path of the workflow that defines the publish job, and the job's environment if it names
224
+ one. The file path is `.gitlab-ci.yml`, or the file that includes it, as crates.io's page for the
225
+ field explains.
226
+ 2. A crate that is not on crates.io yet has no settings, so it needs a placeholder first, as an npm
227
+ package does. Publish `0.0.0` of it once, with a token that has the scopes `publish-new` and
228
+ `publish-update`, and a description that says what the name is reserved for. Then add the
229
+ publisher and revoke the token. crates.io deletes no version, so the placeholder stays; you can
230
+ yank it. The train's first release is a higher version.
178
231
 
179
- The job asks GitLab for the ID token of the audience `crates.io`, and nothing else:
232
+ The job asks GitLab for an ID token with the audience `crates.io`, and needs nothing else:
180
233
 
181
234
  ```yaml
182
235
  publish-release:
@@ -187,16 +240,20 @@ publish-release:
187
240
  - semantic-release-trains-tag
188
241
  ```
189
242
 
190
- The plugin does the rest. Before the first crate it publishes, it exchanges the ID token for a
191
- publish token (`POST https://crates.io/api/v1/trusted_publishing/tokens`) and gives it to `cargo`
192
- alone, as `CARGO_REGISTRY_TOKEN`, with the ID token out of `cargo`'s environment. When the job is
193
- done, a failed one too, it revokes the token (`DELETE` of the same URL). A release with nothing to
194
- publish exchanges nothing, so the token has the least time to expire. Where the registry
195
- refuses the token as expired, as in a long release, the plugin exchanges a new one, once, and tries the
196
- crate again. The tokens are in no log and no error. A revoke that fails is logged and fails nothing:
197
- the token expires by itself.
243
+ The plugin does the rest:
244
+
245
+ - Before the first crate it publishes, it exchanges the ID token for a publish token
246
+ (`POST https://crates.io/api/v1/trusted_publishing/tokens`). It gives the publish token only to
247
+ `cargo`, as `CARGO_REGISTRY_TOKEN`, and keeps the ID token out of `cargo`'s environment.
248
+ - A release with nothing to publish exchanges nothing. Exchanging late leaves the token the least
249
+ time to expire.
250
+ - If the registry refuses the token as expired, as in a long release, the plugin exchanges a new
251
+ one, once, and tries the crate again.
252
+ - When the job ends, even when it fails, the plugin revokes the token (`DELETE` on the same URL). A
253
+ failed revoke is logged and fails nothing, because the token expires by itself.
254
+ - The tokens appear in no log and no error.
198
255
 
199
- A registry that is not crates.io, and offers the same exchange, takes its API as `registryApi`, with
256
+ A registry other than crates.io that offers the same exchange takes its API as `registryApi`, with
200
257
  its `registry` and its `index`:
201
258
 
202
259
  ```js norun
@@ -213,29 +270,37 @@ export const cargo = [
213
270
 
214
271
  ### A token
215
272
 
216
- An API token of crates.io, scoped to `publish-new` and `publish-update` and to the crates of the
217
- train, kept as a protected, masked variable `CARGO_REGISTRY_TOKEN` of the group or the project, so
218
- only the pipeline of a protected tag reads it. Nothing else is needed, and it works on any CI, of
219
- a registry that has no trusted publishing too (`CARGO_REGISTRIES_<NAME>_TOKEN` of a `registry` that
220
- is not crates.io). It is a long-lived secret: rotate it, and drop it once trusted publishing serves.
273
+ Create a crates.io API token with the scopes `publish-new` and `publish-update`, limited to the
274
+ train's crates. Keep it as a protected, masked variable `CARGO_REGISTRY_TOKEN` of the group or the
275
+ project, so that only the pipeline of a protected tag can read it. You need nothing else. It works
276
+ on any CI, and with a registry that has no trusted publishing too: use
277
+ `CARGO_REGISTRIES_<NAME>_TOKEN` for a `registry` that is not crates.io. The token is a long-lived
278
+ secret. Rotate it, and drop it once trusted publishing works.
221
279
 
222
- ## A release that stopped
280
+ ## When a publish fails
223
281
 
224
- A published crate version stays: crates.io takes none twice, and a yanked one stays taken. The
225
- plugin asks the registry's sparse index of each crate before the first publish, and skips each it
226
- has, so retrying the job of the tag publishes what is missing. A publish cargo fails because the
227
- version is there already, as when the index had not caught up with an earlier run, is skipped once
228
- the registry, asked again over half a minute, says it has it. A crate that fails stops the run,
229
- with the code `ECRATEPUBLISH` and the tail of cargo's output; the crates before it are published.
230
- A registry that cannot be asked stops the run before anything is published (`ECRATESIO`).
282
+ A published crate version stays: crates.io never takes a version twice, and a yanked version stays
283
+ taken. Before the first publish, the plugin asks the registry's sparse index about each crate and
284
+ skips each crate the registry has. So retry the tag's job to publish what is missing.
285
+
286
+ - If cargo fails because the version is there already, as when the index had not caught up with an
287
+ earlier run, the plugin asks the registry again for up to half a minute. Once the registry has the
288
+ crate, the plugin skips it.
289
+ - A crate that fails stops the run with `ECRATEPUBLISH` and the tail of cargo's output. The crates
290
+ before it are published.
291
+ - A registry that cannot be asked stops the run before anything is published (`ECRATESIO`).
231
292
 
232
293
  ## What the stamp does not read
233
294
 
234
- The stamp is a line editor, not a TOML parser, so the manifests keep their comments and their
235
- layout. A dependency renamed by `package = "…"` of `[workspace.dependencies]` is not read; an
236
- inline table of several lines, and a dependency on a crate of a train written by dotted keys
237
- (`name.path = "…"`), fail with `ESTAMP`. A crate of no train, or of a train with no release, keeps
238
- its version, and the dependencies on it are left; the dependencies of every crate on the crates of
239
- the trains are written, so the workspace still builds. After it, the plugin reads the workspace
240
- again, and a crate not at the version of its train fails the run (`ECRATEVERSION`), so a manifest
241
- that the stamp did not write cannot publish at the wrong version.
295
+ The stamp edits lines; it does not parse TOML. So the manifests keep their comments and their
296
+ layout. It has these limits:
297
+
298
+ - It does not read a dependency renamed with `package = "…"` in `[workspace.dependencies]`.
299
+ - An inline table that spans several lines fails with `ESTAMP`.
300
+ - A dependency on a train's crate written with dotted keys (`name.path = "…"`) fails with `ESTAMP`.
301
+
302
+ A crate of no train, or of a train with no release, keeps its version, and the dependencies on it
303
+ stay as they are. The stamp writes every crate's dependencies on the trains' crates, so the
304
+ workspace still builds. After the stamp, the plugin reads the workspace again. A crate that is not
305
+ at its train's version fails the run (`ECRATEVERSION`), so a manifest that the stamp did not write
306
+ cannot publish at the wrong version.