@storm-software/git-tools 2.131.6 → 2.131.7

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/bin/git.cjs CHANGED
@@ -63,10 +63,10 @@ var versionPlanUtils = require('nx/src/command-line/release/utils/version-plan-u
63
63
  var nxJson = require('nx/src/config/nx-json');
64
64
  var tree = require('nx/src/generators/tree');
65
65
  var fileMapUtils = require('nx/src/project-graph/file-map-utils');
66
- var findMatchingProjects = require('nx/src/utils/find-matching-projects');
67
66
  var importsPlugin = require('prettier-plugin-organize-imports');
68
67
  var DefaultChangelogRenderer = require('nx/release/changelog-renderer');
69
68
  var conventionalCommits = require('nx/src/command-line/release/config/conventional-commits');
69
+ var findMatchingProjects = require('nx/src/utils/find-matching-projects');
70
70
  var config_js = require('nx/src/command-line/release/config/config.js');
71
71
  var deriveSpecifierFromConventionalCommits = require('nx/src/command-line/release/version/derive-specifier-from-conventional-commits');
72
72
  var deriverSpecifierFromVersionPlans = require('nx/src/command-line/release/version/deriver-specifier-from-version-plans');
@@ -3291,16 +3291,44 @@ var StormChangelogRenderer = class extends DefaultChangelogRenderer__default.def
3291
3291
  }
3292
3292
  };
3293
3293
 
3294
- // src/release/config.ts
3294
+ // ../package-constants/src/tags.ts
3295
+ var ProjectTagConstants = {
3296
+ Language: {
3297
+ TAG_ID: "language",
3298
+ TYPESCRIPT: "typescript",
3299
+ RUST: "rust"
3300
+ }};
3301
+ var formatProjectTag = (variant, value) => {
3302
+ return `${variant}:${value}`;
3303
+ };
3304
+ var hasProjectTag = (project, variant) => {
3305
+ project.tags = project.tags ?? [];
3306
+ const prefix = formatProjectTag(variant, "");
3307
+ return project.tags.some(
3308
+ (tag) => tag.startsWith(prefix) && tag.length > prefix.length
3309
+ );
3310
+ };
3311
+ var getProjectTag = (project, variant) => {
3312
+ if (!hasProjectTag(project, variant)) {
3313
+ return void 0;
3314
+ }
3315
+ project.tags = project.tags ?? [];
3316
+ const prefix = formatProjectTag(variant, "");
3317
+ const tag = project.tags.find((tag2) => tag2.startsWith(prefix));
3318
+ return tag?.replace(prefix, "");
3319
+ };
3320
+ var isEqualProjectTag = (project, variant, value) => {
3321
+ const tag = getProjectTag(project, variant);
3322
+ return !!(tag && tag?.toUpperCase() === value.toUpperCase());
3323
+ };
3295
3324
  var DEFAULT_CONVENTIONAL_COMMITS_CONFIG2 = {
3296
3325
  useCommitScope: true,
3297
3326
  questions: DEFAULT_MONOREPO_COMMIT_QUESTIONS,
3298
3327
  types: DEFAULT_COMMIT_TYPES
3299
3328
  };
3300
- var DEFAULT_RELEASE_TAG_PATTERN = "{projectName}@{version}";
3329
+ var DEFAULT_INDEPENDENT_RELEASE_TAG_PATTERN = "{projectName}@{version}";
3301
3330
  var DEFAULT_FIXED_RELEASE_TAG_PATTERN = "{releaseGroupName}@{version}";
3302
3331
  var DEFAULT_COMMIT_MESSAGE = "release(monorepo): Publish v{version} release updates";
3303
- var DEFAULT_VERSION_ACTIONS_PATH = "@nx/js/src/release/version-actions";
3304
3332
  var DEFAULT_RELEASE_GROUP_GIT_CONFIG = {
3305
3333
  commit: false,
3306
3334
  commitMessage: DEFAULT_COMMIT_MESSAGE,
@@ -3316,8 +3344,6 @@ var DEFAULT_VERSION_RELEASE_CONFIG = {
3316
3344
  fallbackCurrentVersionResolver: "disk",
3317
3345
  specifierSource: "conventional-commits",
3318
3346
  groupPreVersionCommand: "pnpm build",
3319
- versionActions: DEFAULT_VERSION_ACTIONS_PATH,
3320
- versionActionsOptions: {},
3321
3347
  preserveLocalDependencyProtocols: true,
3322
3348
  preserveMatchingDependencyRanges: true,
3323
3349
  logUnchangedProjects: true,
@@ -3352,24 +3378,25 @@ var DEFAULT_RELEASE_GROUP_CONFIG = {
3352
3378
  ...DEFAULT_VERSION_RELEASE_CONFIG
3353
3379
  },
3354
3380
  releaseTag: {
3355
- pattern: DEFAULT_RELEASE_TAG_PATTERN,
3381
+ pattern: DEFAULT_INDEPENDENT_RELEASE_TAG_PATTERN,
3356
3382
  preferDockerVersion: false
3357
3383
  },
3358
3384
  versionPlans: false
3359
3385
  };
3386
+ var DEFAULT_INDEPENDENT_RELEASE_GROUP_CONFIG = {
3387
+ projectsRelationship: "independent",
3388
+ releaseTag: {
3389
+ pattern: DEFAULT_INDEPENDENT_RELEASE_TAG_PATTERN
3390
+ }
3391
+ };
3360
3392
  var DEFAULT_FIXED_RELEASE_GROUP_CONFIG = {
3361
- ...DEFAULT_RELEASE_GROUP_CONFIG,
3362
3393
  projectsRelationship: "fixed",
3363
3394
  releaseTag: {
3364
- ...DEFAULT_RELEASE_GROUP_CONFIG.releaseTag,
3365
3395
  pattern: DEFAULT_FIXED_RELEASE_TAG_PATTERN
3366
3396
  }
3367
3397
  };
3368
3398
  var DEFAULT_JS_RELEASE_GROUP_CONFIG = {
3369
- ...DEFAULT_RELEASE_GROUP_CONFIG,
3370
- projects: ["packages/*"],
3371
3399
  version: {
3372
- ...DEFAULT_RELEASE_GROUP_CONFIG.version,
3373
3400
  versionActions: "@storm-software/workspace-tools/release/js-version-actions",
3374
3401
  versionActionsOptions: {
3375
3402
  currentVersionResolver: "git-tag",
@@ -3385,10 +3412,7 @@ var DEFAULT_JS_RELEASE_GROUP_CONFIG = {
3385
3412
  }
3386
3413
  };
3387
3414
  var DEFAULT_RUST_RELEASE_GROUP_CONFIG = {
3388
- ...DEFAULT_RELEASE_GROUP_CONFIG,
3389
- projects: ["crates/*"],
3390
3415
  version: {
3391
- ...DEFAULT_RELEASE_GROUP_CONFIG.version,
3392
3416
  versionActions: "@storm-software/workspace-tools/release/rust-version-actions",
3393
3417
  versionActionsOptions: {
3394
3418
  currentVersionResolver: "git-tag",
@@ -3400,8 +3424,20 @@ var DEFAULT_RUST_RELEASE_GROUP_CONFIG = {
3400
3424
  var DEFAULT_RELEASE_CONFIG = {
3401
3425
  conventionalCommits: DEFAULT_CONVENTIONAL_COMMITS_CONFIG2,
3402
3426
  groups: {
3403
- packages: DEFAULT_JS_RELEASE_GROUP_CONFIG,
3404
- crates: DEFAULT_RUST_RELEASE_GROUP_CONFIG
3427
+ packages: chunk4ILBJTRR_cjs.defu(
3428
+ {
3429
+ projects: ["packages/*"]
3430
+ },
3431
+ DEFAULT_JS_RELEASE_GROUP_CONFIG,
3432
+ DEFAULT_RELEASE_GROUP_CONFIG
3433
+ ),
3434
+ crates: chunk4ILBJTRR_cjs.defu(
3435
+ {
3436
+ projects: ["crates/*"]
3437
+ },
3438
+ DEFAULT_RUST_RELEASE_GROUP_CONFIG,
3439
+ DEFAULT_RELEASE_GROUP_CONFIG
3440
+ )
3405
3441
  },
3406
3442
  changelog: {
3407
3443
  ...DEFAULT_CHANGELOG_RELEASE_CONFIG,
@@ -3410,40 +3446,101 @@ var DEFAULT_RELEASE_CONFIG = {
3410
3446
  projectChangelogs: true
3411
3447
  },
3412
3448
  releaseTag: {
3413
- pattern: DEFAULT_RELEASE_TAG_PATTERN,
3449
+ pattern: DEFAULT_INDEPENDENT_RELEASE_TAG_PATTERN,
3414
3450
  preferDockerVersion: false
3415
3451
  },
3416
3452
  version: {
3417
3453
  ...DEFAULT_VERSION_RELEASE_CONFIG
3418
3454
  }
3419
3455
  };
3420
- function getReleaseGroupConfig(releaseConfig, workspaceConfig) {
3456
+ function mergeReleaseGroupConfig(config5, defaultConfig, workspaceConfig) {
3457
+ return chunk4ILBJTRR_cjs.defu(
3458
+ {
3459
+ ...omit(defaultConfig, ["changelog", "version"]),
3460
+ ...config5
3461
+ },
3462
+ {
3463
+ version: {
3464
+ ...defaultConfig.version
3465
+ }
3466
+ },
3467
+ {
3468
+ changelog: {
3469
+ ...typeof defaultConfig.changelog === "object" ? defaultConfig.changelog : {},
3470
+ renderer: StormChangelogRenderer,
3471
+ renderOptions: {
3472
+ ...typeof defaultConfig.changelog === "object" && defaultConfig.changelog.renderOptions || {},
3473
+ workspaceConfig
3474
+ }
3475
+ }
3476
+ }
3477
+ );
3478
+ }
3479
+ function getReleaseGroupConfig(projectGraph, releaseConfig, workspaceConfig) {
3480
+ const alreadyMatchedProjects = /* @__PURE__ */ new Set();
3421
3481
  return !releaseConfig?.groups || Object.keys(releaseConfig.groups).length === 0 ? {} : Object.fromEntries(
3422
3482
  Object.entries(releaseConfig.groups).map(([name, group]) => {
3423
- const config5 = chunk4ILBJTRR_cjs.defu(
3424
- {
3425
- ...omit(
3426
- group.projectsRelationship === "fixed" ? DEFAULT_FIXED_RELEASE_GROUP_CONFIG : DEFAULT_RELEASE_GROUP_CONFIG,
3427
- ["changelog", "version"]
3428
- ),
3429
- ...group
3430
- },
3431
- {
3432
- version: {
3433
- ...(group.projectsRelationship === "fixed" ? DEFAULT_FIXED_RELEASE_GROUP_CONFIG : DEFAULT_RELEASE_GROUP_CONFIG).version
3434
- }
3435
- },
3436
- {
3437
- changelog: {
3438
- ...(group.projectsRelationship === "fixed" ? DEFAULT_FIXED_RELEASE_GROUP_CONFIG : DEFAULT_RELEASE_GROUP_CONFIG).changelog,
3439
- renderer: StormChangelogRenderer,
3440
- renderOptions: {
3441
- ...(group.projectsRelationship === "fixed" ? DEFAULT_FIXED_RELEASE_GROUP_CONFIG : DEFAULT_RELEASE_GROUP_CONFIG).changelog.renderOptions,
3442
- workspaceConfig
3443
- }
3444
- }
3483
+ const matchingProjects = findMatchingProjects.findMatchingProjects(
3484
+ typeof group.projects === "string" ? [group.projects] : group.projects,
3485
+ projectGraph.nodes
3486
+ );
3487
+ if (!matchingProjects.length) {
3488
+ throw new Error(
3489
+ `Release group "${name}" does not have any matching projects.`
3490
+ );
3491
+ }
3492
+ for (const project of matchingProjects) {
3493
+ if (alreadyMatchedProjects.has(project)) {
3494
+ throw new Error(
3495
+ `Project "${project}" is included in more than one release group. Please ensure that each project is only included in one release group, or remove the "projects" property from the release group configuration to allow it to be included in the same release group as other projects with overlapping globs.`
3496
+ );
3445
3497
  }
3498
+ alreadyMatchedProjects.add(project);
3499
+ }
3500
+ let languageDefaultConfig = {};
3501
+ if (matchingProjects.every(
3502
+ (project) => projectGraph.nodes[project]?.data && (projectGraph.nodes[project]?.data.metadata?.js || isEqualProjectTag(
3503
+ projectGraph.nodes[project]?.data,
3504
+ ProjectTagConstants.Language.TAG_ID,
3505
+ ProjectTagConstants.Language.TYPESCRIPT
3506
+ ) || projectGraph.nodes[project]?.data.metadata?.root && fs$1.existsSync(
3507
+ chunk4ILBJTRR_cjs.joinPaths(
3508
+ projectGraph.nodes[project]?.data.metadata?.root,
3509
+ "package.json"
3510
+ )
3511
+ ))
3512
+ )) {
3513
+ languageDefaultConfig = chunk4ILBJTRR_cjs.defu(
3514
+ DEFAULT_JS_RELEASE_GROUP_CONFIG,
3515
+ DEFAULT_RELEASE_GROUP_CONFIG
3516
+ );
3517
+ } else if (matchingProjects.every(
3518
+ (project) => projectGraph.nodes[project]?.data && (projectGraph.nodes[project]?.data.metadata?.rust || projectGraph.nodes[project]?.data.metadata?.cargo || isEqualProjectTag(
3519
+ projectGraph.nodes[project]?.data,
3520
+ ProjectTagConstants.Language.TAG_ID,
3521
+ ProjectTagConstants.Language.RUST
3522
+ ) || projectGraph.nodes[project]?.data.metadata?.root && fs$1.existsSync(
3523
+ chunk4ILBJTRR_cjs.joinPaths(
3524
+ projectGraph.nodes[project]?.data.metadata?.root,
3525
+ "Cargo.toml"
3526
+ )
3527
+ ))
3528
+ )) {
3529
+ languageDefaultConfig = chunk4ILBJTRR_cjs.defu(
3530
+ DEFAULT_RUST_RELEASE_GROUP_CONFIG,
3531
+ DEFAULT_RELEASE_GROUP_CONFIG
3532
+ );
3533
+ }
3534
+ const config5 = mergeReleaseGroupConfig(
3535
+ group,
3536
+ chunk4ILBJTRR_cjs.defu(
3537
+ languageDefaultConfig,
3538
+ group.projectsRelationship === "fixed" ? DEFAULT_FIXED_RELEASE_GROUP_CONFIG : DEFAULT_INDEPENDENT_RELEASE_GROUP_CONFIG,
3539
+ DEFAULT_RELEASE_GROUP_CONFIG
3540
+ ),
3541
+ workspaceConfig
3446
3542
  );
3543
+ config5.projects = matchingProjects;
3447
3544
  if (workspaceConfig?.workspaceRoot) {
3448
3545
  if (config5.changelog?.renderer && typeof config5.changelog?.renderer === "string" && config5.changelog?.renderer?.toString().startsWith("./")) {
3449
3546
  config5.changelog.renderer = chunk4ILBJTRR_cjs.joinPaths(
@@ -4143,10 +4240,15 @@ var StormReleaseClient = class _StormReleaseClient extends release.ReleaseClient
4143
4240
  }
4144
4241
  },
4145
4242
  {
4146
- groups: getReleaseGroupConfig(releaseConfig, workspaceConfig)
4243
+ groups: getReleaseGroupConfig(
4244
+ projectGraph,
4245
+ releaseConfig,
4246
+ workspaceConfig
4247
+ )
4147
4248
  },
4148
4249
  {
4149
4250
  groups: getReleaseGroupConfig(
4251
+ projectGraph,
4150
4252
  nxJson$1.release ?? {},
4151
4253
  workspaceConfig
4152
4254
  )
@@ -4172,35 +4274,6 @@ var StormReleaseClient = class _StormReleaseClient extends release.ReleaseClient
4172
4274
  })
4173
4275
  );
4174
4276
  }
4175
- const alreadyMatchedProjects = /* @__PURE__ */ new Set();
4176
- normalizedConfig.groups = Object.fromEntries(
4177
- Object.entries(normalizedConfig.groups ?? {}).map(([name, group]) => {
4178
- const matchingProjects = findMatchingProjects.findMatchingProjects(
4179
- group.projects,
4180
- projectGraph.nodes
4181
- );
4182
- if (!matchingProjects.length) {
4183
- throw new Error(
4184
- `Release group "${name}" does not have any matching projects.`
4185
- );
4186
- }
4187
- for (const project of matchingProjects) {
4188
- if (alreadyMatchedProjects.has(project)) {
4189
- throw new Error(
4190
- `Project "${project}" is included in more than one release group. Please ensure that each project is only included in one release group, or remove the "projects" property from the release group configuration to allow it to be included in the same release group as other projects with overlapping globs.`
4191
- );
4192
- }
4193
- alreadyMatchedProjects.add(project);
4194
- }
4195
- return [
4196
- name,
4197
- {
4198
- ...group,
4199
- projects: matchingProjects
4200
- }
4201
- ];
4202
- })
4203
- );
4204
4277
  return new _StormReleaseClient(
4205
4278
  projectGraph,
4206
4279
  config5,