Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
225 commits
Select commit Hold shift + click to select a range
acbf12f
Added the getting started with XRISM Xtend notebook, currently just t…
DavidT3 Nov 19, 2025
09d7488
Started adding things to the global configuration section of the gett…
DavidT3 Nov 19, 2025
4228566
Added name of possible target to xrism xtend getting started notebook…
DavidT3 Nov 20, 2025
cf3d81b
Started writing the text of the XRISM-Xtend tutorial, including a bri…
DavidT3 Nov 24, 2025
df7bb37
Added the beginnings of the wrapper for XTEND processing, as well as …
DavidT3 Nov 24, 2025
3dcd9e3
Added explanation of the supporting files required by xtdpipeline to …
DavidT3 Nov 24, 2025
9e47c43
Filled out the process_xrism_xtend docstring and its call to hsp.xten…
DavidT3 Nov 24, 2025
721de54
Built the list of arguments that process_xrism_xtend needs in the get…
DavidT3 Nov 24, 2025
749378f
Made some changes to the process_xrism_xtend function, as xtdpipeline…
DavidT3 Nov 24, 2025
2d33eea
Added discussion of the mapping between XRISM-Xtend channel and energ…
DavidT3 Nov 25, 2025
9ddfa90
Added more explanation of why a mapping between channel and energy is…
DavidT3 Nov 25, 2025
32e7de8
Added the beginnings of a wrapper for extractor to generate XRISM-Xte…
DavidT3 Nov 25, 2025
f11f5d3
Added bits and bobs to the getting-started-xrism-xtend.md notebook to…
DavidT3 Nov 25, 2025
ad722e4
Added an image binning factor subsection to the getting-started-xrism…
DavidT3 Nov 25, 2025
7c1d263
Added first go at a wrapper function for XRISM Xtend exposure map gen…
DavidT3 Nov 25, 2025
0490c22
Think I've worked out the kinks in the 'gen_xrism_xtend_expmap' funct…
DavidT3 Nov 25, 2025
642d9f9
Added the code that calls the exposure map wrapper function to the ge…
DavidT3 Nov 25, 2025
d023d3d
Added first pass at a wrapper function for XRISM light curve generati…
DavidT3 Nov 25, 2025
424e82c
Added the code cells to call the new light curve generating wrapper f…
DavidT3 Nov 25, 2025
a54cce0
Allow a 'lc_bin_thresh' argument to be passed to gen_xrism_xtend_ligh…
DavidT3 Nov 25, 2025
6bd7885
Shifted the skeleton of the light curve generation subsection to the …
DavidT3 Nov 26, 2025
1f7256e
Added some commentary on setting up source extraction regions to the …
DavidT3 Nov 26, 2025
913409d
Added code cell that should write the RA-DEC version of the source re…
DavidT3 Nov 26, 2025
feb66b7
The getting-started-xrism-xtend.md notebooks now successfully generat…
DavidT3 Nov 26, 2025
7fc8349
Added source and background region support to the 'gen_xrism_xtend_li…
DavidT3 Nov 26, 2025
e82c74d
Added xcolf and ycolf arguments to the extractor call to generate ima…
DavidT3 Nov 26, 2025
a76f22e
Regions should now be included and properly handled in the getting-st…
DavidT3 Nov 26, 2025
aee45ae
Added first pass at a function to generate XRISM Xtend spectra to the…
DavidT3 Nov 26, 2025
b43c00c
Started to add spec generation and grouping sections and code to the …
DavidT3 Nov 26, 2025
bef26f0
Added a subsection to the part of getting-started-xrism-xtend.md that…
DavidT3 Nov 26, 2025
a74bc51
Added first pass at the wrapper function to generate RMFs for XRISM X…
DavidT3 Nov 26, 2025
d071486
Getting ARF generation closer to being functional in the getting-star…
DavidT3 Dec 1, 2025
e2c0ab3
Missed passing the RMF file to the xaarfgen call in the wrapper funct…
DavidT3 Dec 1, 2025
f730542
Had to pass RA-Dec region file to the arf generation tool for XRISM-X…
DavidT3 Dec 1, 2025
a2bf80e
Had to add a temporary manually-defined link to a caldb file in the w…
DavidT3 Dec 1, 2025
8c3b0d4
Removed the demonstration of generating spectra within a certain ener…
DavidT3 Dec 2, 2025
d67ce11
Have to include '__row' in the columns we manually specify should be …
DavidT3 Dec 2, 2025
83a911c
Hadn't passed 'radec_src_reg_path' to the gen_xrism_xtend_arf functio…
DavidT3 Dec 2, 2025
7ae0e4b
Updated the 'gen_xrism_xtend_image' wrapper function in getting-start…
DavidT3 Dec 3, 2025
14725b0
Altered the 'gen_xrism_xtend_expmap' function (in getting-started-xri…
DavidT3 Dec 3, 2025
46cba22
Altered the time_bin_size gen_xrism_xtend_lightcurve function to not …
DavidT3 Dec 3, 2025
875dc77
Moved the xspec import down the notebook
DavidT3 Dec 3, 2025
d9acfc5
Fixed an issue with an incorrect dataclass being passed to RMF genera…
DavidT3 Dec 4, 2025
da24bb4
Explicitly defined the name of the table in the event list that conta…
DavidT3 Dec 5, 2025
bef4242
Moved the definition of most output path template variables to the 'C…
DavidT3 Dec 5, 2025
24802d6
Replaced the im_out definition in gen_xrism_xtend_image with somethin…
DavidT3 Dec 5, 2025
569316c
Replaced the ex_out and binned_ex_out definitions in gen_xrism_xtend_…
DavidT3 Dec 5, 2025
c7c749c
Altered the light curve and spectrum generation wrapper functions in …
DavidT3 Dec 5, 2025
4565f93
Updated the gen_xrism_xtend_rmf wrapper function so that it doesn't r…
DavidT3 Dec 5, 2025
89c8fa2
Polished the gen_xrism_xtend_arf wrapper function a little, making su…
DavidT3 Dec 5, 2025
cfdaab6
Added much commentary to the exposure map generation section of the g…
DavidT3 Dec 5, 2025
ec8fef6
Spent an inordinate amount of time adding a subsection on the calibra…
DavidT3 Dec 5, 2025
eea0035
Altered where in the getting-started-xrism-xtend.md notebook the RA-D…
DavidT3 Dec 5, 2025
07f6b85
Added commentary to the part of the getting-started-xrism-xtend.md no…
DavidT3 Dec 5, 2025
b8b0c14
The meta data of the functions cell in getting-started-xrism-xtend.md…
DavidT3 Dec 5, 2025
65b18da
Commented out the xspec and arfgen portions, and did a horrible bodge…
DavidT3 Dec 5, 2025
c3c5035
Specifically selected two out of three observations in the getting-st…
DavidT3 Dec 5, 2025
9eff2c0
Merge branch 'main' into notebook/newGettingStartedXRISMXtend
DavidT3 Dec 5, 2025
352b696
Increased the time out of notebook execution in the sphinx configurat…
DavidT3 Dec 5, 2025
44e5cab
Merge remote-tracking branch 'origin/notebook/newGettingStartedXRISMX…
DavidT3 Dec 5, 2025
bd90220
Added something that should print xtdpipeline outputs for any observa…
DavidT3 Dec 8, 2025
797d323
Fixed some small bugs with xtdpipeline error printing, and the readin…
DavidT3 Dec 8, 2025
dd5dd0d
Made some changes to the getting-started-xrism-xtend.md notebook wher…
Dec 8, 2025
edf600f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 8, 2025
86ae11c
Made sure all the coordinates that go into region files are in the IC…
DavidT3 Dec 8, 2025
d8736f8
Increased notebook execution timeout in the CircleCI config.
DavidT3 Dec 8, 2025
94071f5
Removed some extraneous formatting arguments in getting-started-xrism…
DavidT3 Dec 8, 2025
ad059a6
Finished explaining the light curve generation section, also moved it…
DavidT3 Dec 8, 2025
95a2312
Added a HEASoft version check to the getting-started-xrism-xtend.md n…
DavidT3 Dec 10, 2025
adc60db
Added a very short, but top level, section about what do with observa…
DavidT3 Dec 10, 2025
d28880e
Finished the dataclass choice section for now.
DavidT3 Dec 10, 2025
173c851
Added commentary
DavidT3 Dec 10, 2025
d88c511
Have now written commentary on the ARF generation section of the gett…
DavidT3 Dec 10, 2025
5edf936
May have finally finished the writing of the getting-started-xrism-xt…
DavidT3 Dec 11, 2025
cb8de0f
Added a test visualization of a light curve in the getting-started-xr…
DavidT3 Dec 11, 2025
c8785a6
Fixed a typo
DavidT3 Dec 11, 2025
f5678f2
Restricted the getting-started-xrism-xtend.md notebook to only use 00…
DavidT3 Dec 11, 2025
b8cec45
Made sure that XSPEC model fit is plotted on top of spectrum, improve…
DavidT3 Dec 11, 2025
20e5cd6
Added more accurate commentary on the ARF generation, also allow the …
DavidT3 Dec 11, 2025
c0423dd
Absolute idiot that I am, I wasn't passing the net light curve path t…
DavidT3 Dec 11, 2025
8c856ee
Added information on datamodes/classes to the getting-started-xrism-x…
DavidT3 Dec 11, 2025
41e6c85
May possibly have actually finished the writing of getting-started-xr…
DavidT3 Dec 11, 2025
9980d17
Tiny aethsetic change to getting-started-xrism-xtend.md
DavidT3 Dec 11, 2025
1c316cc
Fixed a bug in the filling out of the demo_lc_path variable in gettin…
DavidT3 Dec 11, 2025
298c42d
Pointed the getting-started-xrism-xtend.md notebook to the S3 bucket …
DavidT3 Dec 11, 2025
641bdc3
Temporarily disabling the error on too-low of a HEASoft version in th…
DavidT3 Dec 11, 2025
524899a
Removed a blank line
DavidT3 Dec 11, 2025
cc1ac3c
Made some of the event list and region file paths passed to HEASoft t…
DavidT3 Dec 12, 2025
04ebecf
Tiny wording change, mostly to get CircleCI going again (hopefully th…
DavidT3 Dec 12, 2025
9818017
Replaced a misuse of admonition with seealso, in the getting-started-…
DavidT3 Dec 12, 2025
5f6f024
Some very small typos fixed
DavidT3 Dec 15, 2025
cc8d3ac
First go at the changes to conf.py necessary for issue #153. It shoul…
DavidT3 Dec 15, 2025
bcd464f
The changes to conf.py for issue #153 seem to be working - this commi…
DavidT3 Dec 15, 2025
c6921af
Removed a print statement from conf.py
DavidT3 Dec 15, 2025
7d2aeb2
Made changes to the pr-build-docs job in the config.yml file which co…
DavidT3 Dec 15, 2025
1c8651a
Commented out the XMM CCF and Chandra CalDB cache building steps for …
DavidT3 Dec 15, 2025
2e25fd4
Added a step to the trigger-circleci.yml notebook determines which no…
DavidT3 Dec 15, 2025
9a76174
Commented out the final step of the trigger circleci pipeline workflo…
DavidT3 Dec 15, 2025
0cb6b23
Added a fetch-depth setting to the checkout of the repo, so that a co…
DavidT3 Dec 15, 2025
ae27df8
Tiny change to the text of analyze-rxte-spectra.md, mainly to test th…
DavidT3 Dec 15, 2025
29dcc82
Made a small change to rxte_index.md to see how the changes to the Ci…
DavidT3 Dec 15, 2025
8523a64
Changed the name of a step in the trigger-circleci.yml trigger_circle…
DavidT3 Dec 15, 2025
4508440
The trigger circleci pipeline step of trigger-circleci.yml isn't read…
DavidT3 Dec 15, 2025
5a4a4b4
Now setting up an environment variable from the GitHub outputs variab…
DavidT3 Dec 15, 2025
66973bf
Missed one misuse of the GHA outputs variable syntax, switched it to …
DavidT3 Dec 15, 2025
597e18f
Unimportant change to comment to commit to the PR, in order to see if…
DavidT3 Dec 15, 2025
56c6032
Re-added the part of the trigger_circleci_after_precommit job in trig…
DavidT3 Dec 15, 2025
4e4a5d9
Tried to make sure that the CircleCI workflow defined in the config.y…
DavidT3 Dec 15, 2025
6a52888
Tried to make sure that the CircleCI workflow defined in the config.y…
DavidT3 Dec 15, 2025
01c4f30
Tried to make sure that the CircleCI workflow defined in the config.y…
DavidT3 Dec 15, 2025
4bcdded
Really still not sure what the problem is with passing the notebooks_…
DavidT3 Dec 15, 2025
872a8d0
Really trying to get parameters passed through the API to the pr-buil…
DavidT3 Dec 15, 2025
cffe443
Changed a typo in markdown in pysas-short-intro.md, to make the build…
DavidT3 Dec 15, 2025
e61c8e2
Trying setting the sphinx-specific exclude_patterns variable in conf.…
DavidT3 Dec 15, 2025
3b00c76
Removed a test from conf.py - this should now close issue #153 I think
DavidT3 Dec 16, 2025
d207b22
Restored the CCF and Chandra CalDB downloading sections in config.yml…
DavidT3 Dec 16, 2025
7466413
Merge pull request #154 from HEASARC/infra/specifyNotebooksForTestBuild
DavidT3 Dec 16, 2025
c0e1a49
Restored XMM CCF download step in config.yml
DavidT3 Dec 16, 2025
8d45f7a
Returning nb_execution_timeout to 1200 in conf.py - might alter it ba…
DavidT3 Dec 16, 2025
c20003c
Added the getting started with XRISM Xtend notebook, currently just t…
DavidT3 Nov 19, 2025
3af4be7
Started adding things to the global configuration section of the gett…
DavidT3 Nov 19, 2025
6258c3d
Added name of possible target to xrism xtend getting started notebook…
DavidT3 Nov 20, 2025
9a55730
Started writing the text of the XRISM-Xtend tutorial, including a bri…
DavidT3 Nov 24, 2025
d7d3e02
Added the beginnings of the wrapper for XTEND processing, as well as …
DavidT3 Nov 24, 2025
5d50782
Added explanation of the supporting files required by xtdpipeline to …
DavidT3 Nov 24, 2025
a3ee587
Filled out the process_xrism_xtend docstring and its call to hsp.xten…
DavidT3 Nov 24, 2025
0a8deaa
Built the list of arguments that process_xrism_xtend needs in the get…
DavidT3 Nov 24, 2025
6de752b
Made some changes to the process_xrism_xtend function, as xtdpipeline…
DavidT3 Nov 24, 2025
b33a998
Added discussion of the mapping between XRISM-Xtend channel and energ…
DavidT3 Nov 25, 2025
f27399f
Added more explanation of why a mapping between channel and energy is…
DavidT3 Nov 25, 2025
99c6542
Added the beginnings of a wrapper for extractor to generate XRISM-Xte…
DavidT3 Nov 25, 2025
f364089
Added bits and bobs to the getting-started-xrism-xtend.md notebook to…
DavidT3 Nov 25, 2025
50903ff
Added an image binning factor subsection to the getting-started-xrism…
DavidT3 Nov 25, 2025
3c109f2
Added first go at a wrapper function for XRISM Xtend exposure map gen…
DavidT3 Nov 25, 2025
7cddd2e
Think I've worked out the kinks in the 'gen_xrism_xtend_expmap' funct…
DavidT3 Nov 25, 2025
565f9fd
Added the code that calls the exposure map wrapper function to the ge…
DavidT3 Nov 25, 2025
b9861f1
Added first pass at a wrapper function for XRISM light curve generati…
DavidT3 Nov 25, 2025
0692c5d
Added the code cells to call the new light curve generating wrapper f…
DavidT3 Nov 25, 2025
4e98412
Allow a 'lc_bin_thresh' argument to be passed to gen_xrism_xtend_ligh…
DavidT3 Nov 25, 2025
f2643c1
Shifted the skeleton of the light curve generation subsection to the …
DavidT3 Nov 26, 2025
790e190
Added some commentary on setting up source extraction regions to the …
DavidT3 Nov 26, 2025
36433f2
Added code cell that should write the RA-DEC version of the source re…
DavidT3 Nov 26, 2025
e712d7a
The getting-started-xrism-xtend.md notebooks now successfully generat…
DavidT3 Nov 26, 2025
c9127e4
Added source and background region support to the 'gen_xrism_xtend_li…
DavidT3 Nov 26, 2025
7ad4e43
Added xcolf and ycolf arguments to the extractor call to generate ima…
DavidT3 Nov 26, 2025
3ba4fb4
Regions should now be included and properly handled in the getting-st…
DavidT3 Nov 26, 2025
c6a7fc2
Added first pass at a function to generate XRISM Xtend spectra to the…
DavidT3 Nov 26, 2025
87b82dc
Started to add spec generation and grouping sections and code to the …
DavidT3 Nov 26, 2025
5f06d3a
Added a subsection to the part of getting-started-xrism-xtend.md that…
DavidT3 Nov 26, 2025
dad4dbd
Added first pass at the wrapper function to generate RMFs for XRISM X…
DavidT3 Nov 26, 2025
e512cf7
Getting ARF generation closer to being functional in the getting-star…
DavidT3 Dec 1, 2025
a34a2a6
Missed passing the RMF file to the xaarfgen call in the wrapper funct…
DavidT3 Dec 1, 2025
491e74a
Had to pass RA-Dec region file to the arf generation tool for XRISM-X…
DavidT3 Dec 1, 2025
4088764
Had to add a temporary manually-defined link to a caldb file in the w…
DavidT3 Dec 1, 2025
9de57e8
Removed the demonstration of generating spectra within a certain ener…
DavidT3 Dec 2, 2025
7a4ff42
Have to include '__row' in the columns we manually specify should be …
DavidT3 Dec 2, 2025
4cea26e
Hadn't passed 'radec_src_reg_path' to the gen_xrism_xtend_arf functio…
DavidT3 Dec 2, 2025
2409a16
Updated the 'gen_xrism_xtend_image' wrapper function in getting-start…
DavidT3 Dec 3, 2025
8157dfc
Altered the 'gen_xrism_xtend_expmap' function (in getting-started-xri…
DavidT3 Dec 3, 2025
3f01780
Altered the time_bin_size gen_xrism_xtend_lightcurve function to not …
DavidT3 Dec 3, 2025
41c956b
Moved the xspec import down the notebook
DavidT3 Dec 3, 2025
76e1341
Fixed an issue with an incorrect dataclass being passed to RMF genera…
DavidT3 Dec 4, 2025
562a5d2
Explicitly defined the name of the table in the event list that conta…
DavidT3 Dec 5, 2025
e3880b1
Moved the definition of most output path template variables to the 'C…
DavidT3 Dec 5, 2025
5a6ac94
Replaced the im_out definition in gen_xrism_xtend_image with somethin…
DavidT3 Dec 5, 2025
e6ade84
Replaced the ex_out and binned_ex_out definitions in gen_xrism_xtend_…
DavidT3 Dec 5, 2025
6593598
Altered the light curve and spectrum generation wrapper functions in …
DavidT3 Dec 5, 2025
3af1201
Updated the gen_xrism_xtend_rmf wrapper function so that it doesn't r…
DavidT3 Dec 5, 2025
1b3a412
Polished the gen_xrism_xtend_arf wrapper function a little, making su…
DavidT3 Dec 5, 2025
c9091ee
Added much commentary to the exposure map generation section of the g…
DavidT3 Dec 5, 2025
26d0293
Spent an inordinate amount of time adding a subsection on the calibra…
DavidT3 Dec 5, 2025
7dc58ad
Altered where in the getting-started-xrism-xtend.md notebook the RA-D…
DavidT3 Dec 5, 2025
09b6f8c
Added commentary to the part of the getting-started-xrism-xtend.md no…
DavidT3 Dec 5, 2025
06893fb
The meta data of the functions cell in getting-started-xrism-xtend.md…
DavidT3 Dec 5, 2025
ad8e734
Commented out the xspec and arfgen portions, and did a horrible bodge…
DavidT3 Dec 5, 2025
10a9be4
Specifically selected two out of three observations in the getting-st…
DavidT3 Dec 5, 2025
c044db2
Increased the time out of notebook execution in the sphinx configurat…
DavidT3 Dec 5, 2025
17c475e
Added something that should print xtdpipeline outputs for any observa…
DavidT3 Dec 8, 2025
f8e2b33
Fixed some small bugs with xtdpipeline error printing, and the readin…
DavidT3 Dec 8, 2025
4095749
Made some changes to the getting-started-xrism-xtend.md notebook wher…
Dec 8, 2025
734a86b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 8, 2025
ac704eb
Made sure all the coordinates that go into region files are in the IC…
DavidT3 Dec 8, 2025
b55eeea
Increased notebook execution timeout in the CircleCI config.
DavidT3 Dec 8, 2025
d33065e
Removed some extraneous formatting arguments in getting-started-xrism…
DavidT3 Dec 8, 2025
9b099f0
Finished explaining the light curve generation section, also moved it…
DavidT3 Dec 8, 2025
b1f0b49
Added a HEASoft version check to the getting-started-xrism-xtend.md n…
DavidT3 Dec 10, 2025
5b4a8d5
Added a very short, but top level, section about what do with observa…
DavidT3 Dec 10, 2025
b756c18
Finished the dataclass choice section for now.
DavidT3 Dec 10, 2025
de9baec
Added commentary
DavidT3 Dec 10, 2025
09a62eb
Have now written commentary on the ARF generation section of the gett…
DavidT3 Dec 10, 2025
a1213d5
May have finally finished the writing of the getting-started-xrism-xt…
DavidT3 Dec 11, 2025
a7922df
Added a test visualization of a light curve in the getting-started-xr…
DavidT3 Dec 11, 2025
b85a6ca
Fixed a typo
DavidT3 Dec 11, 2025
722b4e6
Restricted the getting-started-xrism-xtend.md notebook to only use 00…
DavidT3 Dec 11, 2025
2b5292e
Made sure that XSPEC model fit is plotted on top of spectrum, improve…
DavidT3 Dec 11, 2025
4c40668
Added more accurate commentary on the ARF generation, also allow the …
DavidT3 Dec 11, 2025
18f0d65
Absolute idiot that I am, I wasn't passing the net light curve path t…
DavidT3 Dec 11, 2025
cab782b
Added information on datamodes/classes to the getting-started-xrism-x…
DavidT3 Dec 11, 2025
6131852
May possibly have actually finished the writing of getting-started-xr…
DavidT3 Dec 11, 2025
01b8365
Tiny aethsetic change to getting-started-xrism-xtend.md
DavidT3 Dec 11, 2025
1c9972a
Fixed a bug in the filling out of the demo_lc_path variable in gettin…
DavidT3 Dec 11, 2025
4e44287
Pointed the getting-started-xrism-xtend.md notebook to the S3 bucket …
DavidT3 Dec 11, 2025
1efc930
Temporarily disabling the error on too-low of a HEASoft version in th…
DavidT3 Dec 11, 2025
10082dc
Removed a blank line
DavidT3 Dec 11, 2025
64b69fb
Made some of the event list and region file paths passed to HEASoft t…
DavidT3 Dec 12, 2025
740fb4d
Tiny wording change, mostly to get CircleCI going again (hopefully th…
DavidT3 Dec 12, 2025
48595ef
Replaced a misuse of admonition with seealso, in the getting-started-…
DavidT3 Dec 12, 2025
8395a49
Some very small typos fixed
DavidT3 Dec 15, 2025
384bed9
Restored XMM CCF download step in config.yml
DavidT3 Dec 16, 2025
82ead7a
Returning nb_execution_timeout to 1200 in conf.py - might alter it ba…
DavidT3 Dec 16, 2025
44b013e
Merge remote-tracking branch 'origin/notebook/newGettingStartedXRISMX…
DavidT3 Dec 16, 2025
ddde783
Commented out the XMM CCF acquisition step again in config.yml, for s…
DavidT3 Dec 16, 2025
5c5fe36
Tiny grammar change suggested by the IDE (uurgh), just meant to trigg…
DavidT3 Dec 16, 2025
b713f98
Small typos fixed in the getting-started-xrism-xtend.md notebook.
DavidT3 Dec 16, 2025
184fa0c
Terrible replication of a change
DavidT3 Dec 16, 2025
2a153e7
Grammar fix
DavidT3 Dec 16, 2025
2748a21
Small grammar changes to getting-started-xrism-xtend.md. For PR #150
DavidT3 Dec 16, 2025
885f2da
Small grammar fix
DavidT3 Dec 16, 2025
0d712df
Small grammar correction - meant to trigger the CircleCI process
DavidT3 Dec 16, 2025
831ccde
Fixed lots of style issues in getting-started-xrism-xtend.md. For PR …
DavidT3 Dec 16, 2025
ed6bb9c
Upping the nb_execution_timeout again, 1200 isn't enough for the XRIS…
DavidT3 Dec 16, 2025
2c54af5
Switched the pr-build-docs CircleCI job to use the fornax-hea:update-…
DavidT3 Dec 17, 2025
35d8e53
Rejigged a sentence slightly. For PR #150
DavidT3 Dec 17, 2025
3d446af
More typos fixed, I REALLY JUST WANT THIS TO RUN ON CIRCLECI COME ON …
DavidT3 Dec 17, 2025
c719704
Restored the getting-started-xrism-xtend.md check for HEASoft version.
DavidT3 Dec 17, 2025
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
92 changes: 56 additions & 36 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
version: 2.1

parameters:
notebooks_to_build:
type: string
default: ""

jobs:
pr-build-docs:
# Allows parameters to be passed into the job when
# it is triggered through the API.
# The notebooks to build parameter will be a comma-separated list of relative
# notebook paths to files that should be built. Every other notebook will be
# ignored. Default value of "" means that all notebooks will be built.
parameters:
notebooks_to_build:
type: string
default: ""
# We're using a docker container as a run environment - particularly the NASA Fornax
# high-energy image that we maintain as part of the Fornax initiative
docker:
# The Fornax-Hea images can definitely be used here, just we're having some issues with what supporting files
# software are included at the moment, so it is easier to use a different image and just install HEASoft
# at the moment
- image: ghcr.io/nasa-fornax/fornax-images/fornax-hea:20251030_1555
# We make use of the NASA Fornax high-energy astrophysics image, which has
# pre-existing environments for most of the missions we support.
- image: ghcr.io/nasa-fornax/fornax-images/fornax-hea:update-addHEASoft6.36
# This sets the amount of compute that we'll use to run the on-PR builds/tests - this particular setup corresponds
# to 2 CPUs and 4GB of RAM as of 16th September 2025
resource_class: medium
Expand Down Expand Up @@ -40,38 +55,38 @@ jobs:
- restore_cache:
name: Restoring Chandra CalDB cache
keys:
- ciao-caldb-
- ciao-caldb-

# Some missions (e.g. XMM, Chandra, eROSITA) require that their calibration files are available locally. We
# don't want to download them every single time, so we're going to cache them for future runs.
- run:
name: Acquiring/validating XMM-CCFs
no_output_timeout: 30m
command: |
# If we can't see the xmm_ccf directory, or the version file we generate doesn't contain the same
# version number as currently defined in the environment variable, we have to download the data
if [ ! -d /home/jovyan/xmm-ccf ] || [[ ! "$(<"/home/jovyan/xmm-ccf/xmm-ccf.ver")" == "$CIRCLECI_XMM_CCF_VER" ]]; then

# Makes the xmm-ccf directory, if it doesn't already exist. This is a different approach to the
# what we do for the Chandra CalDB below, as rsync will update files if there are newer versions
# available, so we don't want to delete the directory.
mkdir -p /home/jovyan/xmm-ccf/ccf-files

# We do delete the version file, if it exists, as if we get to this point then we are either downloading
# the data for the first time, or the version number has changed.
[ -f /home/jovyan/xmm-ccf/xmm-ccf.ver ] && rm /home/jovyan/xmm-ccf/xmm-ccf.ver

# Make a new version file - this goes a level up from the directory where the files will actually
# be stored (ccf-files), because the rsync process will delete the version file
echo "${CIRCLECI_XMM_CCF_VER}" > /home/jovyan/xmm-ccf/xmm-ccf.ver

# We don't include rsync in the Fornax-Hea image, so unfortunately we'll have to install it now. The
# neatest way is to make a new conda environment that just contains rsync
micromamba create -n rsync-env -y -c conda-forge rsync

# Actually rsync the calibration files
micromamba run -n rsync-env rsync -v -a --delete --delete-after --force --include='*.CCF' --exclude='*/' sasdev-xmm.esac.esa.int::XMM_VALID_CCF /home/jovyan/xmm-ccf/ccf-files
fi
# - run:
# name: Acquiring/validating XMM-CCFs
# no_output_timeout: 30m
# command: |
# # If we can't see the xmm_ccf directory, or the version file we generate doesn't contain the same
# # version number as currently defined in the environment variable, we have to download the data
# if [ ! -d /home/jovyan/xmm-ccf ] || [[ ! "$(<"/home/jovyan/xmm-ccf/xmm-ccf.ver")" == "$CIRCLECI_XMM_CCF_VER" ]]; then
#
# # Makes the xmm-ccf directory, if it doesn't already exist. This is a different approach to the
# # what we do for the Chandra CalDB below, as rsync will update files if there are newer versions
# # available, so we don't want to delete the directory.
# mkdir -p /home/jovyan/xmm-ccf/ccf-files
#
# # We do delete the version file, if it exists, as if we get to this point then we are either downloading
# # the data for the first time, or the version number has changed.
# [ -f /home/jovyan/xmm-ccf/xmm-ccf.ver ] && rm /home/jovyan/xmm-ccf/xmm-ccf.ver
#
# # Make a new version file - this goes a level up from the directory where the files will actually
# # be stored (ccf-files), because the rsync process will delete the version file
# echo "${CIRCLECI_XMM_CCF_VER}" > /home/jovyan/xmm-ccf/xmm-ccf.ver
#
# # We don't include rsync in the Fornax-Hea image, so unfortunately we'll have to install it now. The
# # neatest way is to make a new conda environment that just contains rsync
# micromamba create -n rsync-env -y -c conda-forge rsync
#
# # Actually rsync the calibration files
# micromamba run -n rsync-env rsync -v -a --delete --delete-after --force --include='*.CCF' --exclude='*/' sasdev-xmm.esac.esa.int::XMM_VALID_CCF /home/jovyan/xmm-ccf/ccf-files
# fi

# We also download the Chandra CalDB
- run:
Expand All @@ -89,7 +104,7 @@ jobs:
mkdir -p /home/jovyan/chandra-caldb

# Download the Chandra CalDB
wget https://cxc.cfa.harvard.edu/cdaftp/arcftp/caldb/caldb_${CHANDRA_CALDB_VER}_main.tar.gz
wget https://cxc.cfa.harvard.edu/cdaftp/arcftp/ChandraCalDB/tars/caldb_${CHANDRA_CALDB_VER}_main.tar.gz

# Unpack the archive into a specific directory
tar xzf caldb_${CHANDRA_CALDB_VER}_main.tar.gz -C /home/jovyan/chandra-caldb
Expand Down Expand Up @@ -148,8 +163,12 @@ jobs:
# Now we're going to start building the documentation
- run:
name: Build HTML rendering of notebooks
no_output_timeout: 30m
no_output_timeout: 60m
command: |
# The first command sets the HEASARC_NOTEBOOKS_TO_BUILD environment variable, which tells the build
# process which notebooks to build. It allows granular control over which notebooks are built
# for a given test build - the default value of "" will build all the notebooks.
export HEASARC_NOTEBOOKS_TO_BUILD="<< parameters.notebooks_to_build >>"
micromamba run -n build_docs sphinx-build -b html . _build/html -nWT --keep-going
sed -E -i.bak '/caption-text/{N; s/.+caption-text.+\n<ul>/<ul>/; P;D;}' _build/html/index.html
bash -c 'rm _build/html/index.html.bak'
Expand Down Expand Up @@ -186,4 +205,5 @@ jobs:
workflows:
build-for-PR:
jobs:
- pr-build-docs
- pr-build-docs:
notebooks_to_build: << pipeline.parameters.notebooks_to_build >>
76 changes: 74 additions & 2 deletions .github/workflows/trigger-circleci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Wait for 'pre-commit.ci' to pass
# This action repeatedly polls the GitHub Statuses API for the specific check.
Expand Down Expand Up @@ -54,6 +56,68 @@ jobs:
exit 3
fi

- name: Define notebook build list
# The CircleCI pipeline can take an argument that defines exactly which notebooks
# should be built. This step sets up the variable that will be passed to the
# pipeline. Either by identifying which notebooks have been altered in the
# triggering PR, or by looking for an override in the PR comments.
id: which_notebooks_to_build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
# Define the exclusion patterns
EXCLUDE_PATTERNS=("*notebook_template*" "*pull_request_template*" "*README*" "**/*README*" "*.ipynb_checkpoints*")

# First, check if there's an override pattern in PR comments
OVERRIDE_NOTEBOOKS=$(curl -s \
-H "Authorization: token ${GITHUB_TOKEN}" \
"https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" | \
jq -r '.[] | select(.body | contains("@heasarc-notebooks:")) | .body | match("@heasarc-notebooks:\\s*(.+)"; "g") | .captures[0].string' | tail -1)

if [ -n "$OVERRIDE_NOTEBOOKS" ]; then
# Use the override from the comments
NOTEBOOKS_TO_BUILD="$OVERRIDE_NOTEBOOKS"
echo "Using notebooks specified in PR comment: $NOTEBOOKS_TO_BUILD"
else
# Get the list of changed files in the PR
CHANGED_FILES=$(git diff --name-only origin/main...HEAD)

# Filter and process the files
NOTEBOOKS_TO_BUILD=""
while IFS= read -r file; do
# Check if file is in tutorials directory and ends with .md
if [[ "$file" =~ ^tutorials/.*\.md$ ]]; then
# Get relative path from tutorials directory
REL_PATH="${file#tutorials/}"

# Check if file should be excluded
SHOULD_EXCLUDE=false
for pattern in "${EXCLUDE_PATTERNS[@]}"; do
# Convert glob patterns to match logic
if [[ "$REL_PATH" == *"index"* ]] || [[ "$REL_PATH" =~ $(echo "$pattern" | sed 's/\*/.*/'g) ]]; then
SHOULD_EXCLUDE=true
break
fi
done

if [ "$SHOULD_EXCLUDE" = false ]; then
if [ -z "$NOTEBOOKS_TO_BUILD" ]; then
NOTEBOOKS_TO_BUILD="$REL_PATH"
else
NOTEBOOKS_TO_BUILD="${NOTEBOOKS_TO_BUILD},$REL_PATH"
fi
fi
fi
done <<< "$CHANGED_FILES"

echo "Notebooks to build based on changed files: $NOTEBOOKS_TO_BUILD"
fi

# Export the variable for the next step
echo "notebooks_to_build=$NOTEBOOKS_TO_BUILD" >> $GITHUB_OUTPUT


- name: Trigger CircleCI Pipeline via API
# Only proceed if the wait step succeeded, and the 'skip-doc-build' label wasn't added to the PR (could be
# that the contributor added the label after the PR was opened).
Expand All @@ -65,16 +129,24 @@ jobs:
TARGET_BRANCH: ${{ github.head_ref }}
PROJECT_SLUG: 'circleci/LdzbTUR6aexSM6vJCVrZk5/GRoaAeYuJNgCdifZviG612'
CHECKOUT_REPO: 'HEASARC/heasarc-tutorials'
NOTEBOOKS_TO_BUILD: ${{ steps.which_notebooks_to_build.outputs.notebooks_to_build }}

run: |
echo "pre-commit.ci checks passed on branch ${TARGET_BRANCH}. Triggering CircleCI."
echo "Notebooks to build: ${NOTEBOOKS_TO_BUILD}"

# Post request to CircleCI API v2 to trigger a new pipeline
# We pass arguments to the pipeline via the 'parameters' field, which
# allows us to control exactly which notebooks are to built.
curl -X POST \
--url "https://circleci.com/api/v2/project/${PROJECT_SLUG}/pipeline/run" \
--header "Content-Type: application/json" \
--header "Circle-Token: ${CIRCLE_TOKEN}" \
--data '{
"definition_id": "f5bf0ced-00cd-4643-aa02-c2f10e445243",
"config": {"branch": "'"${TARGET_BRANCH}"'"},
"checkout": {"branch": "'"${TARGET_BRANCH}"'"}
}'
"checkout": {"branch": "'"${TARGET_BRANCH}"'"},
"parameters": {
"notebooks_to_build": "'"${NOTEBOOKS_TO_BUILD}"'"
}
}'
Loading
Loading