git-release-manager 0.0.13 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -0
- package/dist/commands/branch/command.js +84 -14
- package/dist/commands/branch/command.js.map +1 -1
- package/dist/commands/branch/types/BranchCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchCreateCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchCreateCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchDeleteCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchDeleteCliArgs.js.map +0 -0
- package/dist/{cli/types/BranchDeleteCliArgs.js → commands/branch/types/BranchFinishCliArgs.js} +1 -1
- package/dist/commands/branch/types/BranchFinishCliArgs.js.map +1 -0
- package/dist/commands/branch/types/BranchListCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchListCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchMergeCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchMergeCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchProtectCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchProtectCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchRebaseCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchRebaseCliArgs.js.map +0 -0
- package/dist/commands/branch/types/BranchSwitchCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchSwitchCliArgs.js.map +0 -0
- package/dist/{cli/types/ChangelogCliArgs.js → commands/branch/types/BranchSyncCliArgs.js} +1 -1
- package/dist/commands/branch/types/BranchSyncCliArgs.js.map +1 -0
- package/dist/commands/branch/types/BranchUnProtectCliArgs.js +0 -0
- package/dist/commands/branch/types/BranchUnProtectCliArgs.js.map +0 -0
- package/dist/commands/changelog/command.js +28 -3
- package/dist/commands/changelog/command.js.map +1 -1
- package/dist/commands/changelog/types/ChangelogCliArgs.js +0 -0
- package/dist/commands/changelog/types/ChangelogCliArgs.js.map +0 -0
- package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js +0 -0
- package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js.map +0 -0
- package/dist/commands/commit/command.js +8 -3
- package/dist/commands/commit/command.js.map +1 -1
- package/dist/commands/commit/types/CommitAmendCliArgs.js +0 -0
- package/dist/commands/commit/types/CommitAmendCliArgs.js.map +0 -0
- package/dist/commands/commit/types/CommitCliArgs.js +0 -0
- package/dist/commands/commit/types/CommitCliArgs.js.map +0 -0
- package/dist/commands/commit/types/CommitCreateCliArgs.js +0 -0
- package/dist/commands/commit/types/CommitCreateCliArgs.js.map +0 -0
- package/dist/commands/commit/types/CommitListCliArgs.js +0 -0
- package/dist/commands/commit/types/CommitListCliArgs.js.map +0 -0
- package/dist/commands/flow/command.js +196 -6
- package/dist/commands/flow/command.js.map +1 -1
- package/dist/commands/track/command.js +136 -0
- package/dist/commands/track/command.js.map +1 -0
- package/dist/commands/types/CliArgs.js +0 -0
- package/dist/commands/types/CliArgs.js.map +0 -0
- package/dist/commands/version/command.js +115 -23
- package/dist/commands/version/command.js.map +1 -1
- package/dist/commands/version/types/VersionCliArgs.js +0 -0
- package/dist/commands/version/types/VersionCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionCompareCliArgs.js +0 -0
- package/dist/commands/version/types/VersionCompareCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionIncrementCliArgs.js +0 -0
- package/dist/commands/version/types/VersionIncrementCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionInitCliArgs.js +0 -0
- package/dist/commands/version/types/VersionInitCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionListCliArgs.js +0 -0
- package/dist/commands/version/types/VersionListCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionProjectCliArgs.js +0 -0
- package/dist/commands/version/types/VersionProjectCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionRemoteCliArgs.js +0 -0
- package/dist/commands/version/types/VersionRemoteCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionResetCliArgs.js +0 -0
- package/dist/commands/version/types/VersionResetCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionRevertCliArgs.js +0 -0
- package/dist/commands/version/types/VersionRevertCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionSetCliArgs.js +0 -0
- package/dist/commands/version/types/VersionSetCliArgs.js.map +0 -0
- package/dist/commands/version/types/VersionValidateCliArgs.js +0 -0
- package/dist/commands/version/types/VersionValidateCliArgs.js.map +0 -0
- package/dist/config/configLoader.js +0 -0
- package/dist/config/configLoader.js.map +0 -0
- package/dist/config/configManager.js +0 -0
- package/dist/config/configManager.js.map +0 -0
- package/dist/config/constants.js +0 -0
- package/dist/config/constants.js.map +0 -0
- package/dist/config/defaults/config.json +375 -250
- package/dist/config/types/BranchConfig.js +0 -0
- package/dist/config/types/BranchConfig.js.map +0 -0
- package/dist/config/types/ChannelType.js +0 -0
- package/dist/config/types/ChannelType.js.map +0 -0
- package/dist/config/types/CommitType.js +0 -0
- package/dist/config/types/CommitType.js.map +0 -0
- package/dist/config/types/Config.js +0 -0
- package/dist/config/types/Config.js.map +0 -0
- package/dist/config/types/FileGroups.js +0 -0
- package/dist/config/types/FileGroups.js.map +0 -0
- package/dist/config/types/Flow.js +34 -0
- package/dist/config/types/Flow.js.map +1 -0
- package/dist/config/types/LinkType.js +0 -0
- package/dist/config/types/LinkType.js.map +0 -0
- package/dist/config/types/MentionType.js +0 -0
- package/dist/config/types/MentionType.js.map +0 -0
- package/dist/config/types/NoteType.js +0 -0
- package/dist/config/types/NoteType.js.map +0 -0
- package/dist/config/types/Options.js +0 -0
- package/dist/config/types/Options.js.map +0 -0
- package/dist/config/types/Repository.js +0 -0
- package/dist/config/types/Repository.js.map +0 -0
- package/dist/{cli/types/CliArgs.js → config/types/Track.js} +1 -1
- package/dist/config/types/Track.js.map +1 -0
- package/dist/{cli/types/BranchCliArgs.js → config/types/Versioning.js} +1 -1
- package/dist/config/types/Versioning.js.map +1 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/modules/FlowManager.js +47 -4
- package/dist/modules/FlowManager.js.map +1 -1
- package/dist/modules/branch/BranchController.js +33 -2
- package/dist/modules/branch/BranchController.js.map +1 -1
- package/dist/modules/branch/BranchManager.js +0 -0
- package/dist/modules/branch/BranchManager.js.map +0 -0
- package/dist/modules/changelog/ChangelogController.js +0 -0
- package/dist/modules/changelog/ChangelogController.js.map +1 -1
- package/dist/modules/changelog/ChangelogValidator.js +0 -0
- package/dist/modules/changelog/ChangelogValidator.js.map +0 -0
- package/dist/modules/changelog/templateOperations.js +0 -0
- package/dist/modules/changelog/templateOperations.js.map +1 -1
- package/dist/modules/changes/types/ChangeInformation.js +0 -0
- package/dist/modules/changes/types/ChangeInformation.js.map +0 -0
- package/dist/modules/changes/types/Context.js +0 -0
- package/dist/modules/changes/types/Context.js.map +0 -0
- package/dist/modules/changes/types/RangeInfo.js +0 -0
- package/dist/modules/changes/types/RangeInfo.js.map +0 -0
- package/dist/modules/changes/types/RangeSummary.js +0 -0
- package/dist/modules/changes/types/RangeSummary.js.map +0 -0
- package/dist/modules/changes/types/ReferenceTypesEnum.js +0 -0
- package/dist/modules/changes/types/ReferenceTypesEnum.js.map +0 -0
- package/dist/modules/commit/CommitController.js +0 -0
- package/dist/modules/commit/CommitController.js.map +0 -0
- package/dist/modules/commit/CommitManager.js +0 -0
- package/dist/modules/commit/CommitManager.js.map +0 -0
- package/dist/modules/flow/FlowController.js +764 -0
- package/dist/modules/flow/FlowController.js.map +1 -0
- package/dist/modules/git/commits/commitProcessor.js +21 -3
- package/dist/modules/git/commits/commitProcessor.js.map +1 -1
- package/dist/modules/git/commits/gitLogFetcher.js +0 -0
- package/dist/modules/git/commits/gitLogFetcher.js.map +0 -0
- package/dist/modules/git/commits/index.js +9 -1
- package/dist/modules/git/commits/index.js.map +1 -1
- package/dist/modules/git/commits/profileHandler.js +0 -0
- package/dist/modules/git/commits/profileHandler.js.map +0 -0
- package/dist/modules/git/commits/regexHandlers.js +0 -0
- package/dist/modules/git/commits/regexHandlers.js.map +0 -0
- package/dist/modules/git/context/branchHandler.js +0 -0
- package/dist/modules/git/context/branchHandler.js.map +0 -0
- package/dist/modules/git/context/commitHandler.js +0 -0
- package/dist/modules/git/context/commitHandler.js.map +0 -0
- package/dist/modules/git/context/index.js +0 -0
- package/dist/modules/git/context/index.js.map +0 -0
- package/dist/modules/git/context/remoteHandler.js +1 -1
- package/dist/modules/git/context/remoteHandler.js.map +1 -1
- package/dist/modules/git/context/statusHandler.js +0 -0
- package/dist/modules/git/context/statusHandler.js.map +0 -0
- package/dist/modules/git/context/tagHandler.js +0 -0
- package/dist/modules/git/context/tagHandler.js.map +0 -0
- package/dist/modules/git/gitOperations.js +0 -0
- package/dist/modules/git/gitOperations.js.map +1 -1
- package/dist/modules/git/lineTags.js +58 -0
- package/dist/modules/git/lineTags.js.map +1 -0
- package/dist/modules/git/types/Author.js +0 -0
- package/dist/modules/git/types/Author.js.map +0 -0
- package/dist/modules/git/types/Branch.js +0 -0
- package/dist/modules/git/types/Branch.js.map +0 -0
- package/dist/modules/git/types/BranchInfo.js +0 -0
- package/dist/modules/git/types/BranchInfo.js.map +0 -0
- package/dist/modules/git/types/CommitContent.js +0 -0
- package/dist/modules/git/types/CommitContent.js.map +0 -0
- package/dist/modules/git/types/CommitInfo.js +0 -0
- package/dist/modules/git/types/CommitInfo.js.map +0 -0
- package/dist/modules/git/types/CommitType.js +0 -0
- package/dist/modules/git/types/CommitType.js.map +0 -0
- package/dist/modules/git/types/GitCommit.js +0 -0
- package/dist/modules/git/types/GitCommit.js.map +0 -0
- package/dist/modules/git/types/GitReference.js +0 -0
- package/dist/modules/git/types/GitReference.js.map +0 -0
- package/dist/modules/git/types/Link.js +0 -0
- package/dist/modules/git/types/Link.js.map +0 -0
- package/dist/modules/git/types/Mention.js +0 -0
- package/dist/modules/git/types/Mention.js.map +0 -0
- package/dist/modules/git/types/Note.js +0 -0
- package/dist/modules/git/types/Note.js.map +0 -0
- package/dist/modules/git/types/RemoteInfo.js +0 -0
- package/dist/modules/git/types/RemoteInfo.js.map +0 -0
- package/dist/modules/git/types/Repository.js +0 -0
- package/dist/modules/git/types/Repository.js.map +0 -0
- package/dist/modules/git/types/StatusInfo.js +0 -0
- package/dist/modules/git/types/StatusInfo.js.map +0 -0
- package/dist/modules/git/types/Tag.js +0 -0
- package/dist/modules/git/types/Tag.js.map +0 -0
- package/dist/modules/git/types/TagInfo.js +0 -0
- package/dist/modules/git/types/TagInfo.js.map +0 -0
- package/dist/modules/git/utils/branchUtils.js +0 -0
- package/dist/modules/git/utils/branchUtils.js.map +0 -0
- package/dist/modules/git/utils/commitUtils.js +0 -0
- package/dist/modules/git/utils/commitUtils.js.map +0 -0
- package/dist/modules/git/utils/logUtils.js +0 -0
- package/dist/modules/git/utils/logUtils.js.map +0 -0
- package/dist/modules/git/utils/rangeOperations.js +0 -0
- package/dist/modules/git/utils/rangeOperations.js.map +0 -0
- package/dist/modules/git/utils/refUtils.js +0 -0
- package/dist/modules/git/utils/refUtils.js.map +0 -0
- package/dist/modules/git/utils/referenceUtils.js +0 -0
- package/dist/modules/git/utils/referenceUtils.js.map +0 -0
- package/dist/modules/git/utils/tagUtils.js +0 -0
- package/dist/modules/git/utils/tagUtils.js.map +0 -0
- package/dist/modules/output/writer.js +0 -0
- package/dist/modules/output/writer.js.map +0 -0
- package/dist/modules/sections/contributors.js +0 -0
- package/dist/modules/sections/contributors.js.map +0 -0
- package/dist/modules/sections/grouping.js +0 -0
- package/dist/modules/sections/grouping.js.map +0 -0
- package/dist/modules/sections/index.js +0 -0
- package/dist/modules/sections/index.js.map +0 -0
- package/dist/modules/sections/summarizing.js +0 -0
- package/dist/modules/sections/summarizing.js.map +0 -0
- package/dist/modules/sections/types/Contributor.js +0 -0
- package/dist/modules/sections/types/Contributor.js.map +0 -0
- package/dist/modules/sections/types/Group.js +0 -0
- package/dist/modules/sections/types/Group.js.map +0 -0
- package/dist/modules/sections/types/SectionSummary.js +0 -0
- package/dist/modules/sections/types/SectionSummary.js.map +0 -0
- package/dist/modules/sections/types/Sections.js +0 -0
- package/dist/modules/sections/types/Sections.js.map +0 -0
- package/dist/modules/track/TrackController.js +320 -0
- package/dist/modules/track/TrackController.js.map +1 -0
- package/dist/modules/version/BumpDeriver.js +119 -0
- package/dist/modules/version/BumpDeriver.js.map +1 -0
- package/dist/modules/version/GitVersionManager.js +42 -14
- package/dist/modules/version/GitVersionManager.js.map +1 -1
- package/dist/modules/version/ProjectVersion.js +84 -3
- package/dist/modules/version/ProjectVersion.js.map +1 -1
- package/dist/modules/version/ReleaseManager.js +0 -0
- package/dist/modules/version/ReleaseManager.js.map +0 -0
- package/dist/modules/version/VersionController.js +238 -3
- package/dist/modules/version/VersionController.js.map +1 -1
- package/dist/modules/version/VersionStamper.js +139 -0
- package/dist/modules/version/VersionStamper.js.map +1 -0
- package/dist/modules/version/VersionValidator.js +0 -0
- package/dist/modules/version/VersionValidator.js.map +0 -0
- package/dist/modules/version/branchChannel.js +94 -0
- package/dist/modules/version/branchChannel.js.map +1 -0
- package/dist/modules/version/resolveVersionRef.js +78 -0
- package/dist/modules/version/resolveVersionRef.js.map +1 -0
- package/dist/modules/version/types/const.js +0 -0
- package/dist/modules/version/types/const.js.map +0 -0
- package/dist/modules/version/versionFormatter.js +19 -1
- package/dist/modules/version/versionFormatter.js.map +1 -1
- package/dist/modules/version/versionHelper.js +0 -0
- package/dist/modules/version/versionHelper.js.map +0 -0
- package/dist/templates/constants.js +0 -0
- package/dist/templates/constants.js.map +0 -0
- package/dist/templates/defaults/changelog.detailed.ejs +0 -0
- package/dist/templates/defaults/changelog.ejs +0 -0
- package/dist/templates/templateRenderer.js +0 -0
- package/dist/templates/templateRenderer.js.map +0 -0
- package/dist/templates/templateResolver.js +0 -0
- package/dist/templates/templateResolver.js.map +0 -0
- package/dist/types/PackageJson.js +0 -0
- package/dist/types/PackageJson.js.map +0 -0
- package/dist/utils/cmd.js +15 -2
- package/dist/utils/cmd.js.map +1 -1
- package/dist/utils/date.js +0 -0
- package/dist/utils/date.js.map +0 -0
- package/package.json +5 -2
- package/dist/cli/types/BranchCliArgs.js.map +0 -1
- package/dist/cli/types/BranchCreateCliArgs.js +0 -3
- package/dist/cli/types/BranchCreateCliArgs.js.map +0 -1
- package/dist/cli/types/BranchDeleteCliArgs.js.map +0 -1
- package/dist/cli/types/BranchListCliArgs.js +0 -3
- package/dist/cli/types/BranchListCliArgs.js.map +0 -1
- package/dist/cli/types/BranchMergeCliArgs.js +0 -3
- package/dist/cli/types/BranchMergeCliArgs.js.map +0 -1
- package/dist/cli/types/BranchProtectCliArgs.js +0 -3
- package/dist/cli/types/BranchProtectCliArgs.js.map +0 -1
- package/dist/cli/types/BranchRebaseCliArgs.js +0 -3
- package/dist/cli/types/BranchRebaseCliArgs.js.map +0 -1
- package/dist/cli/types/BranchSwitchCliArgs.js +0 -3
- package/dist/cli/types/BranchSwitchCliArgs.js.map +0 -1
- package/dist/cli/types/BranchUnProtectCliArgs.js +0 -3
- package/dist/cli/types/BranchUnProtectCliArgs.js.map +0 -1
- package/dist/cli/types/ChangelogCliArgs.js.map +0 -1
- package/dist/cli/types/ChangelogGenerateCliArgs.js +0 -3
- package/dist/cli/types/ChangelogGenerateCliArgs.js.map +0 -1
- package/dist/cli/types/CliArgs.js.map +0 -1
- package/dist/cli/types/CommitAmendCliArgs.js +0 -3
- package/dist/cli/types/CommitAmendCliArgs.js.map +0 -1
- package/dist/cli/types/CommitCliArgs.js +0 -3
- package/dist/cli/types/CommitCliArgs.js.map +0 -1
- package/dist/cli/types/CommitCreateCliArgs.js +0 -3
- package/dist/cli/types/CommitCreateCliArgs.js.map +0 -1
- package/dist/cli/types/CommitListCliArgs.js +0 -3
- package/dist/cli/types/CommitListCliArgs.js.map +0 -1
- package/dist/cli/types/VersionCliArgs.js +0 -3
- package/dist/cli/types/VersionCliArgs.js.map +0 -1
- package/dist/cli/types/VersionCompareCliArgs.js +0 -3
- package/dist/cli/types/VersionCompareCliArgs.js.map +0 -1
- package/dist/cli/types/VersionIncrementCliArgs.js +0 -3
- package/dist/cli/types/VersionIncrementCliArgs.js.map +0 -1
- package/dist/cli/types/VersionInitCliArgs.js +0 -3
- package/dist/cli/types/VersionInitCliArgs.js.map +0 -1
- package/dist/cli/types/VersionListCliArgs.js +0 -3
- package/dist/cli/types/VersionListCliArgs.js.map +0 -1
- package/dist/cli/types/VersionProjectCliArgs.js +0 -3
- package/dist/cli/types/VersionProjectCliArgs.js.map +0 -1
- package/dist/cli/types/VersionRemoteCliArgs.js +0 -3
- package/dist/cli/types/VersionRemoteCliArgs.js.map +0 -1
- package/dist/cli/types/VersionResetCliArgs.js +0 -3
- package/dist/cli/types/VersionResetCliArgs.js.map +0 -1
- package/dist/cli/types/VersionRevertCliArgs.js +0 -3
- package/dist/cli/types/VersionRevertCliArgs.js.map +0 -1
- package/dist/cli/types/VersionSetCliArgs.js +0 -3
- package/dist/cli/types/VersionSetCliArgs.js.map +0 -1
- package/dist/cli/types/VersionValidateCliArgs.js +0 -3
- package/dist/cli/types/VersionValidateCliArgs.js.map +0 -1
- package/dist/commands/branchCommand.js +0 -150
- package/dist/commands/branchCommand.js.map +0 -1
- package/dist/commands/changelogCommand.js +0 -32
- package/dist/commands/changelogCommand.js.map +0 -1
- package/dist/commands/commitCommand.js +0 -58
- package/dist/commands/commitCommand.js.map +0 -1
- package/dist/commands/types/BranchCliArgs.js +0 -3
- package/dist/commands/types/BranchCliArgs.js.map +0 -1
- package/dist/commands/types/BranchCreateCliArgs.js +0 -3
- package/dist/commands/types/BranchCreateCliArgs.js.map +0 -1
- package/dist/commands/types/BranchDeleteCliArgs.js +0 -3
- package/dist/commands/types/BranchDeleteCliArgs.js.map +0 -1
- package/dist/commands/types/BranchListCliArgs.js +0 -3
- package/dist/commands/types/BranchListCliArgs.js.map +0 -1
- package/dist/commands/types/BranchMergeCliArgs.js +0 -3
- package/dist/commands/types/BranchMergeCliArgs.js.map +0 -1
- package/dist/commands/types/BranchProtectCliArgs.js +0 -3
- package/dist/commands/types/BranchProtectCliArgs.js.map +0 -1
- package/dist/commands/types/BranchRebaseCliArgs.js +0 -3
- package/dist/commands/types/BranchRebaseCliArgs.js.map +0 -1
- package/dist/commands/types/BranchSwitchCliArgs.js +0 -3
- package/dist/commands/types/BranchSwitchCliArgs.js.map +0 -1
- package/dist/commands/types/BranchUnProtectCliArgs.js +0 -3
- package/dist/commands/types/BranchUnProtectCliArgs.js.map +0 -1
- package/dist/commands/types/ChangelogCliArgs.js +0 -3
- package/dist/commands/types/ChangelogCliArgs.js.map +0 -1
- package/dist/commands/types/ChangelogGenerateCliArgs.js +0 -3
- package/dist/commands/types/ChangelogGenerateCliArgs.js.map +0 -1
- package/dist/commands/types/CommitAmendCliArgs.js +0 -3
- package/dist/commands/types/CommitAmendCliArgs.js.map +0 -1
- package/dist/commands/types/CommitCliArgs.js +0 -3
- package/dist/commands/types/CommitCliArgs.js.map +0 -1
- package/dist/commands/types/CommitCreateCliArgs.js +0 -3
- package/dist/commands/types/CommitCreateCliArgs.js.map +0 -1
- package/dist/commands/types/CommitListCliArgs.js +0 -3
- package/dist/commands/types/CommitListCliArgs.js.map +0 -1
- package/dist/commands/types/VersionCliArgs.js +0 -3
- package/dist/commands/types/VersionCliArgs.js.map +0 -1
- package/dist/commands/types/VersionCompareCliArgs.js +0 -3
- package/dist/commands/types/VersionCompareCliArgs.js.map +0 -1
- package/dist/commands/types/VersionIncrementCliArgs.js +0 -3
- package/dist/commands/types/VersionIncrementCliArgs.js.map +0 -1
- package/dist/commands/types/VersionInitCliArgs.js +0 -3
- package/dist/commands/types/VersionInitCliArgs.js.map +0 -1
- package/dist/commands/types/VersionListCliArgs.js +0 -3
- package/dist/commands/types/VersionListCliArgs.js.map +0 -1
- package/dist/commands/types/VersionProjectCliArgs.js +0 -3
- package/dist/commands/types/VersionProjectCliArgs.js.map +0 -1
- package/dist/commands/types/VersionRemoteCliArgs.js +0 -3
- package/dist/commands/types/VersionRemoteCliArgs.js.map +0 -1
- package/dist/commands/types/VersionResetCliArgs.js +0 -3
- package/dist/commands/types/VersionResetCliArgs.js.map +0 -1
- package/dist/commands/types/VersionRevertCliArgs.js +0 -3
- package/dist/commands/types/VersionRevertCliArgs.js.map +0 -1
- package/dist/commands/types/VersionSetCliArgs.js +0 -3
- package/dist/commands/types/VersionSetCliArgs.js.map +0 -1
- package/dist/commands/types/VersionValidateCliArgs.js +0 -3
- package/dist/commands/types/VersionValidateCliArgs.js.map +0 -1
- package/dist/commands/versionCommand.js +0 -134
- package/dist/commands/versionCommand.js.map +0 -1
- package/dist/core/app.js +0 -95
- package/dist/core/app.js.map +0 -1
- package/dist/core/changelog/app.js +0 -20
- package/dist/core/changelog/app.js.map +0 -1
- package/dist/modules/version/VersionManager.js +0 -92
- package/dist/modules/version/VersionManager.js.map +0 -1
|
@@ -4,10 +4,82 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ProjectVersionManager = void 0;
|
|
7
|
+
exports.matchFilesInDirectory = matchFilesInDirectory;
|
|
7
8
|
const fs_1 = require("fs");
|
|
8
9
|
const path_1 = require("path");
|
|
9
10
|
const simple_git_1 = __importDefault(require("simple-git"));
|
|
10
11
|
const GitVersionManager_1 = require("./GitVersionManager");
|
|
12
|
+
/**
|
|
13
|
+
* Names in `directory` matching a SINGLE-SEGMENT filename pattern whose only
|
|
14
|
+
* wildcard is `*`. Sorted, files only.
|
|
15
|
+
*
|
|
16
|
+
* ── WHY THIS EXISTS INSTEAD OF `glob` ────────────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* The project-file table below has exactly one wildcard in it, `*.csproj`:
|
|
19
|
+
* one path segment, one star, a flat listing of the current directory. The
|
|
20
|
+
* call site used to be `require('glob')` inside a function body, which bought
|
|
21
|
+
* recursion, brace expansion, ignore lists and negation — none of them
|
|
22
|
+
* reachable from that table.
|
|
23
|
+
*
|
|
24
|
+
* The cost was not a heavier install; it was a MISSING one. `glob` was never
|
|
25
|
+
* declared in `dependencies`. It resolved transitively through
|
|
26
|
+
* devDependencies in a development checkout, so it worked here and only here.
|
|
27
|
+
* In a packaged install — `npm pack` + `npm install --global`, which ships
|
|
28
|
+
* `dependencies` and nothing else — it is absent, and `grm version --detect`
|
|
29
|
+
* dies with "Cannot find module 'glob'". Measured 2026-08-02 against
|
|
30
|
+
* ~/.local/lib/node_modules/git-release-manager: nine e2e cases red, while the
|
|
31
|
+
* same code passed from the source tree.
|
|
32
|
+
*
|
|
33
|
+
* Promoting `glob` to `dependencies` would also close it, and was rejected:
|
|
34
|
+
* the version transitively present is 7.2.3, which is end-of-life, and glob 9+
|
|
35
|
+
* renamed `sync` to `globSync`, so the honest options were "ship a deprecated
|
|
36
|
+
* major" or "change this code anyway". `fs.globSync` closes it in one line but
|
|
37
|
+
* arrived in Node 22, and package.json declares `engines: { node: '>=14' }` —
|
|
38
|
+
* trading an undeclared dependency for a silently broken engine floor is the
|
|
39
|
+
* same defect in different clothes.
|
|
40
|
+
*
|
|
41
|
+
* ── IT REFUSES WHAT IT CANNOT SERVE ──────────────────────────────────────
|
|
42
|
+
*
|
|
43
|
+
* A pattern with a path separator, `**`, or any other glob metacharacter needs
|
|
44
|
+
* a real glob implementation. Returning "no match" for one would surface later
|
|
45
|
+
* as "No supported project file found in current directory" — a sentence that
|
|
46
|
+
* sounds true and describes the wrong thing. So it throws, naming the pattern.
|
|
47
|
+
*/
|
|
48
|
+
function matchFilesInDirectory(pattern, directory) {
|
|
49
|
+
// Anything that is a glob metacharacter but not the `*` handled below.
|
|
50
|
+
if (pattern.includes('**') || /[/\\?[\]{}()!+@]/.test(pattern)) {
|
|
51
|
+
throw new Error(`Unsupported project file pattern '${pattern}': ` +
|
|
52
|
+
`only single-segment names whose sole wildcard is '*' are supported.`);
|
|
53
|
+
}
|
|
54
|
+
// Split on `*` FIRST, then escape each literal chunk. That way the star is
|
|
55
|
+
// never itself escaped, and every other regex metacharacter is.
|
|
56
|
+
const source = pattern
|
|
57
|
+
.split('*')
|
|
58
|
+
.map(chunk => chunk.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
|
|
59
|
+
.join('[^/]*');
|
|
60
|
+
const matcher = new RegExp(`^${source}$`);
|
|
61
|
+
let entries;
|
|
62
|
+
try {
|
|
63
|
+
entries = (0, fs_1.readdirSync)(directory, { withFileTypes: true });
|
|
64
|
+
}
|
|
65
|
+
catch (_a) {
|
|
66
|
+
// An unreadable directory has no project file in it. The caller's own
|
|
67
|
+
// "no supported project file found" is the right sentence here.
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
return entries
|
|
71
|
+
.filter(entry => entry.isFile() || entry.isSymbolicLink())
|
|
72
|
+
.map(entry => entry.name)
|
|
73
|
+
// glob parity: a leading `*` does not match a leading dot, so
|
|
74
|
+
// `*.csproj` must not select a file literally named `.csproj`.
|
|
75
|
+
.filter(name => !(name.startsWith('.') && pattern.startsWith('*')))
|
|
76
|
+
.filter(name => matcher.test(name))
|
|
77
|
+
// glob.sync returns sorted results by default, and the caller takes
|
|
78
|
+
// [0]. Without this the pick would follow readdir order, which is
|
|
79
|
+
// filesystem-dependent — the same directory could resolve to a
|
|
80
|
+
// different project file on a different machine.
|
|
81
|
+
.sort();
|
|
82
|
+
}
|
|
11
83
|
class PackageJsonVersion {
|
|
12
84
|
constructor(path = 'package.json') {
|
|
13
85
|
this.filePath = path;
|
|
@@ -135,9 +207,18 @@ class ProjectVersionManager {
|
|
|
135
207
|
// Path belirtilmemişse, mevcut dizinde desteklenen ilk proje dosyasını bul
|
|
136
208
|
for (const { pattern, handler } of this.PROJECT_FILES) {
|
|
137
209
|
if (pattern.includes('*')) {
|
|
138
|
-
// Wildcard
|
|
139
|
-
|
|
140
|
-
|
|
210
|
+
// Wildcard patterns are matched against a flat listing of the
|
|
211
|
+
// current directory — see matchFilesInDirectory for why this is
|
|
212
|
+
// not `glob`.
|
|
213
|
+
//
|
|
214
|
+
// Both branches fixed the same undeclared-`glob` defect, one as
|
|
215
|
+
// a private matchInCwd and one as this exported function. The
|
|
216
|
+
// exported one wins because it is the one under test
|
|
217
|
+
// (test/unit/version/projectFilePattern.test.ts covers the
|
|
218
|
+
// supported patterns AND the refusals); a private method with
|
|
219
|
+
// no caller left would have been the same code with the seal
|
|
220
|
+
// removed.
|
|
221
|
+
const files = matchFilesInDirectory(pattern, process.cwd());
|
|
141
222
|
if (files.length > 0) {
|
|
142
223
|
return {
|
|
143
224
|
filePath: (0, path_1.join)(process.cwd(), files[0]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectVersion.js","sourceRoot":"","sources":["../../../src/modules/version/ProjectVersion.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"ProjectVersion.js","sourceRoot":"","sources":["../../../src/modules/version/ProjectVersion.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VersionController = void 0;
|
|
4
|
+
const resolveVersionRef_1 = require("./resolveVersionRef");
|
|
5
|
+
const branchChannel_1 = require("./branchChannel");
|
|
6
|
+
const configManager_1 = require("../../config/configManager");
|
|
7
|
+
const VersionStamper_1 = require("./VersionStamper");
|
|
8
|
+
const commitProcessor_1 = require("../git/commits/commitProcessor");
|
|
9
|
+
const BumpDeriver_1 = require("./BumpDeriver");
|
|
4
10
|
const GitVersionManager_1 = require("./GitVersionManager");
|
|
5
11
|
const ProjectVersion_1 = require("./ProjectVersion");
|
|
6
12
|
const ReleaseManager_1 = require("./ReleaseManager");
|
|
@@ -12,8 +18,161 @@ class VersionController {
|
|
|
12
18
|
this.validator = new VersionValidator_1.VersionValidator();
|
|
13
19
|
this.projectVersionManager = new ProjectVersion_1.ProjectVersionManager();
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* resolveBaselineRef — the shared resolver, kept as a method so the call
|
|
23
|
+
* sites below read unchanged.
|
|
24
|
+
*
|
|
25
|
+
* THE BODY MOVED to modules/version/resolveVersionRef (DECISIONS D4). It was
|
|
26
|
+
* private here while `--revert` and `--compare` each answered the same
|
|
27
|
+
* question their own way — three verbs, three behaviours. One place is the
|
|
28
|
+
* decision; this wrapper is what keeps it one.
|
|
29
|
+
*/
|
|
30
|
+
async resolveBaselineRef(baseline, prefix) {
|
|
31
|
+
return (0, resolveVersionRef_1.resolveVersionRef)(baseline, prefix);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* deriveBumpFromRange — read the commits this version would cover and grade
|
|
35
|
+
* them against the configured taxonomy.
|
|
36
|
+
*
|
|
37
|
+
* Returns null when the range cannot be established, and the caller then
|
|
38
|
+
* proceeds with its normal default rather than failing. That is deliberate:
|
|
39
|
+
* `--derive` asks the history for an OPINION, and a repository with no
|
|
40
|
+
* baseline (the first version ever) genuinely has none to give. Refusing
|
|
41
|
+
* there would make the first release the one command nobody can run.
|
|
42
|
+
*/
|
|
43
|
+
async deriveBumpFromRange(options) {
|
|
44
|
+
var _a, _b, _c;
|
|
45
|
+
try {
|
|
46
|
+
const config = await (0, configManager_1.readConfig)(options.config, options.environment);
|
|
47
|
+
const baseline = (_a = options.from) !== null && _a !== void 0 ? _a : (await this.gitManager.getLatestTag(options.prefix, options.channel));
|
|
48
|
+
if (!baseline)
|
|
49
|
+
return null;
|
|
50
|
+
// THE BASELINE IS A VERSION; THE RANGE NEEDS A REF, and they are not
|
|
51
|
+
// the same string. `--from 1.0.0` is a perfectly good baseline for
|
|
52
|
+
// the arithmetic — semver does not care about a `v` — while the tag
|
|
53
|
+
// in the repository is `v1.0.0`, so handing it straight to `git log`
|
|
54
|
+
// produces "ambiguous argument '1.0.0..HEAD'". The arithmetic then
|
|
55
|
+
// still answers, from a range that was never read: a derivation that
|
|
56
|
+
// silently graded nothing.
|
|
57
|
+
//
|
|
58
|
+
// --since IS THE CALLER SAYING THE TWO CANNOT BE INFERRED FROM EACH
|
|
59
|
+
// OTHER. A project running several version LINES tags them
|
|
60
|
+
// `<line>-vX.Y.Z`, so the baseline it hands over is the bare semver
|
|
61
|
+
// core `1.0.0` while the ref that starts the range is
|
|
62
|
+
// `catalystctl-v1.0.0`. Guessing from the core alone finds the
|
|
63
|
+
// repository's OWN `v1.0.0` — a real tag, at the wrong point in
|
|
64
|
+
// history — and the derivation then grades a range belonging to a
|
|
65
|
+
// different line. Measured: a component whose tree had not been
|
|
66
|
+
// touched derived a patch bump from another line's commits.
|
|
67
|
+
const from = options.since
|
|
68
|
+
? await this.resolveBaselineRef(options.since, options.prefix)
|
|
69
|
+
: await this.resolveBaselineRef(baseline, options.prefix);
|
|
70
|
+
if (!from) {
|
|
71
|
+
console.error(`bump: ${options.since ? `range start '${options.since}'` : `baseline '${baseline}'`} ` +
|
|
72
|
+
`does not resolve to a ref in this repository, ` +
|
|
73
|
+
`so there is no range to grade; falling back to the flags given`);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const to = (_b = options.to) !== null && _b !== void 0 ? _b : 'HEAD';
|
|
77
|
+
// --no-merges: a merge commit carries no type and never could. Its
|
|
78
|
+
// content is the commits it joins, and those are in this range too.
|
|
79
|
+
//
|
|
80
|
+
// --paths scopes the derivation to ONE component's tree. Without it
|
|
81
|
+
// a repository with several independently-versioned products grades
|
|
82
|
+
// every one of them against every commit, so a fix in product A
|
|
83
|
+
// bumps product B — and the two lines, whose whole purpose is to be
|
|
84
|
+
// independent, move in lockstep while each claims to be its own.
|
|
85
|
+
// `--` separates pathspecs from revisions; without it git resolves a
|
|
86
|
+
// path that happens to look like a ref and answers about the wrong
|
|
87
|
+
// thing.
|
|
88
|
+
const pathspecs = ((_c = options.paths) !== null && _c !== void 0 ? _c : '').split(/\s+/).filter(Boolean);
|
|
89
|
+
const logArgs = ['--no-merges', ...(pathspecs.length ? ['--', ...pathspecs] : [])];
|
|
90
|
+
const commits = await (0, commitProcessor_1.getGitLogAsJson)(`${from}..${to}`, logArgs);
|
|
91
|
+
if (!(commits === null || commits === void 0 ? void 0 : commits.length))
|
|
92
|
+
return null;
|
|
93
|
+
return (0, BumpDeriver_1.deriveBump)(commits, config);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
// A derivation that cannot run must not take the version path down
|
|
97
|
+
// with it — the caller still has an explicit default. It says so on
|
|
98
|
+
// stderr, because a SILENT fallback would look exactly like a range
|
|
99
|
+
// that legitimately voted patch.
|
|
100
|
+
console.error(`bump: could not derive from history (${error instanceof Error ? error.message : String(error)}); ` +
|
|
101
|
+
`falling back to the flags given`);
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* withConfiguredPrefix — let `tag.prefix` in the config be the default for
|
|
107
|
+
* `--prefix`.
|
|
108
|
+
*
|
|
109
|
+
* WHY THIS EXISTS. The prefix was DECLARED in three places and read in one.
|
|
110
|
+
* Measured 2026-08-06: `tag.prefix` (a project config), `tag.format` (the
|
|
111
|
+
* packaged default and the Config type) and `config.tagPrefix` (read by
|
|
112
|
+
* FlowManager, declared by no config, so it interpolated the string
|
|
113
|
+
* "undefined" into its patterns). The only live knob was the CLI flag. A
|
|
114
|
+
* setting a project writes and nothing reads is worse than no setting: the
|
|
115
|
+
* next reader assumes the prefix is configured and it is not.
|
|
116
|
+
*
|
|
117
|
+
* THE FLAG STILL WINS, always. A caller that passes --prefix has said
|
|
118
|
+
* something more specific than the file, and a caller that passes NOTHING
|
|
119
|
+
* on a project with no tag.prefix gets exactly today's behaviour — so this
|
|
120
|
+
* cannot change what any existing invocation does.
|
|
121
|
+
*/
|
|
122
|
+
async withConfiguredPrefix(options) {
|
|
123
|
+
var _a;
|
|
124
|
+
if (options.prefix !== undefined)
|
|
125
|
+
return options;
|
|
126
|
+
try {
|
|
127
|
+
const config = await (0, configManager_1.readConfig)(options.config, options.environment);
|
|
128
|
+
const prefix = (_a = config === null || config === void 0 ? void 0 : config.tag) === null || _a === void 0 ? void 0 : _a.prefix;
|
|
129
|
+
if (typeof prefix === 'string' && prefix.length > 0)
|
|
130
|
+
return { ...options, prefix };
|
|
131
|
+
}
|
|
132
|
+
catch (_b) {
|
|
133
|
+
// A config that cannot be read is not a reason to fail a version
|
|
134
|
+
// command that never needed it.
|
|
135
|
+
}
|
|
136
|
+
return options;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* maybeStamp — write the version into the files the project declared.
|
|
140
|
+
*
|
|
141
|
+
* Never fatal by default. Stamping is a CONVENIENCE over a version that has
|
|
142
|
+
* already been decided and, at this point, already recorded; failing the
|
|
143
|
+
* command here would leave the caller believing no version was cut when one
|
|
144
|
+
* was. A file the project marked `required` still throws — that is the
|
|
145
|
+
* project saying the stamp is not a convenience — and the throw reaches the
|
|
146
|
+
* outer catch, which is why this does not swallow those.
|
|
147
|
+
*/
|
|
148
|
+
async maybeStamp(version, options) {
|
|
149
|
+
if (options.skipStamp)
|
|
150
|
+
return;
|
|
151
|
+
let config;
|
|
152
|
+
try {
|
|
153
|
+
config = await (0, configManager_1.readConfig)(options.config, options.environment);
|
|
154
|
+
}
|
|
155
|
+
catch (_a) {
|
|
156
|
+
return; // no config, nothing declared, nothing to stamp
|
|
157
|
+
}
|
|
158
|
+
if (!config)
|
|
159
|
+
return;
|
|
160
|
+
const stamper = new VersionStamper_1.VersionStamper(config, process.cwd());
|
|
161
|
+
if (!stamper.configured)
|
|
162
|
+
return;
|
|
163
|
+
if (!stamper.onBump && !options.stamp)
|
|
164
|
+
return;
|
|
165
|
+
const result = await stamper.stamp(version);
|
|
166
|
+
console.error(`stamp: ${VersionStamper_1.VersionStamper.describe(result)}`);
|
|
167
|
+
// An UNMATCHED file is the silent-failure case this feature exists to
|
|
168
|
+
// prevent, so it is named individually rather than left as a count.
|
|
169
|
+
for (const f of result.unmatched) {
|
|
170
|
+
console.error(`stamp: WARNING ${f} — the configured pattern matched nothing; not stamped`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
15
173
|
async handleVersionCommand(options) {
|
|
16
174
|
try {
|
|
175
|
+
options = await this.withConfiguredPrefix(options);
|
|
17
176
|
// Validate version manipulation options
|
|
18
177
|
this.validator.validateVersionOptions(options);
|
|
19
178
|
if (options.reset) {
|
|
@@ -46,11 +205,11 @@ class VersionController {
|
|
|
46
205
|
return;
|
|
47
206
|
}
|
|
48
207
|
if (options.compare) {
|
|
49
|
-
await this.gitManager.compareVersions(options.compare);
|
|
208
|
+
await this.gitManager.compareVersions(options.compare, options.prefix);
|
|
50
209
|
return;
|
|
51
210
|
}
|
|
52
211
|
if (options.revert) {
|
|
53
|
-
await this.gitManager.revertToVersion(options.revert, options.push);
|
|
212
|
+
await this.gitManager.revertToVersion(options.revert, options.push, options.prefix);
|
|
54
213
|
return;
|
|
55
214
|
}
|
|
56
215
|
if (options.validate) {
|
|
@@ -61,6 +220,46 @@ class VersionController {
|
|
|
61
220
|
await this.gitManager.syncVersions(options.push);
|
|
62
221
|
return;
|
|
63
222
|
}
|
|
223
|
+
// --derive: let the COMMITS name the bump, through the taxonomy this
|
|
224
|
+
// project already configured for its changelog.
|
|
225
|
+
//
|
|
226
|
+
// AN EXPLICIT FLAG ALWAYS WINS, and quietly. `--derive --minor` is an
|
|
227
|
+
// operator saying something the history cannot know — a compatibility
|
|
228
|
+
// break nobody marked, a release deliberately held back — and a tool
|
|
229
|
+
// that argued there would be overruled by hand every time until
|
|
230
|
+
// somebody stopped passing --derive at all.
|
|
231
|
+
//
|
|
232
|
+
// THE RANGE IS THE BASELINE'S. Whatever version this run bumps FROM
|
|
233
|
+
// is the only defensible start: it names the commit the previous
|
|
234
|
+
// version pointed at, so the range is exactly the work that is new.
|
|
235
|
+
// A wider range re-grades released commits and would re-derive the
|
|
236
|
+
// same major forever once one lands.
|
|
237
|
+
if (options.derive && !options.major && !options.minor && !options.patch) {
|
|
238
|
+
const evidence = await this.deriveBumpFromRange(options);
|
|
239
|
+
if (evidence) {
|
|
240
|
+
if (options.explainBump)
|
|
241
|
+
console.error(`bump: ${(0, BumpDeriver_1.explainBump)(evidence)}`);
|
|
242
|
+
options = { ...options, [evidence.bump]: true };
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// ── THE BRANCH MAY IMPLY A CHANNEL (DECISIONS D1) ───────────────
|
|
246
|
+
//
|
|
247
|
+
// A feature deploy cuts a real prerelease named after its branch:
|
|
248
|
+
// `feature/new-thing` → `v1.0.1-feature-new-thing.1`. Off unless the
|
|
249
|
+
// branch's strategy declares `channelFromBranch`, and never when the
|
|
250
|
+
// caller named a channel itself — an explicit `--channel` is the
|
|
251
|
+
// operator saying which line they mean, and deriving over it would
|
|
252
|
+
// put the build somewhere they did not ask for.
|
|
253
|
+
// The config is read HERE rather than threaded in: this path is
|
|
254
|
+
// reached from several verbs and only one of them already holds it.
|
|
255
|
+
// A config that cannot be read is not a reason to fail a version —
|
|
256
|
+
// impliedChannel simply finds no declaration and derives nothing.
|
|
257
|
+
const branchCfg = await (0, configManager_1.readConfig)(options.config, options.environment).catch(() => undefined);
|
|
258
|
+
const implied = await (0, branchChannel_1.impliedChannel)(branchCfg, options.channel);
|
|
259
|
+
if (implied) {
|
|
260
|
+
options = { ...options, channel: implied };
|
|
261
|
+
console.error(`channel: ${implied} (from the current branch — branchStrategies.channelFromBranch)`);
|
|
262
|
+
}
|
|
64
263
|
// Handle version creation/update
|
|
65
264
|
let newVersion = '';
|
|
66
265
|
if (options.version) {
|
|
@@ -72,11 +271,47 @@ class VersionController {
|
|
|
72
271
|
else {
|
|
73
272
|
newVersion = await this.gitManager.generateNewVersion(options);
|
|
74
273
|
}
|
|
274
|
+
// --dry-run: answer "what WOULD be cut" without cutting.
|
|
275
|
+
//
|
|
276
|
+
// Every other path here mutates — createVersion writes release
|
|
277
|
+
// notes, createGitTag moves refs, push touches the remote — so
|
|
278
|
+
// asking the question used to mean performing the answer. A
|
|
279
|
+
// release plane whose only way to report the next version is to
|
|
280
|
+
// MINT it cannot be consulted by anything upstream: a build that
|
|
281
|
+
// wants to stamp the version it is about to produce, a CI gate
|
|
282
|
+
// checking the bump is the intended one, or an operator simply
|
|
283
|
+
// looking. The version is printed on stdout ALONE so it can be
|
|
284
|
+
// captured with $(...); everything explanatory goes to stderr.
|
|
285
|
+
if (options.dryRun) {
|
|
286
|
+
console.error(`dry-run: would create ${newVersion} (nothing was written)`);
|
|
287
|
+
console.log(newVersion);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
75
290
|
await this.releaseManager.createVersion(newVersion, options);
|
|
291
|
+
// ── STAMP THE WORKING TREE, BEFORE THE TAG ────────────────────
|
|
292
|
+
//
|
|
293
|
+
// The order is the whole point. A tag is a pointer to a COMMIT, so
|
|
294
|
+
// stamping after tagging produces a tag whose files still say the
|
|
295
|
+
// previous version — the artefact built from that tag then carries
|
|
296
|
+
// a number that contradicts the tag it was built from, and the
|
|
297
|
+
// contradiction is invisible until somebody installs it.
|
|
298
|
+
//
|
|
299
|
+
// Opt-in twice over: nothing happens unless `versioning.stamp.files`
|
|
300
|
+
// is configured, and even then only with `--stamp` or
|
|
301
|
+
// `versioning.stamp.onBump`. A project that has never heard of this
|
|
302
|
+
// feature must behave on upgrade exactly as it did before.
|
|
303
|
+
await this.maybeStamp(newVersion, options);
|
|
76
304
|
// Create git tag
|
|
77
305
|
if (options.tag !== false) {
|
|
78
306
|
// Default to true if not explicitly set to false
|
|
79
|
-
|
|
307
|
+
// The note becomes the ANNOTATED TAG'S BODY. It was being
|
|
308
|
+
// dropped: createGitTag was called without it, so the tag
|
|
309
|
+
// message defaulted to the version string and the release note
|
|
310
|
+
// lived only wherever createVersion put it. An annotated tag
|
|
311
|
+
// whose body merely repeats its own name records nothing —
|
|
312
|
+
// "who cut this, from what, and why" is the entire reason the
|
|
313
|
+
// tag is an object rather than a ref.
|
|
314
|
+
await this.gitManager.createGitTag(newVersion, options.note);
|
|
80
315
|
console.log(`Created tag: ${newVersion}`);
|
|
81
316
|
}
|
|
82
317
|
// Push changes if requested
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionController.js","sourceRoot":"","sources":["../../../src/modules/version/VersionController.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AACvD,qDAAwD;AACxD,qDAAiD;AACjD,yDAAqD;AAErD,MAAa,iBAAiB;IAM1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,qCAAiB,EAAE,CAAA;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,mCAAgB,EAAE,CAAA;QACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,sCAAqB,EAAE,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAuB;QAC9C,IAAI,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAA;gBACpC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBAC3F,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAC,QAAQ,sBAAsB,cAAc,CAAC,cAAc,EAAE,CAAC,CAAA;gBAEhH,iFAAiF;gBACjF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClD,uCAAuC;oBACvC,0DAA0D;gBAC9D,CAAC;gBAED,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,sBAAsB;gBACtB,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;gBAEtF,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAC1F,OAAM;YACV,CAAC;YAED,oCAAoC;YACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC,CAAA;gBACjG,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAA;gBACzC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"VersionController.js","sourceRoot":"","sources":["../../../src/modules/version/VersionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VersionStamper = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
10
|
+
const ProjectVersion_1 = require("./ProjectVersion");
|
|
11
|
+
class VersionStamper {
|
|
12
|
+
constructor(config, root = process.cwd()) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.root = root;
|
|
15
|
+
}
|
|
16
|
+
/** Whether the project has asked for any stamping at all. */
|
|
17
|
+
get configured() {
|
|
18
|
+
var _a, _b, _c, _d, _e;
|
|
19
|
+
return ((_e = (_d = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.versioning) === null || _b === void 0 ? void 0 : _b.stamp) === null || _c === void 0 ? void 0 : _c.files) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0) > 0;
|
|
20
|
+
}
|
|
21
|
+
/** Whether a bump should stamp without being asked. Opt-in, default off. */
|
|
22
|
+
get onBump() {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
return this.configured && ((_b = (_a = this.config.versioning) === null || _a === void 0 ? void 0 : _a.stamp) === null || _b === void 0 ? void 0 : _b.onBump) === true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Expand one configured entry to concrete files.
|
|
28
|
+
*
|
|
29
|
+
* The wildcard rules are ProjectVersion's, deliberately: one matcher in the
|
|
30
|
+
* codebase, one set of refusals, one place that has been told why `glob` is
|
|
31
|
+
* not used here. A pattern this matcher cannot serve throws by name rather
|
|
32
|
+
* than resolving to "no files", which would read as "nothing to stamp".
|
|
33
|
+
*/
|
|
34
|
+
expand(entry) {
|
|
35
|
+
const rel = entry.path;
|
|
36
|
+
if (!rel.includes('*')) {
|
|
37
|
+
return [rel];
|
|
38
|
+
}
|
|
39
|
+
const idx = rel.lastIndexOf('/');
|
|
40
|
+
const dir = idx === -1 ? '' : rel.slice(0, idx);
|
|
41
|
+
const base = idx === -1 ? rel : rel.slice(idx + 1);
|
|
42
|
+
const abs = (0, path_1.isAbsolute)(dir) ? dir : (0, path_1.join)(this.root, dir);
|
|
43
|
+
if (!(0, fs_1.existsSync)(abs))
|
|
44
|
+
return [];
|
|
45
|
+
return (0, ProjectVersion_1.matchFilesInDirectory)(base, abs).map(f => (dir ? `${dir}/${f}` : f));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Substitute the placeholders a project may use in `replace` and in the
|
|
49
|
+
* commit message. `{versionCore}` exists because a tag prefix belongs to the
|
|
50
|
+
* LINE, not to the version: a manifest field that must parse as semver
|
|
51
|
+
* cannot hold `v1.2.3`, and a project should not have to strip it with a
|
|
52
|
+
* regex in the replacement string.
|
|
53
|
+
*/
|
|
54
|
+
fill(template, version) {
|
|
55
|
+
const core = version.replace(/^[^0-9]*/, '');
|
|
56
|
+
return template
|
|
57
|
+
.replace(/\{version\}/g, version)
|
|
58
|
+
.replace(/\{versionCore\}/g, core);
|
|
59
|
+
}
|
|
60
|
+
async stamp(version, opts = {}) {
|
|
61
|
+
var _a, _b, _c, _d, _e, _f;
|
|
62
|
+
const out = { stamped: [], unmatched: [], missing: [], unchanged: [] };
|
|
63
|
+
const stampCfg = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.versioning) === null || _b === void 0 ? void 0 : _b.stamp;
|
|
64
|
+
if (!((_c = stampCfg === null || stampCfg === void 0 ? void 0 : stampCfg.files) === null || _c === void 0 ? void 0 : _c.length))
|
|
65
|
+
return out;
|
|
66
|
+
for (const entry of stampCfg.files) {
|
|
67
|
+
const files = this.expand(entry);
|
|
68
|
+
if (files.length === 0) {
|
|
69
|
+
if (entry.required) {
|
|
70
|
+
throw new Error(`Version stamp: required path '${entry.path}' matched no file under ${this.root}.`);
|
|
71
|
+
}
|
|
72
|
+
out.missing.push(entry.path);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
for (const rel of files) {
|
|
76
|
+
const abs = (0, path_1.isAbsolute)(rel) ? rel : (0, path_1.resolve)(this.root, rel);
|
|
77
|
+
if (!(0, fs_1.existsSync)(abs)) {
|
|
78
|
+
if (entry.required) {
|
|
79
|
+
throw new Error(`Version stamp: required file '${rel}' does not exist.`);
|
|
80
|
+
}
|
|
81
|
+
out.missing.push(rel);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const before = (0, fs_1.readFileSync)(abs, 'utf8');
|
|
85
|
+
// `m` so `^`/`$` anchor per LINE: the overwhelmingly common
|
|
86
|
+
// shape is a single `version:` line, and without it a pattern
|
|
87
|
+
// anchored at `^` can only ever match the first line of a file.
|
|
88
|
+
const re = new RegExp(entry.pattern, (_d = entry.flags) !== null && _d !== void 0 ? _d : 'm');
|
|
89
|
+
// `test` on a /g regex ADVANCES lastIndex, and the same object
|
|
90
|
+
// is reused for the replace below. `String.replace` happens to
|
|
91
|
+
// reset it, so this is currently harmless — and it is reset
|
|
92
|
+
// explicitly anyway, because "harmless because of what the
|
|
93
|
+
// other method does" is exactly the kind of coupling that
|
|
94
|
+
// breaks when one of the two lines moves.
|
|
95
|
+
const matched = re.test(before);
|
|
96
|
+
re.lastIndex = 0;
|
|
97
|
+
if (!matched) {
|
|
98
|
+
if (entry.required) {
|
|
99
|
+
throw new Error(`Version stamp: pattern /${entry.pattern}/ found nothing in required file '${rel}'.`);
|
|
100
|
+
}
|
|
101
|
+
out.unmatched.push(rel);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const after = before.replace(re, this.fill(entry.replace, version));
|
|
105
|
+
if (after === before) {
|
|
106
|
+
out.unchanged.push(rel);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (!opts.dryRun)
|
|
110
|
+
(0, fs_1.writeFileSync)(abs, after);
|
|
111
|
+
out.stamped.push(rel);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (!opts.dryRun && out.stamped.length > 0 && ((_e = stampCfg.commit) === null || _e === void 0 ? void 0 : _e.enabled)) {
|
|
115
|
+
const git = (0, simple_git_1.default)(this.root);
|
|
116
|
+
// PATHSPEC, never `-a`. See refusal 2 in the header.
|
|
117
|
+
await git.add(['--', ...out.stamped]);
|
|
118
|
+
const msg = this.fill((_f = stampCfg.commit.message) !== null && _f !== void 0 ? _f : 'chore(version): stamp {version}', version);
|
|
119
|
+
const res = await git.commit(msg, out.stamped);
|
|
120
|
+
out.commit = res.commit || undefined;
|
|
121
|
+
}
|
|
122
|
+
return out;
|
|
123
|
+
}
|
|
124
|
+
/** A one-line human summary — the shape a CLI prints on STDERR. */
|
|
125
|
+
static describe(r) {
|
|
126
|
+
const bits = [`${r.stamped.length} stamped`];
|
|
127
|
+
if (r.unchanged.length)
|
|
128
|
+
bits.push(`${r.unchanged.length} already current`);
|
|
129
|
+
if (r.unmatched.length)
|
|
130
|
+
bits.push(`${r.unmatched.length} UNMATCHED`);
|
|
131
|
+
if (r.missing.length)
|
|
132
|
+
bits.push(`${r.missing.length} missing`);
|
|
133
|
+
if (r.commit)
|
|
134
|
+
bits.push(`committed ${r.commit.slice(0, 10)}`);
|
|
135
|
+
return bits.join(' · ');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.VersionStamper = VersionStamper;
|
|
139
|
+
//# sourceMappingURL=VersionStamper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionStamper.js","sourceRoot":"","sources":["../../../src/modules/version/VersionStamper.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|