From 72b0921ad9c03c9d09ebf14c96bba7b21555e217 Mon Sep 17 00:00:00 2001 From: Jason Siders <41714875+jasonsiders@users.noreply.github.com> Date: Wed, 6 Aug 2025 13:49:26 -0500 Subject: [PATCH 1/3] creating dedicated source directory --- .forceignore | 4 ++-- .github/scripts/static_analysis.py | 4 ++-- .github/workflows/ci.yml | 6 +++--- .github/workflows/release.yml | 2 +- .gitignore | 4 ++-- packages/managed/sfdx-project.json | 2 +- packages/unlocked/sfdx-project.json | 2 +- sfdx-project.json | 2 +- .../main/default => source}/classes/DatabaseLayer.cls | 0 .../default => source}/classes/DatabaseLayer.cls-meta.xml | 0 .../main/default => source}/classes/DatabaseLayerTest.cls | 0 .../classes/DatabaseLayerTest.cls-meta.xml | 0 .../default => source}/classes/DatabaseLayerTestUtils.cls | 0 .../classes/DatabaseLayerTestUtils.cls-meta.xml | 0 .../main/default => source}/classes/DatabaseLayerUtils.cls | 0 .../classes/DatabaseLayerUtils.cls-meta.xml | 0 .../default => source}/classes/DatabaseLayerUtilsTest.cls | 0 .../classes/DatabaseLayerUtilsTest.cls-meta.xml | 0 {force-app/main/default => source}/classes/Dml.cls | 0 {force-app/main/default => source}/classes/Dml.cls-meta.xml | 0 {force-app/main/default => source}/classes/DmlTest.cls | 0 .../main/default => source}/classes/DmlTest.cls-meta.xml | 0 {force-app/main/default => source}/classes/MockDml.cls | 0 .../main/default => source}/classes/MockDml.cls-meta.xml | 0 {force-app/main/default => source}/classes/MockDmlTest.cls | 0 .../default => source}/classes/MockDmlTest.cls-meta.xml | 0 {force-app/main/default => source}/classes/MockRecord.cls | 0 .../main/default => source}/classes/MockRecord.cls-meta.xml | 0 .../main/default => source}/classes/MockRecordTest.cls | 0 .../default => source}/classes/MockRecordTest.cls-meta.xml | 0 {force-app/main/default => source}/classes/MockSoql.cls | 0 .../main/default => source}/classes/MockSoql.cls-meta.xml | 0 {force-app/main/default => source}/classes/MockSoqlTest.cls | 0 .../default => source}/classes/MockSoqlTest.cls-meta.xml | 0 {force-app/main/default => source}/classes/Soql.cls | 0 .../main/default => source}/classes/Soql.cls-meta.xml | 0 {force-app/main/default => source}/classes/SoqlTest.cls | 0 .../main/default => source}/classes/SoqlTest.cls-meta.xml | 0 ...tting__mdt-Database Layer Setting Layout.layout-meta.xml | 0 .../DatabaseLayerSetting__mdt.object-meta.xml | 0 .../fields/DmlPreAndPostProcessor__c.field-meta.xml | 0 .../fields/SoqlPreAndPostProcessor__c.field-meta.xml | 0 .../EnforceSingleRecord.validationRule-meta.xml | 0 43 files changed, 13 insertions(+), 13 deletions(-) rename {force-app/main/default => source}/classes/DatabaseLayer.cls (100%) rename {force-app/main/default => source}/classes/DatabaseLayer.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/DatabaseLayerTest.cls (100%) rename {force-app/main/default => source}/classes/DatabaseLayerTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/DatabaseLayerTestUtils.cls (100%) rename {force-app/main/default => source}/classes/DatabaseLayerTestUtils.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/DatabaseLayerUtils.cls (100%) rename {force-app/main/default => source}/classes/DatabaseLayerUtils.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/DatabaseLayerUtilsTest.cls (100%) rename {force-app/main/default => source}/classes/DatabaseLayerUtilsTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/Dml.cls (100%) rename {force-app/main/default => source}/classes/Dml.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/DmlTest.cls (100%) rename {force-app/main/default => source}/classes/DmlTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockDml.cls (100%) rename {force-app/main/default => source}/classes/MockDml.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockDmlTest.cls (100%) rename {force-app/main/default => source}/classes/MockDmlTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockRecord.cls (100%) rename {force-app/main/default => source}/classes/MockRecord.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockRecordTest.cls (100%) rename {force-app/main/default => source}/classes/MockRecordTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockSoql.cls (100%) rename {force-app/main/default => source}/classes/MockSoql.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/MockSoqlTest.cls (100%) rename {force-app/main/default => source}/classes/MockSoqlTest.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/Soql.cls (100%) rename {force-app/main/default => source}/classes/Soql.cls-meta.xml (100%) rename {force-app/main/default => source}/classes/SoqlTest.cls (100%) rename {force-app/main/default => source}/classes/SoqlTest.cls-meta.xml (100%) rename {force-app/main/default => source}/layouts/DatabaseLayerSetting__mdt-Database Layer Setting Layout.layout-meta.xml (100%) rename {force-app/main/default => source}/objects/DatabaseLayerSetting__mdt/DatabaseLayerSetting__mdt.object-meta.xml (100%) rename {force-app/main/default => source}/objects/DatabaseLayerSetting__mdt/fields/DmlPreAndPostProcessor__c.field-meta.xml (100%) rename {force-app/main/default => source}/objects/DatabaseLayerSetting__mdt/fields/SoqlPreAndPostProcessor__c.field-meta.xml (100%) rename {force-app/main/default => source}/objects/DatabaseLayerSetting__mdt/validationRules/EnforceSingleRecord.validationRule-meta.xml (100%) diff --git a/.forceignore b/.forceignore index 77aa67f9..3f8f05e8 100755 --- a/.forceignore +++ b/.forceignore @@ -12,5 +12,5 @@ package.xml **/__tests__/** # Unrelated Metadata -force-app/main/default/objectTranslations/** -force-app/main/default/profiles/** \ No newline at end of file +source/objectTranslations/** +source/profiles/** \ No newline at end of file diff --git a/.github/scripts/static_analysis.py b/.github/scripts/static_analysis.py index bba05185..1d254319 100644 --- a/.github/scripts/static_analysis.py +++ b/.github/scripts/static_analysis.py @@ -95,7 +95,7 @@ def define_args(): help="Path that the formatted .md summary will be saved to", default="static_analysis_summary.md", ) - parser.add_argument("--target", help="The directory to scan", default="force-app/") + parser.add_argument("--target", help="The directory to scan", default="source/") parser.add_argument( "--threshold", help="Defines the severity threshold of violations that are allowed w/out failure", @@ -112,7 +112,7 @@ def get_sfca_violation_location(violation): locations = [] for l in violation.get("locations", []): # Note: Omit everything before the actual working directory: - path = "force-app/" + l.get("file").split("force-app/", 1)[-1] + path = "source/" + l.get("file").split("source/", 1)[-1] start_line = l.get("startLine", "?") start_col = l.get("startColumn", "?") loc = f"{path}:{start_line}:{start_col}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 744a0e81..7ca1b33b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: branches: - main paths: - - "force-app/**" + - "source/**" types: [opened, ready_for_review, reopened, synchronize] concurrency: @@ -79,7 +79,7 @@ jobs: # Ensure this check only runs against changed files in the current PR; not the entire codebase set -euo pipefail mkdir "$CHANGES_DIR" - sf sgd source delta --generate-delta --from "HEAD^" --to "HEAD" --output-dir "$CHANGES_DIR"/ --source-dir "force-app/" + sf sgd source delta --generate-delta --from "HEAD^" --to "HEAD" --output-dir "$CHANGES_DIR"/ --source-dir "source/" echo "Changed files:" ls "$CHANGES_DIR" @@ -194,7 +194,7 @@ jobs: --coverage-formatters json-summary \ --dry-run \ --ignore-conflicts \ - --source-dir force-app \ + --source-dir source \ --test-level RunLocalTests \ --verbose \ --wait 30 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ba403bd1..fb2f4580 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,7 +5,7 @@ on: branches: - main paths: - - force-app + - source workflow_dispatch: inputs: version: diff --git a/.gitignore b/.gitignore index ecdf2af8..167e940e 100644 --- a/.gitignore +++ b/.gitignore @@ -48,8 +48,8 @@ $RECYCLE.BIN/ .vscode/settings.json # Unrelated Metadata -force-app/main/default/objectTranslations/** -force-app/main/default/profiles/** +source/objectTranslations/** +source/profiles/** # Agents CLAUDE.md \ No newline at end of file diff --git a/packages/managed/sfdx-project.json b/packages/managed/sfdx-project.json index 5aad5225..d3c1fb87 100644 --- a/packages/managed/sfdx-project.json +++ b/packages/managed/sfdx-project.json @@ -1,7 +1,7 @@ { "packageDirectories": [ { - "path": "force-app", + "path": "source", "default": true, "package": "apex-database-layer-managed", "versionName": "v3.1.0", diff --git a/packages/unlocked/sfdx-project.json b/packages/unlocked/sfdx-project.json index 1a44b033..00faa2b8 100644 --- a/packages/unlocked/sfdx-project.json +++ b/packages/unlocked/sfdx-project.json @@ -1,7 +1,7 @@ { "packageDirectories": [ { - "path": "force-app", + "path": "source", "default": true, "package": "apex-database-layer-unlocked", "versionName": "v3.1.0", diff --git a/sfdx-project.json b/sfdx-project.json index bccb171c..1227b85b 100644 --- a/sfdx-project.json +++ b/sfdx-project.json @@ -1,7 +1,7 @@ { "packageDirectories": [ { - "path": "force-app", + "path": "source", "default": true, "versionName": "v3.1.0", "versionNumber": "3.1.0.NEXT" diff --git a/force-app/main/default/classes/DatabaseLayer.cls b/source/classes/DatabaseLayer.cls similarity index 100% rename from force-app/main/default/classes/DatabaseLayer.cls rename to source/classes/DatabaseLayer.cls diff --git a/force-app/main/default/classes/DatabaseLayer.cls-meta.xml b/source/classes/DatabaseLayer.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DatabaseLayer.cls-meta.xml rename to source/classes/DatabaseLayer.cls-meta.xml diff --git a/force-app/main/default/classes/DatabaseLayerTest.cls b/source/classes/DatabaseLayerTest.cls similarity index 100% rename from force-app/main/default/classes/DatabaseLayerTest.cls rename to source/classes/DatabaseLayerTest.cls diff --git a/force-app/main/default/classes/DatabaseLayerTest.cls-meta.xml b/source/classes/DatabaseLayerTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DatabaseLayerTest.cls-meta.xml rename to source/classes/DatabaseLayerTest.cls-meta.xml diff --git a/force-app/main/default/classes/DatabaseLayerTestUtils.cls b/source/classes/DatabaseLayerTestUtils.cls similarity index 100% rename from force-app/main/default/classes/DatabaseLayerTestUtils.cls rename to source/classes/DatabaseLayerTestUtils.cls diff --git a/force-app/main/default/classes/DatabaseLayerTestUtils.cls-meta.xml b/source/classes/DatabaseLayerTestUtils.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DatabaseLayerTestUtils.cls-meta.xml rename to source/classes/DatabaseLayerTestUtils.cls-meta.xml diff --git a/force-app/main/default/classes/DatabaseLayerUtils.cls b/source/classes/DatabaseLayerUtils.cls similarity index 100% rename from force-app/main/default/classes/DatabaseLayerUtils.cls rename to source/classes/DatabaseLayerUtils.cls diff --git a/force-app/main/default/classes/DatabaseLayerUtils.cls-meta.xml b/source/classes/DatabaseLayerUtils.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DatabaseLayerUtils.cls-meta.xml rename to source/classes/DatabaseLayerUtils.cls-meta.xml diff --git a/force-app/main/default/classes/DatabaseLayerUtilsTest.cls b/source/classes/DatabaseLayerUtilsTest.cls similarity index 100% rename from force-app/main/default/classes/DatabaseLayerUtilsTest.cls rename to source/classes/DatabaseLayerUtilsTest.cls diff --git a/force-app/main/default/classes/DatabaseLayerUtilsTest.cls-meta.xml b/source/classes/DatabaseLayerUtilsTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DatabaseLayerUtilsTest.cls-meta.xml rename to source/classes/DatabaseLayerUtilsTest.cls-meta.xml diff --git a/force-app/main/default/classes/Dml.cls b/source/classes/Dml.cls similarity index 100% rename from force-app/main/default/classes/Dml.cls rename to source/classes/Dml.cls diff --git a/force-app/main/default/classes/Dml.cls-meta.xml b/source/classes/Dml.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/Dml.cls-meta.xml rename to source/classes/Dml.cls-meta.xml diff --git a/force-app/main/default/classes/DmlTest.cls b/source/classes/DmlTest.cls similarity index 100% rename from force-app/main/default/classes/DmlTest.cls rename to source/classes/DmlTest.cls diff --git a/force-app/main/default/classes/DmlTest.cls-meta.xml b/source/classes/DmlTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/DmlTest.cls-meta.xml rename to source/classes/DmlTest.cls-meta.xml diff --git a/force-app/main/default/classes/MockDml.cls b/source/classes/MockDml.cls similarity index 100% rename from force-app/main/default/classes/MockDml.cls rename to source/classes/MockDml.cls diff --git a/force-app/main/default/classes/MockDml.cls-meta.xml b/source/classes/MockDml.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockDml.cls-meta.xml rename to source/classes/MockDml.cls-meta.xml diff --git a/force-app/main/default/classes/MockDmlTest.cls b/source/classes/MockDmlTest.cls similarity index 100% rename from force-app/main/default/classes/MockDmlTest.cls rename to source/classes/MockDmlTest.cls diff --git a/force-app/main/default/classes/MockDmlTest.cls-meta.xml b/source/classes/MockDmlTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockDmlTest.cls-meta.xml rename to source/classes/MockDmlTest.cls-meta.xml diff --git a/force-app/main/default/classes/MockRecord.cls b/source/classes/MockRecord.cls similarity index 100% rename from force-app/main/default/classes/MockRecord.cls rename to source/classes/MockRecord.cls diff --git a/force-app/main/default/classes/MockRecord.cls-meta.xml b/source/classes/MockRecord.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockRecord.cls-meta.xml rename to source/classes/MockRecord.cls-meta.xml diff --git a/force-app/main/default/classes/MockRecordTest.cls b/source/classes/MockRecordTest.cls similarity index 100% rename from force-app/main/default/classes/MockRecordTest.cls rename to source/classes/MockRecordTest.cls diff --git a/force-app/main/default/classes/MockRecordTest.cls-meta.xml b/source/classes/MockRecordTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockRecordTest.cls-meta.xml rename to source/classes/MockRecordTest.cls-meta.xml diff --git a/force-app/main/default/classes/MockSoql.cls b/source/classes/MockSoql.cls similarity index 100% rename from force-app/main/default/classes/MockSoql.cls rename to source/classes/MockSoql.cls diff --git a/force-app/main/default/classes/MockSoql.cls-meta.xml b/source/classes/MockSoql.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockSoql.cls-meta.xml rename to source/classes/MockSoql.cls-meta.xml diff --git a/force-app/main/default/classes/MockSoqlTest.cls b/source/classes/MockSoqlTest.cls similarity index 100% rename from force-app/main/default/classes/MockSoqlTest.cls rename to source/classes/MockSoqlTest.cls diff --git a/force-app/main/default/classes/MockSoqlTest.cls-meta.xml b/source/classes/MockSoqlTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/MockSoqlTest.cls-meta.xml rename to source/classes/MockSoqlTest.cls-meta.xml diff --git a/force-app/main/default/classes/Soql.cls b/source/classes/Soql.cls similarity index 100% rename from force-app/main/default/classes/Soql.cls rename to source/classes/Soql.cls diff --git a/force-app/main/default/classes/Soql.cls-meta.xml b/source/classes/Soql.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/Soql.cls-meta.xml rename to source/classes/Soql.cls-meta.xml diff --git a/force-app/main/default/classes/SoqlTest.cls b/source/classes/SoqlTest.cls similarity index 100% rename from force-app/main/default/classes/SoqlTest.cls rename to source/classes/SoqlTest.cls diff --git a/force-app/main/default/classes/SoqlTest.cls-meta.xml b/source/classes/SoqlTest.cls-meta.xml similarity index 100% rename from force-app/main/default/classes/SoqlTest.cls-meta.xml rename to source/classes/SoqlTest.cls-meta.xml diff --git a/force-app/main/default/layouts/DatabaseLayerSetting__mdt-Database Layer Setting Layout.layout-meta.xml b/source/layouts/DatabaseLayerSetting__mdt-Database Layer Setting Layout.layout-meta.xml similarity index 100% rename from force-app/main/default/layouts/DatabaseLayerSetting__mdt-Database Layer Setting Layout.layout-meta.xml rename to source/layouts/DatabaseLayerSetting__mdt-Database Layer Setting Layout.layout-meta.xml diff --git a/force-app/main/default/objects/DatabaseLayerSetting__mdt/DatabaseLayerSetting__mdt.object-meta.xml b/source/objects/DatabaseLayerSetting__mdt/DatabaseLayerSetting__mdt.object-meta.xml similarity index 100% rename from force-app/main/default/objects/DatabaseLayerSetting__mdt/DatabaseLayerSetting__mdt.object-meta.xml rename to source/objects/DatabaseLayerSetting__mdt/DatabaseLayerSetting__mdt.object-meta.xml diff --git a/force-app/main/default/objects/DatabaseLayerSetting__mdt/fields/DmlPreAndPostProcessor__c.field-meta.xml b/source/objects/DatabaseLayerSetting__mdt/fields/DmlPreAndPostProcessor__c.field-meta.xml similarity index 100% rename from force-app/main/default/objects/DatabaseLayerSetting__mdt/fields/DmlPreAndPostProcessor__c.field-meta.xml rename to source/objects/DatabaseLayerSetting__mdt/fields/DmlPreAndPostProcessor__c.field-meta.xml diff --git a/force-app/main/default/objects/DatabaseLayerSetting__mdt/fields/SoqlPreAndPostProcessor__c.field-meta.xml b/source/objects/DatabaseLayerSetting__mdt/fields/SoqlPreAndPostProcessor__c.field-meta.xml similarity index 100% rename from force-app/main/default/objects/DatabaseLayerSetting__mdt/fields/SoqlPreAndPostProcessor__c.field-meta.xml rename to source/objects/DatabaseLayerSetting__mdt/fields/SoqlPreAndPostProcessor__c.field-meta.xml diff --git a/force-app/main/default/objects/DatabaseLayerSetting__mdt/validationRules/EnforceSingleRecord.validationRule-meta.xml b/source/objects/DatabaseLayerSetting__mdt/validationRules/EnforceSingleRecord.validationRule-meta.xml similarity index 100% rename from force-app/main/default/objects/DatabaseLayerSetting__mdt/validationRules/EnforceSingleRecord.validationRule-meta.xml rename to source/objects/DatabaseLayerSetting__mdt/validationRules/EnforceSingleRecord.validationRule-meta.xml From 0b5c093e91db5a3b6e3b9a381f0216100606fc01 Mon Sep 17 00:00:00 2001 From: Jason Siders <41714875+jasonsiders@users.noreply.github.com> Date: Wed, 6 Aug 2025 13:53:11 -0500 Subject: [PATCH 2/3] claude shouldn't review draft PRs --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ca1b33b..8707293f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,7 @@ permissions: jobs: claude-review: name: Claude Code Review + if: ${{ '! github.event.pull_request.draft' }} runs-on: ubuntu-latest permissions: contents: read From 7869848649ef9e8799543043a9e8ad66eb64c248 Mon Sep 17 00:00:00 2001 From: Jason Siders <41714875+jasonsiders@users.noreply.github.com> Date: Wed, 6 Aug 2025 13:53:33 -0500 Subject: [PATCH 3/3] consistency - release.yml formatting --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fb2f4580..4949663e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,7 +5,7 @@ on: branches: - main paths: - - source + - "source/**" workflow_dispatch: inputs: version: