@storm-software/git-tools 2.89.40 → 2.90.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 CHANGED
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
21
21
 
22
22
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
23
23
 
24
- [![Version](https://img.shields.io/badge/version-2.89.40-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
24
+ [![Version](https://img.shields.io/badge/version-2.89.41-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
25
 
26
26
  <!-- prettier-ignore-start -->
27
27
  <!-- markdownlint-disable -->
package/bin/git.cjs CHANGED
@@ -64534,7 +64534,7 @@ var DEFAULT_RELEASE_CONFIG = {
64534
64534
  }
64535
64535
  },
64536
64536
  version: {
64537
- preVersionCommand: "pnpm nx affected -t build --parallel=3 --configuration=production",
64537
+ preVersionCommand: "pnpm build",
64538
64538
  generator: "@storm-software/workspace-tools:release-version",
64539
64539
  generatorOptions: {
64540
64540
  currentVersionResolver: "git-tag",
@@ -64563,52 +64563,139 @@ var _filemaputilsjs = require('nx/src/project-graph/file-map-utils.js');
64563
64563
 
64564
64564
  var _paramsjs = require('nx/src/utils/params.js');
64565
64565
  async function releaseVersion(config, args) {
64566
- _chunkNTA62AN7cjs.writeInfo.call(void 0, "Running release version command", config);
64567
- const projectGraph = await _projectgraphjs.createProjectGraphAsync.call(void 0, {
64568
- exitOnError: true
64569
- });
64570
- const { projects } = _projectgraphjs.readProjectsConfigurationFromProjectGraph.call(void 0, projectGraph);
64571
- const nxJson = _nxjsonjs.readNxJson.call(void 0, );
64572
- const workspaceRoot2 = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _178 => _178.workspaceRoot]), () => ( _chunkNTA62AN7cjs.findWorkspaceRoot.call(void 0, )));
64573
- if (args.verbose) {
64574
- process.env.NX_VERBOSE_LOGGING = "true";
64575
- }
64576
- const { error: configError, nxReleaseConfig } = await _configjs.createNxReleaseConfig.call(void 0, projectGraph, await _filemaputilsjs.createProjectFileMapUsingProjectGraph.call(void 0, projectGraph), nxJson.release);
64577
- if (configError) {
64578
- return await _configjs.handleNxReleaseConfigError.call(void 0, configError);
64579
- }
64580
- if ((args.gitCommit === void 0 || args.gitTag === void 0 || args.stageChanges === void 0) && _optionalChain([nxJson, 'access', _179 => _179.release, 'optionalAccess', _180 => _180.git])) {
64581
- await _resolvenxjsonerrormessagejs.resolveNxJsonConfigErrorMessage.call(void 0, [
64582
- "release",
64583
- "git"
64584
- ]);
64585
- throw new Error(`The "release.git" property in nx.json may not be used with the "nx release version" subcommand or programmatic API. Instead, configure git options for subcommands directly with "release.version.git" and "release.changelog.git".`);
64586
- }
64587
- _chunkNTA62AN7cjs.writeInfo.call(void 0, "Filtering projects and release groups", config);
64588
- const { error: filterError, releaseGroups, releaseGroupToFilteredProjects } = _filterreleasegroupsjs.filterReleaseGroups.call(void 0, projectGraph, nxReleaseConfig, args.projects, args.groups);
64589
- if (filterError) {
64590
- _chunkNTA62AN7cjs.writeError.call(void 0, filterError.title, config);
64591
- throw new Error(filterError.title);
64592
- }
64593
- const tree = new (0, _treejs.FsTree)(workspaceRoot2, true);
64594
- const versionData = {};
64595
- const commitMessage = args.gitCommitMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _181 => _181.version, 'access', _182 => _182.git, 'access', _183 => _183.commitMessage]);
64596
- const additionalChangedFiles = /* @__PURE__ */ new Set();
64597
- const generatorCallbacks = [];
64598
- if (_optionalChain([args, 'access', _184 => _184.projects, 'optionalAccess', _185 => _185.length])) {
64599
- _chunkNTA62AN7cjs.writeInfo.call(void 0, "Run versioning for all remaining release groups and filtered projects within them", config);
64566
+ try {
64567
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, "Running release version command", config);
64568
+ const projectGraph = await _projectgraphjs.createProjectGraphAsync.call(void 0, {
64569
+ exitOnError: true
64570
+ });
64571
+ const { projects } = _projectgraphjs.readProjectsConfigurationFromProjectGraph.call(void 0, projectGraph);
64572
+ const nxJson = _nxjsonjs.readNxJson.call(void 0, );
64573
+ const workspaceRoot2 = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _178 => _178.workspaceRoot]), () => ( _chunkNTA62AN7cjs.findWorkspaceRoot.call(void 0, )));
64574
+ if (args.verbose) {
64575
+ process.env.NX_VERBOSE_LOGGING = "true";
64576
+ }
64577
+ const { error: configError, nxReleaseConfig } = await _configjs.createNxReleaseConfig.call(void 0, projectGraph, await _filemaputilsjs.createProjectFileMapUsingProjectGraph.call(void 0, projectGraph), args.nxReleaseConfig);
64578
+ if (configError) {
64579
+ return await _configjs.handleNxReleaseConfigError.call(void 0, configError);
64580
+ }
64581
+ if ((args.gitCommit === void 0 || args.gitTag === void 0 || args.stageChanges === void 0) && _optionalChain([nxJson, 'access', _179 => _179.release, 'optionalAccess', _180 => _180.git])) {
64582
+ await _resolvenxjsonerrormessagejs.resolveNxJsonConfigErrorMessage.call(void 0, [
64583
+ "release",
64584
+ "git"
64585
+ ]);
64586
+ throw new Error(`The "release.git" property in nx.json may not be used with the "nx release version" subcommand or programmatic API. Instead, configure git options for subcommands directly with "release.version.git" and "release.changelog.git".`);
64587
+ }
64588
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, "Filtering projects and release groups", config);
64589
+ const { error: filterError, releaseGroups, releaseGroupToFilteredProjects } = _filterreleasegroupsjs.filterReleaseGroups.call(void 0, projectGraph, nxReleaseConfig, args.projects, args.groups);
64590
+ if (filterError) {
64591
+ _chunkNTA62AN7cjs.writeError.call(void 0, filterError.title, config);
64592
+ throw new Error(filterError.title);
64593
+ }
64594
+ const tree = new (0, _treejs.FsTree)(workspaceRoot2, true);
64595
+ const versionData = {};
64596
+ const commitMessage = args.gitCommitMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _181 => _181.version, 'access', _182 => _182.git, 'access', _183 => _183.commitMessage]);
64597
+ const additionalChangedFiles = /* @__PURE__ */ new Set();
64598
+ const generatorCallbacks = [];
64599
+ if (_optionalChain([args, 'access', _184 => _184.projects, 'optionalAccess', _185 => _185.length])) {
64600
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, "Run versioning for all remaining release groups and filtered projects within them", config);
64601
+ for (const releaseGroup of releaseGroups) {
64602
+ const releaseGroupName = releaseGroup.name;
64603
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, `Running versioning for release group "${releaseGroupName}" and filtered projects within it`, config);
64604
+ const releaseGroupProjectNames = Array.from(_nullishCoalesce(releaseGroupToFilteredProjects.get(releaseGroup), () => ( [])));
64605
+ const projectBatches = _batchprojectsbygeneratorconfigjs.batchProjectsByGeneratorConfig.call(void 0,
64606
+ projectGraph,
64607
+ releaseGroup,
64608
+ // Only batch based on the filtered projects within the release group
64609
+ releaseGroupProjectNames
64610
+ );
64611
+ for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64612
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, `Running versioning for batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, config);
64613
+ const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64614
+ const generatorData = resolveGeneratorData({
64615
+ ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
64616
+ configGeneratorOptions: generatorOptions,
64617
+ // all project data from the project graph (not to be confused with projectNamesToRunVersionOn)
64618
+ projects
64619
+ });
64620
+ const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64621
+ generatorCallbacks.push(async () => {
64622
+ const changedFiles3 = await generatorCallback(tree, {
64623
+ dryRun: !!args.dryRun,
64624
+ verbose: !!args.verbose,
64625
+ generatorOptions
64626
+ });
64627
+ if (Array.isArray(changedFiles3)) {
64628
+ for (const f of changedFiles3) {
64629
+ additionalChangedFiles.add(f);
64630
+ }
64631
+ } else {
64632
+ for (const f of changedFiles3.changedFiles) {
64633
+ additionalChangedFiles.add(f);
64634
+ }
64635
+ }
64636
+ });
64637
+ }
64638
+ }
64639
+ const gitTagValues2 = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _186 => _186.version, 'access', _187 => _187.git, 'access', _188 => _188.tag]))) ? _sharedjs.createGitTagValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64640
+ _sharedjs.handleDuplicateGitTags.call(void 0, gitTagValues2);
64641
+ printAndFlushChanges(config, tree, !!args.dryRun);
64642
+ for (const generatorCallback of generatorCallbacks) {
64643
+ await generatorCallback();
64644
+ }
64645
+ const changedFiles2 = [
64646
+ ...tree.listChanges().map((f) => f.path),
64647
+ ...additionalChangedFiles
64648
+ ];
64649
+ if (!changedFiles2.length) {
64650
+ return {
64651
+ // An overall workspace version cannot be relevant when filtering to independent projects
64652
+ workspaceVersion: void 0,
64653
+ projectsVersionData: versionData
64654
+ };
64655
+ }
64656
+ if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _189 => _189.version, 'access', _190 => _190.git, 'access', _191 => _191.commit])))) {
64657
+ await _sharedjs.commitChanges.call(void 0, {
64658
+ changedFiles: changedFiles2,
64659
+ isDryRun: !!args.dryRun,
64660
+ isVerbose: !!args.verbose,
64661
+ gitCommitMessages: _sharedjs.createCommitMessageValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
64662
+ gitCommitArgs: args.gitCommitArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _192 => _192.version, 'access', _193 => _193.git, 'access', _194 => _194.commitArgs])
64663
+ });
64664
+ } else if (_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _195 => _195.version, 'access', _196 => _196.git, 'access', _197 => _197.stageChanges])))) {
64665
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, "Staging changed files with git", config);
64666
+ await _gitjs.gitAdd.call(void 0, {
64667
+ changedFiles: changedFiles2,
64668
+ dryRun: args.dryRun,
64669
+ verbose: args.verbose
64670
+ });
64671
+ }
64672
+ if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _198 => _198.version, 'access', _199 => _199.git, 'access', _200 => _200.tag])))) {
64673
+ _chunkNTA62AN7cjs.writeInfo.call(void 0, "Tagging commit with git", config);
64674
+ for (const tag of gitTagValues2) {
64675
+ await _gitjs.gitTag.call(void 0, {
64676
+ tag,
64677
+ message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _201 => _201.version, 'access', _202 => _202.git, 'access', _203 => _203.tagMessage]),
64678
+ additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _204 => _204.version, 'access', _205 => _205.git, 'access', _206 => _206.tagArgs]),
64679
+ dryRun: args.dryRun,
64680
+ verbose: args.verbose
64681
+ });
64682
+ }
64683
+ }
64684
+ return {
64685
+ // An overall workspace version cannot be relevant when filtering to independent projects
64686
+ workspaceVersion: void 0,
64687
+ projectsVersionData: versionData
64688
+ };
64689
+ }
64600
64690
  for (const releaseGroup of releaseGroups) {
64601
64691
  const releaseGroupName = releaseGroup.name;
64602
- _chunkNTA62AN7cjs.writeInfo.call(void 0, `Running versioning for release group "${releaseGroupName}" and filtered projects within it`, config);
64603
- const releaseGroupProjectNames = Array.from(_nullishCoalesce(releaseGroupToFilteredProjects.get(releaseGroup), () => ( [])));
64604
64692
  const projectBatches = _batchprojectsbygeneratorconfigjs.batchProjectsByGeneratorConfig.call(void 0,
64605
64693
  projectGraph,
64606
64694
  releaseGroup,
64607
- // Only batch based on the filtered projects within the release group
64608
- releaseGroupProjectNames
64695
+ // Batch based on all projects within the release group
64696
+ releaseGroup.projects
64609
64697
  );
64610
64698
  for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64611
- _chunkNTA62AN7cjs.writeInfo.call(void 0, `Running versioning for batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, config);
64612
64699
  const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64613
64700
  const generatorData = resolveGeneratorData({
64614
64701
  ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
@@ -64618,167 +64705,91 @@ async function releaseVersion(config, args) {
64618
64705
  });
64619
64706
  const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64620
64707
  generatorCallbacks.push(async () => {
64621
- const changedFiles3 = await generatorCallback(tree, {
64708
+ const changedFiles2 = await generatorCallback(tree, {
64622
64709
  dryRun: !!args.dryRun,
64623
64710
  verbose: !!args.verbose,
64624
64711
  generatorOptions
64625
64712
  });
64626
- if (Array.isArray(changedFiles3)) {
64627
- for (const f of changedFiles3) {
64713
+ if (Array.isArray(changedFiles2)) {
64714
+ for (const f of changedFiles2) {
64628
64715
  additionalChangedFiles.add(f);
64629
64716
  }
64630
64717
  } else {
64631
- for (const f of changedFiles3.changedFiles) {
64718
+ for (const f of changedFiles2.changedFiles) {
64632
64719
  additionalChangedFiles.add(f);
64633
64720
  }
64634
64721
  }
64635
64722
  });
64636
64723
  }
64637
64724
  }
64638
- const gitTagValues2 = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _186 => _186.version, 'access', _187 => _187.git, 'access', _188 => _188.tag]))) ? _sharedjs.createGitTagValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64639
- _sharedjs.handleDuplicateGitTags.call(void 0, gitTagValues2);
64725
+ const gitTagValues = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _207 => _207.version, 'access', _208 => _208.git, 'access', _209 => _209.tag]))) ? _sharedjs.createGitTagValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64726
+ _sharedjs.handleDuplicateGitTags.call(void 0, gitTagValues);
64640
64727
  printAndFlushChanges(config, tree, !!args.dryRun);
64641
64728
  for (const generatorCallback of generatorCallbacks) {
64642
64729
  await generatorCallback();
64643
64730
  }
64644
- const changedFiles2 = [
64731
+ let workspaceVersion = void 0;
64732
+ if (releaseGroups.length === 1) {
64733
+ const releaseGroup = releaseGroups[0];
64734
+ if (_optionalChain([releaseGroup, 'optionalAccess', _210 => _210.projectsRelationship]) === "fixed") {
64735
+ const releaseGroupProjectNames = Array.from(_nullishCoalesce(releaseGroupToFilteredProjects.get(releaseGroup), () => ( [])));
64736
+ if (releaseGroupProjectNames.length > 0 && releaseGroupProjectNames[0]) {
64737
+ workspaceVersion = _optionalChain([versionData, 'access', _211 => _211[releaseGroupProjectNames[0]], 'optionalAccess', _212 => _212.newVersion]);
64738
+ }
64739
+ }
64740
+ }
64741
+ const changedFiles = [
64645
64742
  ...tree.listChanges().map((f) => f.path),
64646
64743
  ...additionalChangedFiles
64647
64744
  ];
64648
- if (!changedFiles2.length) {
64745
+ if (!changedFiles.length) {
64649
64746
  return {
64650
- // An overall workspace version cannot be relevant when filtering to independent projects
64651
- workspaceVersion: void 0,
64747
+ workspaceVersion,
64652
64748
  projectsVersionData: versionData
64653
64749
  };
64654
64750
  }
64655
- if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _189 => _189.version, 'access', _190 => _190.git, 'access', _191 => _191.commit])))) {
64751
+ if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _213 => _213.version, 'access', _214 => _214.git, 'access', _215 => _215.commit])))) {
64656
64752
  await _sharedjs.commitChanges.call(void 0, {
64657
- changedFiles: changedFiles2,
64753
+ changedFiles,
64658
64754
  isDryRun: !!args.dryRun,
64659
64755
  isVerbose: !!args.verbose,
64660
64756
  gitCommitMessages: _sharedjs.createCommitMessageValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
64661
- gitCommitArgs: args.gitCommitArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _192 => _192.version, 'access', _193 => _193.git, 'access', _194 => _194.commitArgs])
64757
+ gitCommitArgs: args.gitCommitArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _216 => _216.version, 'access', _217 => _217.git, 'access', _218 => _218.commitArgs])
64662
64758
  });
64663
- } else if (_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _195 => _195.version, 'access', _196 => _196.git, 'access', _197 => _197.stageChanges])))) {
64759
+ } else if (_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _219 => _219.version, 'access', _220 => _220.git, 'access', _221 => _221.stageChanges])))) {
64664
64760
  _chunkNTA62AN7cjs.writeInfo.call(void 0, "Staging changed files with git", config);
64665
64761
  await _gitjs.gitAdd.call(void 0, {
64666
- changedFiles: changedFiles2,
64762
+ changedFiles,
64667
64763
  dryRun: args.dryRun,
64668
64764
  verbose: args.verbose
64669
64765
  });
64670
64766
  }
64671
- if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _198 => _198.version, 'access', _199 => _199.git, 'access', _200 => _200.tag])))) {
64767
+ if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _222 => _222.version, 'access', _223 => _223.git, 'access', _224 => _224.tag])))) {
64672
64768
  _chunkNTA62AN7cjs.writeInfo.call(void 0, "Tagging commit with git", config);
64673
- for (const tag of gitTagValues2) {
64769
+ for (const tag of gitTagValues) {
64674
64770
  await _gitjs.gitTag.call(void 0, {
64675
64771
  tag,
64676
- message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _201 => _201.version, 'access', _202 => _202.git, 'access', _203 => _203.tagMessage]),
64677
- additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _204 => _204.version, 'access', _205 => _205.git, 'access', _206 => _206.tagArgs]),
64772
+ message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _225 => _225.version, 'access', _226 => _226.git, 'access', _227 => _227.tagMessage]),
64773
+ additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _228 => _228.version, 'access', _229 => _229.git, 'access', _230 => _230.tagArgs]),
64678
64774
  dryRun: args.dryRun,
64679
64775
  verbose: args.verbose
64680
64776
  });
64681
64777
  }
64682
64778
  }
64683
- return {
64684
- // An overall workspace version cannot be relevant when filtering to independent projects
64685
- workspaceVersion: void 0,
64686
- projectsVersionData: versionData
64687
- };
64688
- }
64689
- for (const releaseGroup of releaseGroups) {
64690
- const releaseGroupName = releaseGroup.name;
64691
- const projectBatches = _batchprojectsbygeneratorconfigjs.batchProjectsByGeneratorConfig.call(void 0,
64692
- projectGraph,
64693
- releaseGroup,
64694
- // Batch based on all projects within the release group
64695
- releaseGroup.projects
64696
- );
64697
- for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64698
- const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64699
- const generatorData = resolveGeneratorData({
64700
- ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
64701
- configGeneratorOptions: generatorOptions,
64702
- // all project data from the project graph (not to be confused with projectNamesToRunVersionOn)
64703
- projects
64704
- });
64705
- const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64706
- generatorCallbacks.push(async () => {
64707
- const changedFiles2 = await generatorCallback(tree, {
64708
- dryRun: !!args.dryRun,
64709
- verbose: !!args.verbose,
64710
- generatorOptions
64711
- });
64712
- if (Array.isArray(changedFiles2)) {
64713
- for (const f of changedFiles2) {
64714
- additionalChangedFiles.add(f);
64715
- }
64716
- } else {
64717
- for (const f of changedFiles2.changedFiles) {
64718
- additionalChangedFiles.add(f);
64719
- }
64720
- }
64721
- });
64722
- }
64723
- }
64724
- const gitTagValues = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _207 => _207.version, 'access', _208 => _208.git, 'access', _209 => _209.tag]))) ? _sharedjs.createGitTagValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64725
- _sharedjs.handleDuplicateGitTags.call(void 0, gitTagValues);
64726
- printAndFlushChanges(config, tree, !!args.dryRun);
64727
- for (const generatorCallback of generatorCallbacks) {
64728
- await generatorCallback();
64729
- }
64730
- let workspaceVersion = void 0;
64731
- if (releaseGroups.length === 1) {
64732
- const releaseGroup = releaseGroups[0];
64733
- if (_optionalChain([releaseGroup, 'optionalAccess', _210 => _210.projectsRelationship]) === "fixed") {
64734
- const releaseGroupProjectNames = Array.from(_nullishCoalesce(releaseGroupToFilteredProjects.get(releaseGroup), () => ( [])));
64735
- if (releaseGroupProjectNames.length > 0 && releaseGroupProjectNames[0]) {
64736
- workspaceVersion = _optionalChain([versionData, 'access', _211 => _211[releaseGroupProjectNames[0]], 'optionalAccess', _212 => _212.newVersion]);
64737
- }
64738
- }
64739
- }
64740
- const changedFiles = [
64741
- ...tree.listChanges().map((f) => f.path),
64742
- ...additionalChangedFiles
64743
- ];
64744
- if (!changedFiles.length) {
64745
64779
  return {
64746
64780
  workspaceVersion,
64747
64781
  projectsVersionData: versionData
64748
64782
  };
64783
+ } catch (error) {
64784
+ _chunkNTA62AN7cjs.writeFatal.call(void 0, "A fatal error occurred while determining the Storm Release Version - the process was forced to terminate", config);
64785
+ _chunkNTA62AN7cjs.writeError.call(void 0, `An exception was thrown while determining the Storm Release Version
64786
+ - Details: ${error.message}
64787
+ - Stacktrace: ${error.stack}`, config);
64788
+ throw new Error(`An exception was thrown in the Storm Release Version generator's process
64789
+ - Details: ${error.message}`, {
64790
+ cause: error
64791
+ });
64749
64792
  }
64750
- if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _213 => _213.version, 'access', _214 => _214.git, 'access', _215 => _215.commit])))) {
64751
- await _sharedjs.commitChanges.call(void 0, {
64752
- changedFiles,
64753
- isDryRun: !!args.dryRun,
64754
- isVerbose: !!args.verbose,
64755
- gitCommitMessages: _sharedjs.createCommitMessageValues.call(void 0, releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
64756
- gitCommitArgs: args.gitCommitArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _216 => _216.version, 'access', _217 => _217.git, 'access', _218 => _218.commitArgs])
64757
- });
64758
- } else if (_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _219 => _219.version, 'access', _220 => _220.git, 'access', _221 => _221.stageChanges])))) {
64759
- _chunkNTA62AN7cjs.writeInfo.call(void 0, "Staging changed files with git", config);
64760
- await _gitjs.gitAdd.call(void 0, {
64761
- changedFiles,
64762
- dryRun: args.dryRun,
64763
- verbose: args.verbose
64764
- });
64765
- }
64766
- if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'optionalAccess', _222 => _222.version, 'access', _223 => _223.git, 'access', _224 => _224.tag])))) {
64767
- _chunkNTA62AN7cjs.writeInfo.call(void 0, "Tagging commit with git", config);
64768
- for (const tag of gitTagValues) {
64769
- await _gitjs.gitTag.call(void 0, {
64770
- tag,
64771
- message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'optionalAccess', _225 => _225.version, 'access', _226 => _226.git, 'access', _227 => _227.tagMessage]),
64772
- additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'optionalAccess', _228 => _228.version, 'access', _229 => _229.git, 'access', _230 => _230.tagArgs]),
64773
- dryRun: args.dryRun,
64774
- verbose: args.verbose
64775
- });
64776
- }
64777
- }
64778
- return {
64779
- workspaceVersion,
64780
- projectsVersionData: versionData
64781
- };
64782
64793
  }
64783
64794
  _chunkEVP6BIDZcjs.__name.call(void 0, releaseVersion, "releaseVersion");
64784
64795
  async function runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData) {
@@ -64913,7 +64924,8 @@ var runRelease = /* @__PURE__ */ _chunkEVP6BIDZcjs.__name.call(void 0, async (co
64913
64924
  deleteVersionPlans: false,
64914
64925
  stageChanges: true,
64915
64926
  gitCommit: false,
64916
- gitTag: false
64927
+ gitTag: false,
64928
+ nxReleaseConfig
64917
64929
  });
64918
64930
  await releaseChangelog({
64919
64931
  ...options,
@@ -65032,8 +65044,10 @@ async function releaseAction({ project, base, head, dryRun }) {
65032
65044
  } catch (error) {
65033
65045
  _chunkNTA62AN7cjs.writeFatal.call(void 0, `A fatal error occurred while running release action:
65034
65046
 
65035
- ${error.message}`, _config);
65036
- _chunkNTA62AN7cjs.writeFatal.call(void 0, error, _config);
65047
+ ${error.message} ${error.stack ? `
65048
+
65049
+ Stacktrace: ${error.stack}` : ""}`, _config);
65050
+ console.error(error);
65037
65051
  throw new Error(error.message, {
65038
65052
  cause: error
65039
65053
  });
package/bin/git.js CHANGED
@@ -64533,7 +64533,7 @@ var DEFAULT_RELEASE_CONFIG = {
64533
64533
  }
64534
64534
  },
64535
64535
  version: {
64536
- preVersionCommand: "pnpm nx affected -t build --parallel=3 --configuration=production",
64536
+ preVersionCommand: "pnpm build",
64537
64537
  generator: "@storm-software/workspace-tools:release-version",
64538
64538
  generatorOptions: {
64539
64539
  currentVersionResolver: "git-tag",
@@ -64562,52 +64562,139 @@ import { createProjectFileMapUsingProjectGraph } from "nx/src/project-graph/file
64562
64562
  import { createProjectGraphAsync as createProjectGraphAsync2, readProjectsConfigurationFromProjectGraph as readProjectsConfigurationFromProjectGraph3 } from "nx/src/project-graph/project-graph.js";
64563
64563
  import { combineOptionsForGenerator } from "nx/src/utils/params.js";
64564
64564
  async function releaseVersion(config, args) {
64565
- writeInfo("Running release version command", config);
64566
- const projectGraph = await createProjectGraphAsync2({
64567
- exitOnError: true
64568
- });
64569
- const { projects } = readProjectsConfigurationFromProjectGraph3(projectGraph);
64570
- const nxJson = readNxJson();
64571
- const workspaceRoot2 = config?.workspaceRoot ?? findWorkspaceRoot();
64572
- if (args.verbose) {
64573
- process.env.NX_VERBOSE_LOGGING = "true";
64574
- }
64575
- const { error: configError, nxReleaseConfig } = await createNxReleaseConfig(projectGraph, await createProjectFileMapUsingProjectGraph(projectGraph), nxJson.release);
64576
- if (configError) {
64577
- return await handleNxReleaseConfigError(configError);
64578
- }
64579
- if ((args.gitCommit === void 0 || args.gitTag === void 0 || args.stageChanges === void 0) && nxJson.release?.git) {
64580
- await resolveNxJsonConfigErrorMessage([
64581
- "release",
64582
- "git"
64583
- ]);
64584
- throw new Error(`The "release.git" property in nx.json may not be used with the "nx release version" subcommand or programmatic API. Instead, configure git options for subcommands directly with "release.version.git" and "release.changelog.git".`);
64585
- }
64586
- writeInfo("Filtering projects and release groups", config);
64587
- const { error: filterError, releaseGroups, releaseGroupToFilteredProjects } = filterReleaseGroups(projectGraph, nxReleaseConfig, args.projects, args.groups);
64588
- if (filterError) {
64589
- writeError(filterError.title, config);
64590
- throw new Error(filterError.title);
64591
- }
64592
- const tree = new FsTree(workspaceRoot2, true);
64593
- const versionData = {};
64594
- const commitMessage = args.gitCommitMessage || nxReleaseConfig?.version.git.commitMessage;
64595
- const additionalChangedFiles = /* @__PURE__ */ new Set();
64596
- const generatorCallbacks = [];
64597
- if (args.projects?.length) {
64598
- writeInfo("Run versioning for all remaining release groups and filtered projects within them", config);
64565
+ try {
64566
+ writeInfo("Running release version command", config);
64567
+ const projectGraph = await createProjectGraphAsync2({
64568
+ exitOnError: true
64569
+ });
64570
+ const { projects } = readProjectsConfigurationFromProjectGraph3(projectGraph);
64571
+ const nxJson = readNxJson();
64572
+ const workspaceRoot2 = config?.workspaceRoot ?? findWorkspaceRoot();
64573
+ if (args.verbose) {
64574
+ process.env.NX_VERBOSE_LOGGING = "true";
64575
+ }
64576
+ const { error: configError, nxReleaseConfig } = await createNxReleaseConfig(projectGraph, await createProjectFileMapUsingProjectGraph(projectGraph), args.nxReleaseConfig);
64577
+ if (configError) {
64578
+ return await handleNxReleaseConfigError(configError);
64579
+ }
64580
+ if ((args.gitCommit === void 0 || args.gitTag === void 0 || args.stageChanges === void 0) && nxJson.release?.git) {
64581
+ await resolveNxJsonConfigErrorMessage([
64582
+ "release",
64583
+ "git"
64584
+ ]);
64585
+ throw new Error(`The "release.git" property in nx.json may not be used with the "nx release version" subcommand or programmatic API. Instead, configure git options for subcommands directly with "release.version.git" and "release.changelog.git".`);
64586
+ }
64587
+ writeInfo("Filtering projects and release groups", config);
64588
+ const { error: filterError, releaseGroups, releaseGroupToFilteredProjects } = filterReleaseGroups(projectGraph, nxReleaseConfig, args.projects, args.groups);
64589
+ if (filterError) {
64590
+ writeError(filterError.title, config);
64591
+ throw new Error(filterError.title);
64592
+ }
64593
+ const tree = new FsTree(workspaceRoot2, true);
64594
+ const versionData = {};
64595
+ const commitMessage = args.gitCommitMessage || nxReleaseConfig?.version.git.commitMessage;
64596
+ const additionalChangedFiles = /* @__PURE__ */ new Set();
64597
+ const generatorCallbacks = [];
64598
+ if (args.projects?.length) {
64599
+ writeInfo("Run versioning for all remaining release groups and filtered projects within them", config);
64600
+ for (const releaseGroup of releaseGroups) {
64601
+ const releaseGroupName = releaseGroup.name;
64602
+ writeInfo(`Running versioning for release group "${releaseGroupName}" and filtered projects within it`, config);
64603
+ const releaseGroupProjectNames = Array.from(releaseGroupToFilteredProjects.get(releaseGroup) ?? []);
64604
+ const projectBatches = batchProjectsByGeneratorConfig(
64605
+ projectGraph,
64606
+ releaseGroup,
64607
+ // Only batch based on the filtered projects within the release group
64608
+ releaseGroupProjectNames
64609
+ );
64610
+ for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64611
+ writeInfo(`Running versioning for batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, config);
64612
+ const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64613
+ const generatorData = resolveGeneratorData({
64614
+ ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
64615
+ configGeneratorOptions: generatorOptions,
64616
+ // all project data from the project graph (not to be confused with projectNamesToRunVersionOn)
64617
+ projects
64618
+ });
64619
+ const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64620
+ generatorCallbacks.push(async () => {
64621
+ const changedFiles3 = await generatorCallback(tree, {
64622
+ dryRun: !!args.dryRun,
64623
+ verbose: !!args.verbose,
64624
+ generatorOptions
64625
+ });
64626
+ if (Array.isArray(changedFiles3)) {
64627
+ for (const f of changedFiles3) {
64628
+ additionalChangedFiles.add(f);
64629
+ }
64630
+ } else {
64631
+ for (const f of changedFiles3.changedFiles) {
64632
+ additionalChangedFiles.add(f);
64633
+ }
64634
+ }
64635
+ });
64636
+ }
64637
+ }
64638
+ const gitTagValues2 = args.gitTag ?? nxReleaseConfig?.version.git.tag ? createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64639
+ handleDuplicateGitTags(gitTagValues2);
64640
+ printAndFlushChanges(config, tree, !!args.dryRun);
64641
+ for (const generatorCallback of generatorCallbacks) {
64642
+ await generatorCallback();
64643
+ }
64644
+ const changedFiles2 = [
64645
+ ...tree.listChanges().map((f) => f.path),
64646
+ ...additionalChangedFiles
64647
+ ];
64648
+ if (!changedFiles2.length) {
64649
+ return {
64650
+ // An overall workspace version cannot be relevant when filtering to independent projects
64651
+ workspaceVersion: void 0,
64652
+ projectsVersionData: versionData
64653
+ };
64654
+ }
64655
+ if (args.gitCommit ?? nxReleaseConfig?.version.git.commit) {
64656
+ await commitChanges({
64657
+ changedFiles: changedFiles2,
64658
+ isDryRun: !!args.dryRun,
64659
+ isVerbose: !!args.verbose,
64660
+ gitCommitMessages: createCommitMessageValues(releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
64661
+ gitCommitArgs: args.gitCommitArgs || nxReleaseConfig?.version.git.commitArgs
64662
+ });
64663
+ } else if (args.stageChanges ?? nxReleaseConfig?.version.git.stageChanges) {
64664
+ writeInfo("Staging changed files with git", config);
64665
+ await gitAdd({
64666
+ changedFiles: changedFiles2,
64667
+ dryRun: args.dryRun,
64668
+ verbose: args.verbose
64669
+ });
64670
+ }
64671
+ if (args.gitTag ?? nxReleaseConfig?.version.git.tag) {
64672
+ writeInfo("Tagging commit with git", config);
64673
+ for (const tag of gitTagValues2) {
64674
+ await gitTag({
64675
+ tag,
64676
+ message: args.gitTagMessage || nxReleaseConfig?.version.git.tagMessage,
64677
+ additionalArgs: args.gitTagArgs || nxReleaseConfig?.version.git.tagArgs,
64678
+ dryRun: args.dryRun,
64679
+ verbose: args.verbose
64680
+ });
64681
+ }
64682
+ }
64683
+ return {
64684
+ // An overall workspace version cannot be relevant when filtering to independent projects
64685
+ workspaceVersion: void 0,
64686
+ projectsVersionData: versionData
64687
+ };
64688
+ }
64599
64689
  for (const releaseGroup of releaseGroups) {
64600
64690
  const releaseGroupName = releaseGroup.name;
64601
- writeInfo(`Running versioning for release group "${releaseGroupName}" and filtered projects within it`, config);
64602
- const releaseGroupProjectNames = Array.from(releaseGroupToFilteredProjects.get(releaseGroup) ?? []);
64603
64691
  const projectBatches = batchProjectsByGeneratorConfig(
64604
64692
  projectGraph,
64605
64693
  releaseGroup,
64606
- // Only batch based on the filtered projects within the release group
64607
- releaseGroupProjectNames
64694
+ // Batch based on all projects within the release group
64695
+ releaseGroup.projects
64608
64696
  );
64609
64697
  for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64610
- writeInfo(`Running versioning for batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, config);
64611
64698
  const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64612
64699
  const generatorData = resolveGeneratorData({
64613
64700
  ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
@@ -64617,43 +64704,52 @@ async function releaseVersion(config, args) {
64617
64704
  });
64618
64705
  const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64619
64706
  generatorCallbacks.push(async () => {
64620
- const changedFiles3 = await generatorCallback(tree, {
64707
+ const changedFiles2 = await generatorCallback(tree, {
64621
64708
  dryRun: !!args.dryRun,
64622
64709
  verbose: !!args.verbose,
64623
64710
  generatorOptions
64624
64711
  });
64625
- if (Array.isArray(changedFiles3)) {
64626
- for (const f of changedFiles3) {
64712
+ if (Array.isArray(changedFiles2)) {
64713
+ for (const f of changedFiles2) {
64627
64714
  additionalChangedFiles.add(f);
64628
64715
  }
64629
64716
  } else {
64630
- for (const f of changedFiles3.changedFiles) {
64717
+ for (const f of changedFiles2.changedFiles) {
64631
64718
  additionalChangedFiles.add(f);
64632
64719
  }
64633
64720
  }
64634
64721
  });
64635
64722
  }
64636
64723
  }
64637
- const gitTagValues2 = args.gitTag ?? nxReleaseConfig?.version.git.tag ? createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64638
- handleDuplicateGitTags(gitTagValues2);
64724
+ const gitTagValues = args.gitTag ?? nxReleaseConfig?.version.git.tag ? createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64725
+ handleDuplicateGitTags(gitTagValues);
64639
64726
  printAndFlushChanges(config, tree, !!args.dryRun);
64640
64727
  for (const generatorCallback of generatorCallbacks) {
64641
64728
  await generatorCallback();
64642
64729
  }
64643
- const changedFiles2 = [
64730
+ let workspaceVersion = void 0;
64731
+ if (releaseGroups.length === 1) {
64732
+ const releaseGroup = releaseGroups[0];
64733
+ if (releaseGroup?.projectsRelationship === "fixed") {
64734
+ const releaseGroupProjectNames = Array.from(releaseGroupToFilteredProjects.get(releaseGroup) ?? []);
64735
+ if (releaseGroupProjectNames.length > 0 && releaseGroupProjectNames[0]) {
64736
+ workspaceVersion = versionData[releaseGroupProjectNames[0]]?.newVersion;
64737
+ }
64738
+ }
64739
+ }
64740
+ const changedFiles = [
64644
64741
  ...tree.listChanges().map((f) => f.path),
64645
64742
  ...additionalChangedFiles
64646
64743
  ];
64647
- if (!changedFiles2.length) {
64744
+ if (!changedFiles.length) {
64648
64745
  return {
64649
- // An overall workspace version cannot be relevant when filtering to independent projects
64650
- workspaceVersion: void 0,
64746
+ workspaceVersion,
64651
64747
  projectsVersionData: versionData
64652
64748
  };
64653
64749
  }
64654
64750
  if (args.gitCommit ?? nxReleaseConfig?.version.git.commit) {
64655
64751
  await commitChanges({
64656
- changedFiles: changedFiles2,
64752
+ changedFiles,
64657
64753
  isDryRun: !!args.dryRun,
64658
64754
  isVerbose: !!args.verbose,
64659
64755
  gitCommitMessages: createCommitMessageValues(releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
@@ -64662,14 +64758,14 @@ async function releaseVersion(config, args) {
64662
64758
  } else if (args.stageChanges ?? nxReleaseConfig?.version.git.stageChanges) {
64663
64759
  writeInfo("Staging changed files with git", config);
64664
64760
  await gitAdd({
64665
- changedFiles: changedFiles2,
64761
+ changedFiles,
64666
64762
  dryRun: args.dryRun,
64667
64763
  verbose: args.verbose
64668
64764
  });
64669
64765
  }
64670
64766
  if (args.gitTag ?? nxReleaseConfig?.version.git.tag) {
64671
64767
  writeInfo("Tagging commit with git", config);
64672
- for (const tag of gitTagValues2) {
64768
+ for (const tag of gitTagValues) {
64673
64769
  await gitTag({
64674
64770
  tag,
64675
64771
  message: args.gitTagMessage || nxReleaseConfig?.version.git.tagMessage,
@@ -64679,105 +64775,20 @@ async function releaseVersion(config, args) {
64679
64775
  });
64680
64776
  }
64681
64777
  }
64682
- return {
64683
- // An overall workspace version cannot be relevant when filtering to independent projects
64684
- workspaceVersion: void 0,
64685
- projectsVersionData: versionData
64686
- };
64687
- }
64688
- for (const releaseGroup of releaseGroups) {
64689
- const releaseGroupName = releaseGroup.name;
64690
- const projectBatches = batchProjectsByGeneratorConfig(
64691
- projectGraph,
64692
- releaseGroup,
64693
- // Batch based on all projects within the release group
64694
- releaseGroup.projects
64695
- );
64696
- for (const [generatorConfigString, projectNames] of projectBatches.entries()) {
64697
- const [generatorName, generatorOptions] = JSON.parse(generatorConfigString);
64698
- const generatorData = resolveGeneratorData({
64699
- ...extractGeneratorCollectionAndName(`batch "${JSON.stringify(projectNames)}" for release-group "${releaseGroupName}"`, generatorName),
64700
- configGeneratorOptions: generatorOptions,
64701
- // all project data from the project graph (not to be confused with projectNamesToRunVersionOn)
64702
- projects
64703
- });
64704
- const generatorCallback = await runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData);
64705
- generatorCallbacks.push(async () => {
64706
- const changedFiles2 = await generatorCallback(tree, {
64707
- dryRun: !!args.dryRun,
64708
- verbose: !!args.verbose,
64709
- generatorOptions
64710
- });
64711
- if (Array.isArray(changedFiles2)) {
64712
- for (const f of changedFiles2) {
64713
- additionalChangedFiles.add(f);
64714
- }
64715
- } else {
64716
- for (const f of changedFiles2.changedFiles) {
64717
- additionalChangedFiles.add(f);
64718
- }
64719
- }
64720
- });
64721
- }
64722
- }
64723
- const gitTagValues = args.gitTag ?? nxReleaseConfig?.version.git.tag ? createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versionData) : [];
64724
- handleDuplicateGitTags(gitTagValues);
64725
- printAndFlushChanges(config, tree, !!args.dryRun);
64726
- for (const generatorCallback of generatorCallbacks) {
64727
- await generatorCallback();
64728
- }
64729
- let workspaceVersion = void 0;
64730
- if (releaseGroups.length === 1) {
64731
- const releaseGroup = releaseGroups[0];
64732
- if (releaseGroup?.projectsRelationship === "fixed") {
64733
- const releaseGroupProjectNames = Array.from(releaseGroupToFilteredProjects.get(releaseGroup) ?? []);
64734
- if (releaseGroupProjectNames.length > 0 && releaseGroupProjectNames[0]) {
64735
- workspaceVersion = versionData[releaseGroupProjectNames[0]]?.newVersion;
64736
- }
64737
- }
64738
- }
64739
- const changedFiles = [
64740
- ...tree.listChanges().map((f) => f.path),
64741
- ...additionalChangedFiles
64742
- ];
64743
- if (!changedFiles.length) {
64744
64778
  return {
64745
64779
  workspaceVersion,
64746
64780
  projectsVersionData: versionData
64747
64781
  };
64782
+ } catch (error) {
64783
+ writeFatal("A fatal error occurred while determining the Storm Release Version - the process was forced to terminate", config);
64784
+ writeError(`An exception was thrown while determining the Storm Release Version
64785
+ - Details: ${error.message}
64786
+ - Stacktrace: ${error.stack}`, config);
64787
+ throw new Error(`An exception was thrown in the Storm Release Version generator's process
64788
+ - Details: ${error.message}`, {
64789
+ cause: error
64790
+ });
64748
64791
  }
64749
- if (args.gitCommit ?? nxReleaseConfig?.version.git.commit) {
64750
- await commitChanges({
64751
- changedFiles,
64752
- isDryRun: !!args.dryRun,
64753
- isVerbose: !!args.verbose,
64754
- gitCommitMessages: createCommitMessageValues(releaseGroups, releaseGroupToFilteredProjects, versionData, commitMessage),
64755
- gitCommitArgs: args.gitCommitArgs || nxReleaseConfig?.version.git.commitArgs
64756
- });
64757
- } else if (args.stageChanges ?? nxReleaseConfig?.version.git.stageChanges) {
64758
- writeInfo("Staging changed files with git", config);
64759
- await gitAdd({
64760
- changedFiles,
64761
- dryRun: args.dryRun,
64762
- verbose: args.verbose
64763
- });
64764
- }
64765
- if (args.gitTag ?? nxReleaseConfig?.version.git.tag) {
64766
- writeInfo("Tagging commit with git", config);
64767
- for (const tag of gitTagValues) {
64768
- await gitTag({
64769
- tag,
64770
- message: args.gitTagMessage || nxReleaseConfig?.version.git.tagMessage,
64771
- additionalArgs: args.gitTagArgs || nxReleaseConfig?.version.git.tagArgs,
64772
- dryRun: args.dryRun,
64773
- verbose: args.verbose
64774
- });
64775
- }
64776
- }
64777
- return {
64778
- workspaceVersion,
64779
- projectsVersionData: versionData
64780
- };
64781
64792
  }
64782
64793
  __name(releaseVersion, "releaseVersion");
64783
64794
  async function runVersionOnProjects(config, projectGraph, nxJson, args, tree, generatorData, projectNames, releaseGroup, versionData) {
@@ -64912,7 +64923,8 @@ var runRelease = /* @__PURE__ */ __name(async (config, options) => {
64912
64923
  deleteVersionPlans: false,
64913
64924
  stageChanges: true,
64914
64925
  gitCommit: false,
64915
- gitTag: false
64926
+ gitTag: false,
64927
+ nxReleaseConfig
64916
64928
  });
64917
64929
  await releaseChangelog({
64918
64930
  ...options,
@@ -65031,8 +65043,10 @@ async function releaseAction({ project, base, head, dryRun }) {
65031
65043
  } catch (error) {
65032
65044
  writeFatal(`A fatal error occurred while running release action:
65033
65045
 
65034
- ${error.message}`, _config);
65035
- writeFatal(error, _config);
65046
+ ${error.message} ${error.stack ? `
65047
+
65048
+ Stacktrace: ${error.stack}` : ""}`, _config);
65049
+ console.error(error);
65036
65050
  throw new Error(error.message, {
65037
65051
  cause: error
65038
65052
  });
@@ -48,7 +48,7 @@ var DEFAULT_RELEASE_CONFIG = {
48
48
  }
49
49
  },
50
50
  version: {
51
- preVersionCommand: "pnpm nx affected -t build --parallel=3 --configuration=production",
51
+ preVersionCommand: "pnpm build",
52
52
  generator: "@storm-software/workspace-tools:release-version",
53
53
  generatorOptions: {
54
54
  currentVersionResolver: "git-tag",
@@ -48,7 +48,7 @@ var DEFAULT_RELEASE_CONFIG = {
48
48
  }
49
49
  },
50
50
  version: {
51
- preVersionCommand: "pnpm nx affected -t build --parallel=3 --configuration=production",
51
+ preVersionCommand: "pnpm build",
52
52
  generator: "@storm-software/workspace-tools:release-version",
53
53
  generatorOptions: {
54
54
  currentVersionResolver: "git-tag",
package/dist/index.cjs CHANGED
@@ -6,7 +6,7 @@ require('./chunk-WBWFRERX.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4FQLRFFEcjs = require('./chunk-4FQLRFFE.cjs');
9
+ var _chunkQFZNPBUBcjs = require('./chunk-QFZNPBUB.cjs');
10
10
 
11
11
 
12
12
 
@@ -26,4 +26,4 @@ var _chunkMIBBWD5Tcjs = require('./chunk-MIBBWD5T.cjs');
26
26
 
27
27
 
28
28
 
29
- exports.DEFAULT_COMMIT_CONFIG = _chunkVOGVIPTZcjs.DEFAULT_COMMIT_CONFIG; exports.DEFAULT_COMMIT_MESSAGE_FORMAT = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_MESSAGE_FORMAT; exports.DEFAULT_COMMIT_PROMPT_MESSAGES = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_PROMPT_MESSAGES; exports.DEFAULT_COMMIT_QUESTIONS = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_QUESTIONS; exports.DEFAULT_COMMIT_SETTINGS = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_SETTINGS; exports.DEFAULT_COMMIT_TYPES = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_TYPES; exports.DEFAULT_CONVENTIONAL_COMMITS_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_CONVENTIONAL_COMMITS_CONFIG; exports.DEFAULT_RELEASE_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_RELEASE_CONFIG; exports.DEFAULT_RELEASE_GROUP_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_RELEASE_GROUP_CONFIG; exports.RuleConfigSeverity = _chunkMIBBWD5Tcjs.RuleConfigSeverity;
29
+ exports.DEFAULT_COMMIT_CONFIG = _chunkVOGVIPTZcjs.DEFAULT_COMMIT_CONFIG; exports.DEFAULT_COMMIT_MESSAGE_FORMAT = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_MESSAGE_FORMAT; exports.DEFAULT_COMMIT_PROMPT_MESSAGES = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_PROMPT_MESSAGES; exports.DEFAULT_COMMIT_QUESTIONS = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_QUESTIONS; exports.DEFAULT_COMMIT_SETTINGS = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_SETTINGS; exports.DEFAULT_COMMIT_TYPES = _chunkMIBBWD5Tcjs.DEFAULT_COMMIT_TYPES; exports.DEFAULT_CONVENTIONAL_COMMITS_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_CONVENTIONAL_COMMITS_CONFIG; exports.DEFAULT_RELEASE_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_RELEASE_CONFIG; exports.DEFAULT_RELEASE_GROUP_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_RELEASE_GROUP_CONFIG; exports.RuleConfigSeverity = _chunkMIBBWD5Tcjs.RuleConfigSeverity;
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  DEFAULT_CONVENTIONAL_COMMITS_CONFIG,
7
7
  DEFAULT_RELEASE_CONFIG,
8
8
  DEFAULT_RELEASE_GROUP_CONFIG
9
- } from "./chunk-VZF3QEL3.js";
9
+ } from "./chunk-NXD22ACT.js";
10
10
  import {
11
11
  DEFAULT_COMMIT_MESSAGE_FORMAT,
12
12
  DEFAULT_COMMIT_PROMPT_MESSAGES,
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk4FQLRFFEcjs = require('../chunk-4FQLRFFE.cjs');
5
+ var _chunkQFZNPBUBcjs = require('../chunk-QFZNPBUB.cjs');
6
6
  require('../chunk-MIBBWD5T.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.DEFAULT_CONVENTIONAL_COMMITS_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_CONVENTIONAL_COMMITS_CONFIG; exports.DEFAULT_RELEASE_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_RELEASE_CONFIG; exports.DEFAULT_RELEASE_GROUP_CONFIG = _chunk4FQLRFFEcjs.DEFAULT_RELEASE_GROUP_CONFIG;
11
+ exports.DEFAULT_CONVENTIONAL_COMMITS_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_CONVENTIONAL_COMMITS_CONFIG; exports.DEFAULT_RELEASE_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_RELEASE_CONFIG; exports.DEFAULT_RELEASE_GROUP_CONFIG = _chunkQFZNPBUBcjs.DEFAULT_RELEASE_GROUP_CONFIG;
@@ -2,7 +2,7 @@ import {
2
2
  DEFAULT_CONVENTIONAL_COMMITS_CONFIG,
3
3
  DEFAULT_RELEASE_CONFIG,
4
4
  DEFAULT_RELEASE_GROUP_CONFIG
5
- } from "../chunk-VZF3QEL3.js";
5
+ } from "../chunk-NXD22ACT.js";
6
6
  import "../chunk-6EYTSWXU.js";
7
7
  export {
8
8
  DEFAULT_CONVENTIONAL_COMMITS_CONFIG,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/git-tools",
3
- "version": "2.89.40",
3
+ "version": "2.90.0",
4
4
  "type": "module",
5
5
  "description": "Tools for managing Git repositories within a Nx workspace.",
6
6
  "repository": {