Skip to content

Commit

Permalink
Merge branch 'main' into feat/apexparser-upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
azlam-abdulsalam authored Apr 19, 2024
2 parents 0487907 + 0cdaa37 commit 778c28d
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 25 deletions.
2 changes: 1 addition & 1 deletion packages/sfp-cli/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@flxbl-io/sfp",
"description": "sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model",
"version": "38.3.0",
"version": "38.3.1",
"license": "MIT",
"author": "flxblio",
"release": "March 24",
Expand Down
14 changes: 7 additions & 7 deletions packages/sfp-cli/src/commands/pool/metrics/publish.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ export default class Publish extends SfpCommand {
SFPStatsSender.logGauge(`scratchorgs.active.remaining`, remainingActiveScratchOrgs, {target_org: devhubUserName});
SFPStatsSender.logGauge(`scratchorgs.daily.remaining`, remainingDailyScratchOrgs, {target_org: devhubUserName});

table.push(['sfp.scratchorgs.active.remaining', remainingActiveScratchOrgs, devhubUserName]);
table.push(['sfp.scratchorgs.daily.remaining', remainingDailyScratchOrgs, devhubUserName]);
table.push(['sfpowerscripts.scratchorgs.active.remaining', remainingActiveScratchOrgs, devhubUserName]);
table.push(['sfpowerscripts.scratchorgs.daily.remaining', remainingDailyScratchOrgs, devhubUserName]);

SFPStatsSender.logGauge(`pool.footprint`, nPooledScratchOrgs);
table.push(['sfp.pool.footprint', nPooledScratchOrgs, '']);
table.push(['sfpowerscripts.pool.footprint', nPooledScratchOrgs, '']);

if (pools) {
for (let pool of Object.entries(pools)) {
Expand All @@ -71,10 +71,10 @@ export default class Publish extends SfpCommand {
SFPStatsSender.logGauge('pool.inuse', pool[1].nInUse, { poolName: pool[0] });
SFPStatsSender.logGauge('pool.provisioning', pool[1].nProvisioningInProgress, { poolName: pool[0] });

table.push(['sfp.pool.total', pool[1].nTotal, pool[0]]);
table.push(['sfp.pool.available', pool[1].nAvailable, pool[0]]);
table.push(['sfp.pool.inuse', pool[1].nInUse, pool[0]]);
table.push(['sfp.pool.provisioning', pool[1].nProvisioningInProgress, pool[0]]);
table.push(['sfpowerscripts.pool.total', pool[1].nTotal, pool[0]]);
table.push(['sfpowerscripts.pool.available', pool[1].nAvailable, pool[0]]);
table.push(['sfpowerscripts.pool.inuse', pool[1].nInUse, pool[0]]);
table.push(['sfpowerscripts.pool.provisioning', pool[1].nProvisioningInProgress, pool[0]]);
}
}

Expand Down
2 changes: 1 addition & 1 deletion packages/sfp-cli/src/core/apextest/TriggerApexTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ export default class TriggerApexTests {
id: testResult.summary.testRunId,
message: dedent `Unable to fetch test execution results,
Please check the results in the org by using the URL below
https://${this.conn.instanceUrl}/lightning/setup/ApexTestHistory/home
${this.conn.instanceUrl}/lightning/setup/ApexTestHistory/home
Please try the test execution again`,
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export default class PackageDependencyResolver {
for (let i = 0; i < packageDirectory.dependencies.length; i++) {
let dependency = packageDirectory.dependencies[i];
if (this.projectConfig.packageAliases[dependency.package] === undefined && !this.isSubscriberPackageVersionId(dependency.package)) {

throw new Error(`Can't find package id for dependency: ${dependency.package}, Please ensure that the package is added to sfdx-project.json in your packageAliases`);
}

Expand Down Expand Up @@ -86,15 +86,15 @@ export default class PackageDependencyResolver {
delete dependency.versionNumber;
delete dependency.branch;
continue;

}else {
package2VersionForDependency = await this.getPackage2VersionForDependency(
this.conn,
dependency,
packageVersionId
);
}


if (package2VersionForDependency == null) {
packageDirectory.dependencies.splice(i, 1);
Expand All @@ -120,6 +120,8 @@ export default class PackageDependencyResolver {
branch?: string,
): Promise<Package2Version> {

let isReleased = false;

//Dont hit api's if its only for external dependencies
if (this.projectConfig.packageDirectories.find((dir) => dir.package === dependency.package)) {
if (this.resolveExternalDepenciesOnly) return null;
Expand All @@ -129,7 +131,9 @@ export default class PackageDependencyResolver {

let versionNumber: string = dependency.versionNumber;
let vers: string[] = versionNumber.split('.');
if (vers.length === 4 && vers[3] === 'LATEST') {
// fetch only promoted versions
if (vers.length === 4 && vers[3] === 'RELEASED') isReleased = true;
if (vers.length === 4 && (vers[3] === 'LATEST') || (vers[3] === 'RELEASED')) {
versionNumber = `${vers[0]}.${vers[1]}.${vers[2]}`;
}

Expand All @@ -152,10 +156,11 @@ export default class PackageDependencyResolver {
records = await package2VersionFetcher.fetchByPackage2Id(
packageVersionId,
versionNumber,
true
true,
isReleased
);
}

this.package2VersionCache.set(
packageVersionId,
versionNumber,
Expand All @@ -167,12 +172,18 @@ export default class PackageDependencyResolver {
);
}

if (package2Versions.length === 0) {
if (package2Versions.length === 0 && !isReleased) {
throw new Error(
`Failed to find any validated Package2 versions for the dependency ${dependency.package} with version ${dependency.versionNumber}`
);
}

if (package2Versions.length === 0 && isReleased) {
throw new Error(
`Failed to find any promoted Package2 versions for the dependency ${dependency.package} with version ${dependency.versionNumber}`
);
}

if (this.projectConfig.packageDirectories.find((dir) => dir.package === dependency.package && !branch)) {
package2Version = await this.getPackage2VersionFromCurrentBranch(package2Versions, dependency);
} else {
Expand Down Expand Up @@ -211,7 +222,7 @@ export default class PackageDependencyResolver {

if (!package2VersionOnCurrentBranch) {
throw new Error(
`Failed to find validated Package2 version for dependency ${dependency.package} with version ${dependency.versionNumber} created from the current branch,
`Failed to find validated Package2 version for dependency ${dependency.package} with version ${dependency.versionNumber} created from the current branch,
You will need to create a new version of the package on the current branch to resolve this dependency.`
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ export default class Package2VersionFetcher {
async fetchByPackage2Id(
package2Id: string,
versionNumber?: string,
isValidatedPackages?: boolean
isValidatedPackages?: boolean,
isReleased?: boolean
): Promise<Package2Version[]> {
let query = this.query;

Expand All @@ -39,14 +40,16 @@ export default class Package2VersionFetcher {
}

if (isValidatedPackages) whereClause += `and ValidationSkipped = false `;
if (isReleased) whereClause += `and IsReleased = true `;


whereClause += `and IsDeprecated = false `;
query += whereClause;


const records = await QueryHelper.query<Package2Version>(query, this.conn, true);


if (records.length > 1) {
return records.sort((a, b) => {
const v1 = `${a.MajorVersion}.${a.MinorVersion}.${a.PatchVersion}-${a.BuildNumber}`;
Expand All @@ -67,11 +70,11 @@ export default class Package2VersionFetcher {
}

async fetchByPackageBranchAndName(
packageBranch: string,
packageName: string,
packageBranch: string,
packageName: string,
versionNumber?: string,
): Promise<Package2Version[]> {

let query = this.query;

let whereClause: string = `where Branch='${packageBranch}' and Package2.Name ='${packageName}' `;
Expand All @@ -90,7 +93,7 @@ export default class Package2VersionFetcher {
const records = await QueryHelper.query<Package2Version>(query, this.conn, true);
return records;

}
}
}

export interface Package2Version {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export default class PreRequisiteCheck {

if (!PreRequisiteCheck.isPrerequisiteMet) {
throw new Error( `Required Prerequisite values in ScratchOrgInfo is missing in the DevHub` +
`For more information Please refer https://sfp.flxbl.io/getting-started/prerequisites \n`);
`For more information Please refer https://docs.flxbl.io/sfp/pools/setting-up-your-salesforce-org-for-scratch-org-pools \n`);
}
}
}
2 changes: 1 addition & 1 deletion packages/sfp-cli/src/impl/validate/ValidateImpl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ export default class ValidateImpl implements PostDeployHook, PreDeployHook {
skipIfPackageInstalled: false,
logsGroupSymbol: this.props.logsGroupSymbol,
currentStage: Stage.VALIDATE,
disableArtifactCommit: false, //always set to false, let post deploy determine
disableArtifactCommit: true, //always set to true, let post deploy determine
impactedPackagesAsPerBranch: this.impactedPackagesAsPerBranch,
selectiveComponentDeployment:
this.props.validationMode == ValidationMode.FAST_FEEDBACK ||
Expand Down

0 comments on commit 778c28d

Please sign in to comment.