From ae248fd22931aed78377e3a97561e85870198ff9 Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Tue, 22 Mar 2022 06:56:48 -0400 Subject: [PATCH 1/6] commenting out a small section of the `createNonPinnedSameMajorMinorPatchVersion` method. For the moment, I don't remember why it was there. It does not seem to serve an purpose. The only thing that I can think of is that it somehow would prime the working lists in some manner that I don't recognize yet. If that is the case, then commenting this out should produce odd behavior and I can recognize what this was all about again...... and then I will comment what that is!!!! ;-) --- src/shared/devHub.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/shared/devHub.ts b/src/shared/devHub.ts index 7646c11..7ae59df 100644 --- a/src/shared/devHub.ts +++ b/src/shared/devHub.ts @@ -233,9 +233,10 @@ export class DevHubDependencies { this.logger('devHub.createNonPinnedSameMajorMinorPatchVersion method called'); // console.log('createNonPinnedSameMajorMinorPatchVersion starts'); - // find the latest released version - const latestReleaseOptions = [] as InquirerOption[]; - this.findLatestBuildReleased(latestReleaseOptions, false); + // ?????: I am commenting this section out for now as, upon review, I am not certain why it is here. + // // find the latest released version + // const latestReleaseOptions = [] as InquirerOption[]; + // this.findLatestBuildReleased(latestReleaseOptions, false); // assemble the version number let versionNumber = this.currentPackageDependency.getMajorVersionNumber() + '.' + this.currentPackageDependency.getMinorVersionNumber() + '.' + this.currentPackageDependency.getPatchVersionNumber(); From 8f9702bd98494fb963b8fb26781f4adc0602a978 Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Tue, 22 Mar 2022 06:57:05 -0400 Subject: [PATCH 2/6] Adding markers for the moment --- src/commands/toolbox/package/dependencies/manage.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/toolbox/package/dependencies/manage.ts b/src/commands/toolbox/package/dependencies/manage.ts index 2d25605..aa04214 100644 --- a/src/commands/toolbox/package/dependencies/manage.ts +++ b/src/commands/toolbox/package/dependencies/manage.ts @@ -103,9 +103,11 @@ export default class Manage extends SfdxCommand { if ( isDependencyIgnored ) { dependencyPackageChoices = theDevHubDependencies.prepareSameDependencyOptionForCurrentDependency(); } else if (isInteractiveMode) { + // dependencyPackageChoices = theDevHubDependencies.prepareRelatedDependencyOptionsForCurrentDependency(); } else { if ( this.flags.updatetoreleased ) { + // dependencyPackageChoices = theDevHubDependencies.prepareRelatedReleasedDependencyOptionsForCurrentDependency(); } else if (this.flags.updatetolatest) { dependencyPackageChoices = theDevHubDependencies.prepareRelatedNonPinnedDependencyOptionsForCurrentDependency(); From 9e2311e6165811880a4d5f65ea147d8328ad9f15 Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Tue, 22 Mar 2022 07:17:27 -0400 Subject: [PATCH 3/6] updated config files and version number --- package.json | 28 ++++++++++++++-------------- tsconfig.json | 3 ++- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 0f709cc..6660368 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,37 @@ { "name": "@dx-cli-toolbox/sfdx-toolbox-package-utils", "description": "Utilities to better manage SalesforceDX Packages", - "version": "0.8.1", + "version": "0.8.2", "author": "John M. Daniel @ImJohnMDaniel", "bugs": "https://github.com/ImJohnMDaniel/sfdx-toolbox-package-utils/issues", "dependencies": { "@oclif/command": "^1.8.16", - "@oclif/config": "^1.18.2", + "@oclif/config": "^1.18.3", "@oclif/errors": "^1.3.5", "@rauschma/stringio": "^1.4.0", "@salesforce/command": "^4.2.1", - "@salesforce/core": "^2.33.1", - "fs-extra": "^10.0.0", - "inquirer": "^8.2.0", + "@salesforce/core": "^2.35.3", + "fs-extra": "^10.0.1", + "inquirer": "^8.2.1", "intercept-stdout": "^0.1.2", - "salesforce-alm": "^53.7.2", + "salesforce-alm": "^54.0.2", "tslib": "^2.3.1" }, "devDependencies": { "@oclif/dev-cli": "^1.26.10", - "@oclif/plugin-help": "^5.1.10", - "@oclif/test": "^2.0.3", - "@salesforce/dev-config": "^3.0.0", + "@oclif/plugin-help": "^5.1.12", + "@oclif/test": "^2.1.0", + "@salesforce/dev-config": "^3.0.1", "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", - "@types/node": "^17.0.2", - "chai": "^4.3.4", + "@types/node": "^17.0.22", + "chai": "^4.3.6", "globby": "^11.0.1", - "mocha": "^9.1.3", + "mocha": "^9.2.2", "nyc": "^15.1.0", "sinon": "^12.0.1", - "ts-node": "^10.4.0", - "typescript": "^4.5.4" + "ts-node": "^10.7.0", + "typescript": "^4.6.2" }, "engines": { "node": ">=12.0.0" diff --git a/tsconfig.json b/tsconfig.json index 12618d1..9cf9efc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,8 @@ "extends": "@salesforce/dev-config/tsconfig", "compilerOptions": { "outDir": "lib", - "rootDir": "src" + "rootDir": "src", + "downlevelIteration": true }, "include": ["./src/**/*.ts"] } From cd6904fa10e471c91c890388fe73eddf0003bea9 Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Sun, 27 Mar 2022 14:38:15 -0400 Subject: [PATCH 4/6] Changes related to recognizing other branches as releasable Changes made: * corrected redundant call to `this.project.retrieveSfdxProjectJson();` in order to find the dependencies to ignore. Now, it simply calls new function `theSfdxProject.getProjectDependenciesToIgnore();` * calls new `theSfdxProject.getBranchNamesThatContainReleasedVersions();` method and forwards the contents to two different `DevHubDependencies` methods --- src/commands/toolbox/package/dependencies/manage.ts | 9 +++++---- src/shared/sfdxproject.ts | 8 ++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/commands/toolbox/package/dependencies/manage.ts b/src/commands/toolbox/package/dependencies/manage.ts index aa04214..59c0340 100644 --- a/src/commands/toolbox/package/dependencies/manage.ts +++ b/src/commands/toolbox/package/dependencies/manage.ts @@ -55,8 +55,9 @@ export default class Manage extends SfdxCommand { const packageDependencyChangeMap: Map = new Map(); - const projectJson = await this.project.retrieveSfdxProjectJson(); - let dependenciesToIgnore = _.get(projectJson['contents'], 'plugins.toolbox.dependencies.ignore', false) as string[]; + const dependenciesToIgnore = theSfdxProject.getProjectDependenciesToIgnore(); + + const branchNamesThatContainReleasedVersions = theSfdxProject.getBranchNamesThatContainReleasedVersions(); const evaluateOptions = async () => { let aProjectDependencyChange: ProjectDependencyChange; @@ -104,11 +105,11 @@ export default class Manage extends SfdxCommand { dependencyPackageChoices = theDevHubDependencies.prepareSameDependencyOptionForCurrentDependency(); } else if (isInteractiveMode) { // - dependencyPackageChoices = theDevHubDependencies.prepareRelatedDependencyOptionsForCurrentDependency(); + dependencyPackageChoices = theDevHubDependencies.prepareRelatedDependencyOptionsForCurrentDependency(branchNamesThatContainReleasedVersions); } else { if ( this.flags.updatetoreleased ) { // - dependencyPackageChoices = theDevHubDependencies.prepareRelatedReleasedDependencyOptionsForCurrentDependency(); + dependencyPackageChoices = theDevHubDependencies.prepareRelatedReleasedDependencyOptionsForCurrentDependency(branchNamesThatContainReleasedVersions); } else if (this.flags.updatetolatest) { dependencyPackageChoices = theDevHubDependencies.prepareRelatedNonPinnedDependencyOptionsForCurrentDependency(); } diff --git a/src/shared/sfdxproject.ts b/src/shared/sfdxproject.ts index cb96d46..08b0286 100644 --- a/src/shared/sfdxproject.ts +++ b/src/shared/sfdxproject.ts @@ -230,6 +230,14 @@ export class SfdxProjects { return outputMap; } + public getProjectDependenciesToIgnore(): string[] { + return _.get(this.sfdxProjectJson, 'plugins.toolbox.dependencies.ignore', false) as string[]; + } + + public getBranchNamesThatContainReleasedVersions(): string[] { + return _.get(this.sfdxProjectJson['contents'], 'plugins.toolbox.package.brancheswithreleasedversions', false) as string[]; + } + private resolveDependencyAliases( dependency: AnyJson ): AnyJson { if ( Object.keys(dependency).find(item => item === 'package') ) { dependency['package'] = this.resolveAlias(dependency['package']); From e43e11833748fc6e948eccf22f4a44939b5ecbc3 Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Sun, 27 Mar 2022 14:45:13 -0400 Subject: [PATCH 5/6] Changes related to recognizing other branches as releasable Changes made: * Optimized various `DevHubDependencies.find*` methods to now be pass-through-methods to the new `findVersion` method. * `findLatestBuildsReleased` method has been enhanced to now also review any branch names specified in the `branchNamesThatContainReleasedVersions` variable array * --- src/shared/devHub.ts | 146 ++++++++++++++++++++++++++++--------------- 1 file changed, 96 insertions(+), 50 deletions(-) diff --git a/src/shared/devHub.ts b/src/shared/devHub.ts index 7ae59df..9362c77 100644 --- a/src/shared/devHub.ts +++ b/src/shared/devHub.ts @@ -82,9 +82,9 @@ export class DevHubDependencies { return options; } - public prepareRelatedReleasedDependencyOptionsForCurrentDependency(): InquirerOption[] { + public prepareRelatedReleasedDependencyOptionsForCurrentDependency(branchNamesThatContainReleasedVersions?: string[]): InquirerOption[] { const options: InquirerOption[] = []; - this.findLatestBuildReleased(options, true); + this.findLatestBuildsReleased(options, branchNamesThatContainReleasedVersions, true); return options; } @@ -94,7 +94,7 @@ export class DevHubDependencies { return options; } - public prepareRelatedDependencyOptionsForCurrentDependency(): InquirerOption[] { + public prepareRelatedDependencyOptionsForCurrentDependency(branchNamesThatContainReleasedVersions?: string[]): InquirerOption[] { // TODO: implement "Is there a newer Major version available?" // There is a distinction between "next available version" and "next avaialble released version" // There is a distinction between "the base/null branch" verses the "feature branch" that is coming from Branch flag @@ -109,38 +109,44 @@ export class DevHubDependencies { // if there is a release version then we will hold adding that to the options array until later // but the other find requests will // Is there a released version that is available on the main branch? - this.findLatestBuildReleased(onlyLatestBuildReleasedOptions, true, versionsFound); + this.findLatestBuildsReleased(onlyLatestBuildReleasedOptions, branchNamesThatContainReleasedVersions, true, versionsFound); this.logger(onlyLatestBuildReleasedOptions.length); + this.logger('mark 2B'); this.logger(options.length); - // What is the latest build version on the branch regardless of Major.Minor.Patch numbers? this.findLatestCurrentBranchBuilderVersion(options, versionsFound); + this.logger('mark 2C'); this.logger(options.length); - // Is there a newer Major.Minor.Patch version availble? - this.findLatestMainBranchBuildSameMajorMinorPatchVersion(options, versionsFound); + this.findLatestMainBranchBuildSameMajorMinorPatchVersion(options, branchNamesThatContainReleasedVersions, versionsFound); + this.logger('mark 2D'); this.logger(options.length); - // Is there a newer Major.Minor version availble? - this.findLatestMainBranchBuildSameMajorMinorVersion(options, versionsFound); + this.findLatestMainBranchBuildSameMajorMinorVersion(options, branchNamesThatContainReleasedVersions, versionsFound); + this.logger('mark 2E'); this.logger(options.length); - // Is there a newer Major version availble? - this.findLatestMainBranchBuildVersion(options, versionsFound); + this.findLatestMainBranchBuildVersion(options, branchNamesThatContainReleasedVersions, versionsFound); + this.logger('mark 2F'); this.logger(options.length); - // add the onlyLatestBuildReleasedOptions, if available if ( onlyLatestBuildReleasedOptions.length > 0 ) { - options.push(onlyLatestBuildReleasedOptions[0]); + // options.push(onlyLatestBuildReleasedOptions[0]); + onlyLatestBuildReleasedOptions.forEach((onlyLatestBuildReleasedOption: InquirerOption) => { + options.push(onlyLatestBuildReleasedOption); + }); + this.logger('mark 2.5A'); this.logger(options.length); } // Create "package@CurrentMajor.CurrentMinor.CurrentPatch-LATEST" version entry this.createNonPinnedSameMajorMinorPatchVersion(options); + this.logger('mark 2G'); this.logger(options.length); // Create an option to keep the current version specified in the sfdx-project.json this.createSameOptionAsCurrent(options); + this.logger('mark 2H'); this.logger(options.length); return options; @@ -267,55 +273,79 @@ export class DevHubDependencies { // console.log('createNonPinnedSameMajorMinorPatchVersion finishes'); } - private findLatestMainBranchBuildSameMajorMinorVersion(options: InquirerOption[], versionsFound: Set) { - this.logger('devHub.findLatestMainBranchBuildSameMajorMinorVersion method called'); - const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosByPackageAndBranchMap, CHUNK_LEVEL.MINOR, ''); - - if (currentBuildBlock) { - const devhubPackageVersion = this.findLatestBuildFromBlock(currentBuildBlock); - if ( ! versionsFound.has(devhubPackageVersion.SubscriberPackageVersionId) ) { - versionsFound.add(devhubPackageVersion.SubscriberPackageVersionId); - options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion, 'Latest ' + this.currentPackageDependency.getMajorVersionNumber() + '.' + this.currentPackageDependency.getMinorVersionNumber() + ' version on main build branch', this.currentBranch)); + private findVersion(options: InquirerOption[], versionsFound: Set, chunkLevel: CHUNK_LEVEL, branchName: string) { + const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosByPackageAndBranchMap, chunkLevel, branchName); + const branchNameFullSnippet = branchName ? 'build branch - ' + branchName : 'main build branch'; + let versionTypeSnippet = 'major'; + if ( chunkLevel >= CHUNK_LEVEL.MINOR ) { + if ( chunkLevel == CHUNK_LEVEL.MINOR ) { + versionTypeSnippet += ' and minor'; } else { - this.ux.log(' -- Latest build on same major and minor version on the main build branch included in options already'); + versionTypeSnippet += ', minor'; } - } else { - this.ux.log(' -- No option found for latest build on same major and minor version on the main build branch'); } - } + if ( chunkLevel >= CHUNK_LEVEL.PATCH ) { + versionTypeSnippet += ', and patch'; + } + versionTypeSnippet += ' version'; - private findLatestMainBranchBuildSameMajorMinorPatchVersion(options: InquirerOption[], versionsFound: Set) { - this.logger('devHub.findLatestMainBranchBuildSameMajorMinorPatchVersion method called'); - const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosByPackageAndBranchMap, CHUNK_LEVEL.PATCH, ''); + let versionNumberSnippet = 'Latest'; + if ( chunkLevel > CHUNK_LEVEL.MAJOR ) { + versionNumberSnippet += this.currentPackageDependency.getMajorVersionNumber(); + } + if ( chunkLevel >= CHUNK_LEVEL.MINOR ) { + versionNumberSnippet += '.' + this.currentPackageDependency.getMinorVersionNumber(); + } + if ( chunkLevel >= CHUNK_LEVEL.PATCH ) { + versionNumberSnippet += '.' + this.currentPackageDependency.getPatchVersionNumber(); + } if (currentBuildBlock) { const devhubPackageVersion = this.findLatestBuildFromBlock(currentBuildBlock); if ( ! versionsFound.has(devhubPackageVersion.SubscriberPackageVersionId) ) { versionsFound.add(devhubPackageVersion.SubscriberPackageVersionId); - options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion, 'Latest ' + this.currentPackageDependency.getMajorVersionNumber() + '.' + this.currentPackageDependency.getMinorVersionNumber() + '.' + this.currentPackageDependency.getPatchVersionNumber() + ' version on main build branch', this.currentBranch)); + options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion + , versionNumberSnippet + + ' version on ' + branchNameFullSnippet + , branchName)); } else { - this.ux.log(' -- Latest build on same major, minor, and patch version on the main build branch included in options already'); + this.ux.log(' -- Latest build on same ' + versionTypeSnippet + ' on the ' + + branchNameFullSnippet + ' included in options already'); } } else { - this.ux.log(' -- No option found for latest build on same major, minor, and patch version on the main build branch'); + this.ux.log(' -- No option found for latest build on same ' + versionTypeSnippet + ' on the ' + + branchNameFullSnippet); + } + } + + private findLatestMainBranchBuildSameMajorMinorVersion(options: InquirerOption[], branchNamesThatContainReleasedVersions: string[], versionsFound: Set) { + this.logger('devHub.findLatestMainBranchBuildSameMajorMinorVersion method called'); + this.findVersion( options, versionsFound, CHUNK_LEVEL.MINOR, undefined); + if ( branchNamesThatContainReleasedVersions ) { + branchNamesThatContainReleasedVersions.forEach((branchName: string) => { + this.findVersion( options, versionsFound, CHUNK_LEVEL.MINOR, branchName); + }); } + } + private findLatestMainBranchBuildSameMajorMinorPatchVersion(options: InquirerOption[], branchNamesThatContainReleasedVersions: string[], versionsFound: Set) { + this.logger('devHub.findLatestMainBranchBuildSameMajorMinorPatchVersion method called'); + this.findVersion( options, versionsFound, CHUNK_LEVEL.PATCH, undefined); + if ( branchNamesThatContainReleasedVersions ) { + branchNamesThatContainReleasedVersions.forEach((branchName: string) => { + this.findVersion( options, versionsFound, CHUNK_LEVEL.PATCH, branchName); + }); + } + } - private findLatestMainBranchBuildVersion(options: InquirerOption[], versionsFound: Set) { + private findLatestMainBranchBuildVersion(options: InquirerOption[], branchNamesThatContainReleasedVersions: string[], versionsFound: Set) { this.logger('devHub.findLatestMainBranchBuildVersion method called'); - const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosByPackageAndBranchMap, CHUNK_LEVEL.MAJOR, ''); - - if (currentBuildBlock) { - const devhubPackageVersion = this.findLatestBuildFromBlock(currentBuildBlock); - if ( ! versionsFound.has(devhubPackageVersion.SubscriberPackageVersionId) ) { - versionsFound.add(devhubPackageVersion.SubscriberPackageVersionId); - options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion, 'Latest version on main build branch', undefined)); - } else { - this.ux.log(' -- Latest build on the main build branch included in options already'); - } - } else { - this.ux.log(' -- No option found for latest build on the main build branch'); + this.findVersion( options, versionsFound, CHUNK_LEVEL.MAJOR, undefined); + if ( branchNamesThatContainReleasedVersions ) { + branchNamesThatContainReleasedVersions.forEach((branchName: string) => { + this.findVersion( options, versionsFound, CHUNK_LEVEL.MAJOR, branchName); + }); } } @@ -338,19 +368,35 @@ export class DevHubDependencies { } } - private findLatestBuildReleased(options: InquirerOption[], isLoggingToUX?: boolean, versionsFound?: Set) { - this.logger('devHub.findLatestBuildReleased method called'); - const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosReleasedByPackageAndBranchMap, CHUNK_LEVEL.MAJOR, ''); + private findLatestBuildsReleased(options: InquirerOption[], branchNamesThatContainReleasedVersions: string[], isLoggingToUX?: boolean, versionsFound?: Set) { + this.logger('devHub.findLatestBuildsReleased method called'); + // find the latest build released on branch null + this.findLatestBuildReleasedForBranch(options, '', isLoggingToUX, versionsFound); + // find the latest build released on each of the branchNamesThatContainReleasedVersions + if ( branchNamesThatContainReleasedVersions ) { + branchNamesThatContainReleasedVersions.forEach((branchName: string) => { + this.findLatestBuildReleasedForBranch(options, branchName, isLoggingToUX, versionsFound); + }); + } + } + private findLatestBuildReleasedForBranch(options: InquirerOption[], branchName: string, isLoggingToUX?: boolean, versionsFound?: Set) { + const currentBuildBlock = this.findBlock(this.devHubPackageVersionInfosReleasedByPackageAndBranchMap, CHUNK_LEVEL.MAJOR, branchName); + + const optionMessage = branchName ? 'Latest released version on build branch - ' + branchName + : 'Latest released version on main build branch'; + const noOptionMessage = branchName ? ' -- No option found for released version build on build branch - ' + branchName + : ' -- No option found for released version build on main build branch'; + if (currentBuildBlock) { const devhubPackageVersion = this.findLatestBuildFromBlock(currentBuildBlock); if ( versionsFound ) { versionsFound.add(devhubPackageVersion.SubscriberPackageVersionId); } - options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion, 'Latest released version on main build branch', undefined)); + options.push(this.createOptionBySubscriberPackageVersionId(devhubPackageVersion, optionMessage, branchName)); } else { if ( isLoggingToUX ) { - this.ux.log(' -- No option found for released version build on main build branch'); + this.ux.log(noOptionMessage); } } } From 1835ab78e0159098873d8dedc2827c0b9b64569a Mon Sep 17 00:00:00 2001 From: "John M. Daniel" Date: Sun, 27 Mar 2022 15:24:07 -0400 Subject: [PATCH 6/6] minor updates --- referencedxproject/sfdx-project.json | 97 +++++++++------------------- 1 file changed, 29 insertions(+), 68 deletions(-) diff --git a/referencedxproject/sfdx-project.json b/referencedxproject/sfdx-project.json index b9dc8b7..e908754 100644 --- a/referencedxproject/sfdx-project.json +++ b/referencedxproject/sfdx-project.json @@ -1,75 +1,36 @@ { "packageDirectories": [ - { - "path": "sfdx-source/core", - "default": true, - "dependencies": [ - { - "package": "x103.framework-globals", - "versionNumber": "0.1.0.LATEST" - }, - { - "package": "x103.framework", - "versionNumber": "0.1.0.LATEST" - }, - { - "package": "referencePackageA", - "versionNumber": "0.1-LATEST" - }, - { - "package": "referencePackageB", - "versionNumber": "0.1.0.LATEST" - } - ] - }, - { - "path": "sfdx-source/unpackaged", - "default": false - } + { + "path": "force-app", + "default": true, + "package": "Legacy", + "versionNumber": "1.0.0.NEXT", + "dependencies": [ + { + "package": "fflib-apex-mocks@1.4.0-1" + }, + { + "package": "fflib-apex-common@1.2.0-1" + } + ] + } ], "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "54.0", - "packageAliases": { - "referencePackageA": "0Ho1T000000GmaOSAS", - "referencePackageB": "0Ho1T000000GmaTSAS", - "x103.framework": "0Ho1T000000XZAbSAO", - "x103.framework-globals": "0Ho1T000000XZAgSAO" - }, - "otherExamples": [ - { - "dependencies": [ - { - "package": "referencePackageA", - "versionNumber": "0.LATEST" - }, - { - "package": "x103.framework", - "versionNumber": "0.1.0-LATEST" - }, - { - "package": "x103.framework-globals@0.1.0.1" - }, - { - "package": "04t1T000000V9beQAC" - }, - { - "package": "referencePackageA", - "versionNumber": "0.1-LATEST" - }, - { - "package": "0Ho1T000000GmaTSAS", - "versionNumber": "0.1-LATEST" - }, - { - "package": "0Ho1T000000GmaTSAS", - "versionNumber": "100.1-LATEST" - }, - { - "package": "referencePackageA", - "versionNumber": "0.1.0.2" - } - ] + "sourceApiVersion": "53.0", + "plugins": { + "toolbox": { + "package": { + "brancheswithreleasedversions": [ + "bluefish" + ] } - ] + } + }, + "packageAliases": { + "fflib-apex-mocks@1.4.0-1": "04t7R0000018hxeQAA", + "fflib-apex-common@1.2.0-1": "04t7R0000018hyXQAQ", + "fflib-apex-mocks": "0Ho7R000000fxUCSAY", + "fflib-apex-common": "0Ho7R000000fxU7SAI" + } } \ No newline at end of file