Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2600 commits
Select commit Hold shift + click to select a range
b24b1dc
Use set for $GAAPTop10 in DQC_0226 rules
campbellpryde Mar 17, 2026
d4a0048
Handle missing DEI namespace in DQC_0207
campbellpryde Mar 23, 2026
4fee2c9
Exclude AwardTypeAxis from DQC_0166 checks
campbellpryde Mar 23, 2026
fdad6d0
Update effective dates CSVs
campbellpryde Mar 23, 2026
2aebeef
Update effective dates CSVs
campbellpryde Mar 23, 2026
01c1915
Update status $status and rule removals - dqc_0209, dqc_0218
davidtauriello Mar 18, 2026
4fdefae
Update from CP DQC v29
davidtauriello Mar 24, 2026
16be286
Recompile ruleset .zip files
davidtauriello Mar 24, 2026
7db7e6e
Update for v29 approved (#980)
davidtauriello Mar 24, 2026
d73a4ac
Fix conflicts for merge (empty commit)
davidtauriello Mar 24, 2026
77ab7e7
Updated taxonomy files
campbellpryde Mar 25, 2026
a448a20
Update US GAAP 2026 taxonomy .json
davidtauriello Mar 25, 2026
b92f3a6
Merge branch 'v29' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello Mar 25, 2026
dc02e16
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Mar 25, 2026
62fad95
Updated taxonomy files
campbellpryde Mar 25, 2026
52dc6f2
Update rulesetMap.json
davidtauriello Mar 24, 2026
33f6dcd
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Mar 25, 2026
0e1da05
Merge branch 'v29' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello Mar 25, 2026
5fbd803
Docs: fix links/formatting and update rule sources
davidtauriello Mar 25, 2026
f328131
Update copyright
davidtauriello Mar 25, 2026
b1adbe9
DQC_0195: refine treasury stock and total checks to fix NONE issue
campbellpryde Mar 31, 2026
87698c2
Update DQC US V29 ruleset ZIPs
campbellpryde Mar 31, 2026
bf33453
DQC_0195: refine treasury stock and total checks to fix NONE issue
campbellpryde Mar 31, 2026
d0b5115
Update DQC_0195 treasury logic
davidtauriello Mar 31, 2026
cb9ae3e
Update .travis.yml
davidtauriello Apr 1, 2026
2e0359f
Recompile ruleset .zip files
davidtauriello Apr 1, 2026
d962139
Update .travis.yml
davidtauriello Apr 1, 2026
484b155
Update for v29 Approved (#983)
davidtauriello Apr 1, 2026
cb980ce
Update .travis.yml
davidtauriello Apr 1, 2026
672082d
Update .travis.yml
davidtauriello Apr 1, 2026
dc74ad1
Merge branch 'master' into v29
davidtauriello Apr 1, 2026
03445e9
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Apr 1, 2026
8d8dd60
Recompile v29.0.1 to update version number
davidtauriello Apr 1, 2026
079930d
Recompile v29.0.1 to update version number
davidtauriello Apr 1, 2026
67eca81
Add PrepaidExpenseAndOtherAssetsNoncurrent to set
campbellpryde Apr 14, 2026
21a3e94
Add PrepaidExpenseAndOtherAssetsNoncurrent to set
campbellpryde Apr 14, 2026
dd8678e
Added 2026 taxonomy
campbellpryde Apr 14, 2026
592bd9e
Disable conflicting NotesAndLoansReceivable mapping
campbellpryde Apr 14, 2026
a5bd894
Disable conflicting NotesAndLoansReceivable mapping
campbellpryde Apr 14, 2026
5ecadce
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Apr 16, 2026
0be42b7
Merge branch 'v29' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello Apr 16, 2026
59db7e2
Update from CP v29 approved
davidtauriello Apr 16, 2026
ee2e728
Update for v29 Approved (#986)
davidtauriello Apr 16, 2026
1a161f2
Recompile ruleset .zip files
davidtauriello Apr 16, 2026
1c352e2
Update to fix casing on version
davidtauriello Apr 16, 2026
6466c6d
Update non-neg test case for UGT 2026
davidtauriello Apr 17, 2026
8e7dcef
Update test case materials from 2023 to 2025
davidtauriello Apr 20, 2026
26e52f6
Update description for SEC ECD taxonomy flags
davidtauriello Apr 21, 2026
2017e78
Add testcase-tools fixtures and update Travis matrix
davidtauriello Apr 24, 2026
617a336
Update 2023 roll 2025 instances, taxonomies and rule validation logs
davidtauriello Apr 24, 2026
4af8cf5
Update 2024 roll 2025 instances, taxonomies and rule validation logs
davidtauriello Apr 27, 2026
d08ad7a
Update .travis.yml to refactor roll forward unit tests
davidtauriello Apr 27, 2026
d29071b
Update .travis.yml
davidtauriello Apr 27, 2026
b6c76a6
Add test fixtures and update .travis.yml for coverage
davidtauriello Apr 28, 2026
9ad9256
Prune .travis.yml
davidtauriello Apr 28, 2026
1b3378a
Add DQC rules 0236–0243 and update 0234
campbellpryde Apr 30, 2026
2887699
Ignore DocumentTransitionReport in DQC_IFRS_0006
campbellpryde Apr 30, 2026
07213fd
Add per-share tolerance to DQC_IFRS_0130
campbellpryde Apr 30, 2026
3cede5f
Include PaymentsToAcquireProductiveAssets in DQC_0163
campbellpryde Apr 30, 2026
820af9a
Update from CP for v30 public review - rule forms and partial code
davidtauriello Apr 30, 2026
f3f0aa0
Add ESEF IFRS 2025 DQC rules
davidtauriello Apr 30, 2026
6f12ebb
Bump DQC resource URLs to v30
davidtauriello Apr 30, 2026
ff05ecf
Recompile ruleset .zip files v29 > v30 without new v30 checks
davidtauriello Apr 30, 2026
ba60ed4
Add rule submission forms (expected as public review v30)
davidtauriello Apr 30, 2026
992c278
Update for v30 public review
davidtauriello Apr 30, 2026
92d737b
Recompile ruleset .zip files (partial v30 checks)
davidtauriello Apr 30, 2026
e31f2e7
Update .travis.yml
davidtauriello Apr 30, 2026
54bf3e7
Update .travis.yml test matrix
davidtauriello Apr 30, 2026
9c4dd95
Update .travis.yml
davidtauriello May 1, 2026
67c969c
Update .travis.yml
davidtauriello May 1, 2026
15742ba
Update .travis.yml
davidtauriello May 1, 2026
7e7504a
Adjust dqc_0006, dqc_0130, dqc_0163 and dqc_0198
davidtauriello May 1, 2026
91ed23e
Recompile ruleset .zip files
davidtauriello May 1, 2026
31783a2
Update .travis.yml
davidtauriello May 1, 2026
71489be
fix conflicts for merge (empty commit)
davidtauriello May 1, 2026
dfd4820
Merge branch 'dt-v29' into v29
davidtauriello May 1, 2026
ea9b1ca
Update .travis.yml
davidtauriello May 1, 2026
f1a8c32
Fix conflicts for merge
davidtauriello May 1, 2026
bb8aac3
Update .travis.yml
davidtauriello May 2, 2026
3bda75f
Update description for SEC ECD taxonomy flags
davidtauriello Apr 21, 2026
0192537
Add DQC_0238 rule for segment axis
campbellpryde May 5, 2026
f014a2c
Add DQC_0239 rules for 2022-2026
campbellpryde May 5, 2026
75a36c5
Add DQC_0241 rule for US 2022-2026
campbellpryde May 5, 2026
7118955
Add missed 238
campbellpryde May 5, 2026
c33abfe
Add DQC_0242 rule for 2022–2026
campbellpryde May 5, 2026
e1a6ac0
Add DQC_0236 for 2024/2025; update 2026
campbellpryde May 5, 2026
7b5f134
Add DQC_0243 xule rules for 2025/2026
campbellpryde May 5, 2026
9e65386
Expand FDII and GILTI label matching in DQC_0154
campbellpryde May 5, 2026
098f59a
Update DQC_0233.xule
campbellpryde May 5, 2026
8eadf99
Update DQC_0234 rules for V30 release
campbellpryde May 5, 2026
9771620
Update DQC_0235.xule
campbellpryde May 5, 2026
785a679
Create DQC_0237.xule
campbellpryde May 5, 2026
218093b
Update IFRS 2022 version.xule to 30.0.0RC1
campbellpryde May 5, 2026
4f20575
Use xule-3.12 virtualenv in VSCode tasks
campbellpryde May 5, 2026
0e8559b
Add IFRS 2022 functions.xule library
campbellpryde May 5, 2026
92c63e5
Bump rule version to 30.0.0RC1
campbellpryde May 5, 2026
095b803
Add IFRS V28 rulesets; update US rulesets
campbellpryde May 5, 2026
70b85cb
Create DQC_0240.xule
campbellpryde May 5, 2026
b3430e1
Added 486BPOS
campbellpryde May 5, 2026
a111273
Update from CP v30
davidtauriello May 5, 2026
df5f86c
Recompile ruleset .zip files
davidtauriello May 5, 2026
97bfb92
Update rule submission forms for public exposure v30
davidtauriello May 5, 2026
d14826c
Update rule submission forms for public exposure v30
davidtauriello May 5, 2026
3ffcdaf
Updated rules for Changes from Tuesday meeting
campbellpryde May 8, 2026
cd987d0
Updated TAsks
campbellpryde May 8, 2026
3d4d830
V29 Rule focus update
campbellpryde May 8, 2026
704bbde
V30 rule focus update
campbellpryde May 8, 2026
4b9412d
Compile V30 Rules
campbellpryde May 8, 2026
26f449f
Update XULE rules, focuses, and task rule-sets
davidtauriello May 11, 2026
1b65a84
Recompile ruleset .zip files
davidtauriello May 11, 2026
54a985d
Merge branch 'v30' of https://github.com/davidtauriello/dqc_us_rules …
davidtauriello May 11, 2026
dce4eef
Merge branch 'dt-v30' into v30
davidtauriello May 11, 2026
e0c02da
Merge branch 'dt-v30' into v30
davidtauriello May 11, 2026
7a2c26f
Merge branch 'v30' of https://github.com/campbellpryde/dqc_us_rules i…
davidtauriello May 11, 2026
7451cf0
Merge branch 'v30' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello May 11, 2026
3f24f99
Update .travis.yml
davidtauriello May 11, 2026
2111831
Update .travis.yml from v29.0.3
davidtauriello May 11, 2026
785aa97
Update .travis.yml
davidtauriello May 12, 2026
d0a1f4a
Update .travis.yml
davidtauriello May 12, 2026
6768f38
Update .travis.yml
davidtauriello May 12, 2026
6770f78
Update .travis.yml for v30 test cases
davidtauriello May 13, 2026
0e9bbee
Update .travis.yml test cases
davidtauriello May 20, 2026
b6a0e74
update .travis.yml
davidtauriello May 20, 2026
e9eedbc
update .travis.yml
davidtauriello May 20, 2026
b92d9a6
Update .travis.yml
davidtauriello May 20, 2026
5a6c9c9
Update .travis.yml
davidtauriello May 21, 2026
09fadfe
Update .travis.yml
davidtauriello May 21, 2026
f6a5317
Update .travis.yml and output
davidtauriello May 21, 2026
71f378f
Update .gitignore
davidtauriello May 21, 2026
4d5b49f
Update .travis.yml
davidtauriello May 21, 2026
ac7679f
Update .travis.yml
davidtauriello May 21, 2026
48b95f9
Update .travis.yml
davidtauriello May 21, 2026
5d4b20b
Merge branch 'v30' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello May 26, 2026
9f493b6
Update for v29 Approved (#994)
davidtauriello May 28, 2026
1bd9d1a
Update .travis.yml and test cases
davidtauriello May 29, 2026
dcc4f5c
Updated constant for net worth and changes
campbellpryde Jun 2, 2026
056c296
Update equity trait and tighten consolidation check
campbellpryde Jun 2, 2026
eae33db
Use SingleReportableSegmentMember in DQC_0238
campbellpryde Jun 2, 2026
6aa41cf
DQC_0234: fix bad_facts list and message
campbellpryde Jun 2, 2026
60d4a7c
Exclude repurchase excise tax in DQC_0197
campbellpryde Jun 2, 2026
7425a56
DQC_0190: require no master-trust breakdown
campbellpryde Jun 2, 2026
f227dc1
Skip DQC_0159 for small asset/monetary values
campbellpryde Jun 2, 2026
290fd8e
Add DepreciationAndAmortisationExpense concept
campbellpryde Jun 2, 2026
2dd6141
Updated rulesets
campbellpryde Jun 2, 2026
904179c
Update effective dates for 10653-10654
campbellpryde Jun 2, 2026
e9bbb4d
Fixed rule 242
campbellpryde Jun 2, 2026
733a6fb
Remove extra brace in DQC_0243.xule
campbellpryde Jun 2, 2026
134928e
Updated rule forms 0164 an 0183
campbellpryde Jun 8, 2026
7da6c1b
Updated rule 183 for Chenges in 2026 only
campbellpryde Jun 8, 2026
fdcc997
Update dqc-us-2025-V30-ruleset.zip
campbellpryde Jun 8, 2026
299f9bb
New proposed rules
campbellpryde Jun 8, 2026
b670dc0
Update .travis.yml
davidtauriello Jun 9, 2026
0f067e5
Update from CP v30
davidtauriello Jun 9, 2026
accad1a
Added rules for 244, 245
campbellpryde Jun 9, 2026
b724ad5
Updated V30
campbellpryde Jun 9, 2026
cf9f268
Update from CP v30
davidtauriello Jun 9, 2026
e1052f0
Update DQC_0235.md
campbellpryde Jun 9, 2026
05629f3
Recompile ruleset .zip files
davidtauriello Jun 9, 2026
f9279c8
Use DocumentTransitionReport in messages
campbellpryde Jun 10, 2026
b70dbf2
Use DocumentTransitionReport in DQC_0006 messages
campbellpryde Jun 10, 2026
1b2d40e
Allow revenue match ignoring ProductOrServiceAxis
campbellpryde Jun 10, 2026
0d3226b
Exclude capex items from cashflow items
campbellpryde Jun 10, 2026
92ede80
Update DQC_0245.xule
campbellpryde Jun 10, 2026
0382915
Update DQC ruleset zip files
campbellpryde Jun 10, 2026
d16b7c0
Update from CP v30
davidtauriello Jun 15, 2026
25d722c
Recompile ruleset .zip files
davidtauriello Jun 15, 2026
1596b4c
Updated 243 to reverse out CF items that are actually an error.
campbellpryde Jun 16, 2026
d91c32a
Fixed typos in 190 error messages
campbellpryde Jun 16, 2026
f8700cd
Merge branch 'v30' of https://github.com/campbellpryde/dqc_us_rules i…
davidtauriello Jun 22, 2026
d6cfb73
Update for v29 Approved (#996)
davidtauriello Jun 22, 2026
52c757a
Fix conflicts for merge (empty commit)
davidtauriello Jun 22, 2026
d80d32f
Update documentation for 0163
campbellpryde Jun 23, 2026
9eca408
Recompile ruleset .zip files
davidtauriello Jun 24, 2026
52c5630
Update .travis.yml and test cases as needed
davidtauriello Jun 24, 2026
8f6e82f
Update documentation for v30 approved
davidtauriello Jun 24, 2026
54a07dd
Update .travis.yml and v30 unit tests
davidtauriello Jun 24, 2026
27b9b6c
Update .travis.yml and v30 unit tests
davidtauriello Jun 24, 2026
96eee45
Add GitHub Actions workflow for manual SEC report validation
davidtauriello Jun 28, 2026
f100cb6
Update for v30
davidtauriello Jun 30, 2026
683510e
Merge branch 'v30' of https://github.com/campbellpryde/dqc_us_rules i…
davidtauriello Jun 30, 2026
7dc00f9
Update for v29 Approved (#998)
davidtauriello Jun 30, 2026
80d0a33
Fix conflicts for merge (empty commit)
davidtauriello Jun 30, 2026
8609b13
Update v30 for DQC approved
davidtauriello Jun 30, 2026
99368a1
Recompile ruleset .zip files
davidtauriello Jun 30, 2026
0b1892b
Update dqc_0170 documentation
davidtauriello Jun 30, 2026
a8f3682
Update for v30 approved (#1000)
davidtauriello Jun 30, 2026
321ca0d
Update .travis.yml
davidtauriello Jun 30, 2026
10a5570
Update .travis.yml
davidtauriello Jun 30, 2026
a6361e6
Update .gitattributes
davidtauriello Jun 30, 2026
f39f58e
Fix conflicts for merge (empty commit)
davidtauriello Jun 30, 2026
bf77481
Recompile ruleset .zip files
davidtauriello Jun 30, 2026
3861ebb
Recompile ruleset .zip files
davidtauriello Jun 30, 2026
8f97dbc
Recompile ruleset .zip files
davidtauriello Jun 30, 2026
7b7c213
Merge branch 'v30' of https://github.com/DataQualityCommittee/dqc_us_…
davidtauriello Jun 30, 2026
6e387b3
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Jun 30, 2026
2c0c691
Containerize validation and test config
davidtauriello Jul 1, 2026
65638b1
Containerize validation and test config
davidtauriello Jul 1, 2026
5e0c285
Update .travis.yml
davidtauriello Jul 1, 2026
0f83f8c
Update .travis.yml
davidtauriello Jul 1, 2026
13b7ddf
Sync secvalidationtests.json with .travis.yml matrix
github-actions[bot] Jul 1, 2026
cf8c324
Update rulesetMap.json
davidtauriello Jul 2, 2026
c19cab1
Update rulesetMap.json
davidtauriello Jul 2, 2026
fb01faa
Update DQC_0015_ListOfElements.xlsx
davidtauriello Jul 10, 2026
b3d1428
Update DQC_0015_ListOfElements.xlsx
davidtauriello Jul 10, 2026
3e592f6
Added PaymentsForRestructuring to rule 243
campbellpryde Jul 21, 2026
63df7ab
Updated for BDC filings
campbellpryde Jul 21, 2026
fa6fd2e
Fixed ncti on rule 154
campbellpryde Aug 2, 2026
e8d62bd
Fixed rule 0159
campbellpryde Aug 2, 2026
799c279
Fixed XULE error in rule 243
campbellpryde Aug 2, 2026
684a05a
Fixed broken rule 027 fonly applies to 2026 taxonomy
campbellpryde Aug 2, 2026
1bec439
Updated 227 to not test QTD values
campbellpryde Aug 3, 2026
bf82485
Inappropriate rule 241 in 2025 and 2024 taxonomies
campbellpryde Aug 5, 2026
6d98947
Merge branch 'master' of https://github.com/DataQualityCommittee/dqc_…
davidtauriello Aug 5, 2026
7036a56
Update from CP v30 for approved
davidtauriello Aug 5, 2026
fee0034
Recompile ruleset .zip
davidtauriello Aug 5, 2026
76edfa9
Merge branch 'master' of https://github.com/davidtauriello/dqc_us_rules
davidtauriello Aug 5, 2026
3afc1d1
Update .travis.yml
davidtauriello Aug 5, 2026
3e475e7
Merge branch 'v30' into v30
davidtauriello Aug 5, 2026
17b413f
Update for v30 Approved (#1002)
davidtauriello Aug 5, 2026
1350713
Update buildcontainer.yml
davidtauriello Aug 5, 2026
28db40e
Update buildcontainer.yml
davidtauriello Aug 5, 2026
55ff600
Remove US rules from ESEF 2025
davidtauriello Aug 5, 2026
abe2511
Add workflow to compile DQC rulesets
davidtauriello Aug 5, 2026
3be2c66
Remove US rules from ESEF 2025
davidtauriello Aug 5, 2026
2565ed7
Recompile ruleset .zip files
github-actions[bot] Aug 5, 2026
902d1cc
Update for removed ESEF rules (2025)
davidtauriello Aug 5, 2026
1a6cabd
Introduce compile-ruleset action and prebuilt env option
davidtauriello Aug 6, 2026
9a94923
Introduce compile-ruleset action and prebuilt env option
davidtauriello Aug 6, 2026
45fc930
Add compile-and-validate GitHub Actions workflow
davidtauriello Aug 7, 2026
15f5813
Add compile-and-validate GitHub Actions workflow
davidtauriello Aug 7, 2026
304b661
Update secvalidationtests.json
davidtauriello Aug 7, 2026
7fa76b8
Split validation into prebuilt and fresh jobs
davidtauriello Aug 7, 2026
896762b
Update workflows and synctest script
davidtauriello Aug 7, 2026
02fe8f0
Recompile ruleset .zip files
github-actions[bot] Aug 7, 2026
c3b7655
Update workflows and synctest script
davidtauriello Aug 7, 2026
8d66215
Update commit message for workflow and version
davidtauriello Aug 7, 2026
1aa9b73
Update commit message for workflow and version
davidtauriello Aug 7, 2026
e7e4706
Update defaults for buildcontainer and compileandvalidate workflows
davidtauriello Aug 9, 2026
926b7be
Recompile and test ruleset .zip files v30.0.1
github-actions[bot] Aug 9, 2026
0889a0d
Updated 228 for prepaid examples
campbellpryde Aug 9, 2026
8a3c145
Update from DQC v30
davidtauriello Aug 10, 2026
f973a7f
Update from DQC master at v30.0.2
davidtauriello Aug 10, 2026
59101e8
Update from CP v30
davidtauriello Aug 10, 2026
7e834e2
Update version.xule and testing workflow
davidtauriello Aug 10, 2026
b365516
Recompile and test ruleset .zip files v30.0.2
github-actions[bot] Aug 10, 2026
1eb42bf
Update workflows for prod
davidtauriello Aug 10, 2026
2b67148
Update workflows for prod
davidtauriello Aug 10, 2026
23479a0
Update Dockerfile defaults
github-actions[bot] Aug 10, 2026
5c09d20
Fix conflicts for merge
davidtauriello Aug 10, 2026
f8352bc
Merge branch 'dt-dqcv30' into v30
davidtauriello Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/actions/compile-ruleset/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Compile ruleset
description: Compiles a XULE ruleset, verifies it, and uploads it as a workflow artifact.

inputs:
source_path:
description: Path to the XULE source directory to compile
required: true
zip_name:
description: Output ruleset zip filename
required: true

runs:
using: composite
steps:
- name: Compile XULE ruleset
shell: bash
run: |
python -m arelle.CntlrCmdLine \
--plugins xule \
--xule-compile ${{ inputs.source_path }} \
--xule-rule-set ./dqc_us_rules/${{ inputs.zip_name }} \
--xule-crash

- name: Verify output
shell: bash
run: |
ls -lh ./dqc_us_rules/${{ inputs.zip_name }}
python3 -c "
import zipfile
with zipfile.ZipFile('./dqc_us_rules/${{ inputs.zip_name }}') as z:
print(f'Ruleset contains {len(z.namelist())} files')
for name in sorted(z.namelist())[:10]:
print(f' {name}')
if len(z.namelist()) > 10:
print(f' ... and {len(z.namelist()) - 10} more')
"

- name: Upload ruleset artifact
uses: actions/upload-artifact@v4
with:
name: "${{ inputs.zip_name }}"
path: "./dqc_us_rules/${{ inputs.zip_name }}"
retention-days: 90
91 changes: 81 additions & 10 deletions .github/workflows/buildcontainer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,33 @@ name: Build Validation Container

on:
workflow_dispatch:
inputs:
arelle_version:
description: 'Arelle-release pip version ("latest" for the newest release or other supported version)'
required: true
default: '2.44.0'
type: choice
options:
- latest
- '2.44.0'
- '2.37.58'
xule_version:
description: 'Xule plugin branch/tag (avoid "/" — it is used verbatim in the published image tag)'
required: true
default: '30052.1'
type: string
edgar_version:
description: 'EDGAR transform plugin branch/tag (from Arelle/EDGAR repo)'
required: true
default: '26.1.3'
type: string

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/validation
XULE_REPO: xbrlus

permissions:
contents: read
contents: write
packages: write

jobs:
Expand All @@ -18,30 +38,81 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set lowercase image name
run: echo "IMAGE_NAME=$(echo '${{ github.repository }}/validation' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_ENV"

- name: Detect Python version from Dockerfile
id: pyver
run: |
PY_VERSION=$(grep -oP '(?<=FROM python:)[^\s-]+' Dockerfile)
echo "python_version=$PY_VERSION" >> "$GITHUB_OUTPUT"

- name: Print summary
env:
PY_VERSION: ${{ steps.pyver.outputs.python_version }}
run: |
{
echo "### Build Validation Container"
echo ""
echo "| Component | Version |"
echo "|-----------|---------|"
echo "| **Python** | \`${PY_VERSION}\` |"
echo "| **Arelle** | \`${{ inputs.arelle_version }}\` |"
echo "| **Xule** | \`${{ inputs.xule_version }}\` |"
echo "| **EDGAR** | \`${{ inputs.edgar_version }}\` |"
echo ""
echo "**Image:** \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:arelle-${{ inputs.arelle_version }}-xule-${{ inputs.xule_version }}-edgar-${{ inputs.edgar_version }}\`"
echo ""
echo "**Repository:** \`${{ github.repository }}\` | **Triggered by:** \`${{ github.actor }}\`"
} >> "$GITHUB_STEP_SUMMARY"

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Build and push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
push: true
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:arelle-${{ inputs.arelle_version }}-xule-${{ inputs.xule_version }}-edgar-${{ inputs.edgar_version }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
XULE_VERSION=30050
XULE_REPO=xbrlus
TRANSFORM_VERSION=25.1
ARELLE_VERSION=2.37.58
XULE_VERSION=${{ inputs.xule_version }}
XULE_REPO=${{ env.XULE_REPO }}
TRANSFORM_VERSION=${{ inputs.edgar_version }}
ARELLE_VERSION=${{ inputs.arelle_version }}

- name: Update Dockerfile defaults and commit
env:
PY_VERSION: ${{ steps.pyver.outputs.python_version }}
run: |
sed -i "s/^ARG ARELLE_VERSION=.*/ARG ARELLE_VERSION=${{ inputs.arelle_version }}/" Dockerfile
sed -i "s/^ARG XULE_VERSION=.*/ARG XULE_VERSION=${{ inputs.xule_version }}/" Dockerfile
sed -i "s/^ARG TRANSFORM_VERSION=.*/ARG TRANSFORM_VERSION=${{ inputs.edgar_version }}/" Dockerfile
if git diff --quiet Dockerfile; then
echo "Dockerfile already up to date — no commit needed."
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Dockerfile
git commit -m "$(cat <<EOF
Update Dockerfile defaults

Python ${PY_VERSION} || Arelle ${{ inputs.arelle_version }} || XULE ${{ inputs.xule_version }} || EDGAR ${{ inputs.edgar_version }}
EOF
)"
git push
Loading