Skip to content

chore(release): v0.3.2 - #12

Merged
gomezzz merged 2 commits into
mainfrom
release-0.3.2
Jul 8, 2026
Merged

chore(release): v0.3.2#12
gomezzz merged 2 commits into
mainfrom
release-0.3.2

Conversation

@gomezzz

@gomezzz gomezzz commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Release v0.3.2

Changes since v0.3.1:

  • FITS cutout WCS re-tangenting fix: cutout WCS now reproduces the parent tile mapping exactly (inherits CRVAL/CTYPE/CD orientation, shifts only CRPIX) instead of re-tangenting at each source — removes a rotation error that grew toward cutout edges (~1″ at few-arcmin FOV far from the tile centre). Pixel data / Zarr / streaming unaffected.
  • UNIT and CONSVFLX FITS header keywords on individual cutout outputs.
  • UI: "Raw cutout" checkbox relabelled to "Raw cutout (in Jy):".
  • README: new Flux Conversion section + documentation of the UNIT / CONSVFLX header keywords.
  • fitsbolt pinned to ==0.3.0.

Test plan

  • Tree verified against the internal v0.3.2 tag (11 mirrored files byte-identical; CHANGELOG PR-refs stripped per public convention)
  • License header workflow passes
  • CI green

Hotfix release 0.3.2. Syncs the public mirror with the private v0.3.2 tag
(excluding internal-only folders), covering:
- FITS cutout WCS re-tangenting fix (parent-tile WCS fidelity)
- UNIT/CONSVFLX FITS header keywords on individual cutouts
- "Raw cutout (in Jy)" UI label and flux-conversion README docs
- fitsbolt pinned to 0.3.0
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Overall Coverage

Coverage Report (build + browser)
FileStmtsMissCoverMissing
__init__.py8538%13, 15, 17–18, 20
catalogue_preprocessor.py3705485%67, 83–84, 87, 281–282, 296–298, 317, 320, 328, 335, 343, 348–352, 354–355, 404–405, 408, 410–411, 414, 442–443, 446–447, 450–452, 458–459, 468–470, 483, 514–515, 559–560, 564, 609, 617, 648, 653, 667, 670, 723, 731, 735
catalogue_streamer.py162498%115, 202, 229, 376
cutout_extraction.py1561888%73–74, 76, 125, 130–131, 303–305, 356, 377, 379–381, 385–386, 388, 391
cutout_process.py2257268%87, 230, 250–251, 264, 267, 280–281, 285–288, 292, 321, 324–327, 335–336, 339–341, 344–348, 350, 352–353, 356–357, 359, 364, 367–370, 372, 377, 379, 382–383, 387, 390, 392, 397–403, 406–410, 413, 416, 419–420, 423, 425, 429, 517, 527–530, 533
cutout_process_utils.py2101991%63, 66, 84, 90, 178–179, 192–195, 244–245, 256–258, 405, 417, 433, 558
cutout_writer_fits.py2212788%44–45, 49, 131–133, 140–141, 218, 229, 286–287, 299, 375, 393–394, 455–456, 527–528, 547, 557, 566, 568, 621–623
cutout_writer_zarr.py882176%115–116, 129–130, 137–139, 169, 200–202, 223–224, 245–247, 268–269, 290–292
deployment_validator.py3027376%33–35, 92–94, 123–124, 153, 176–178, 183–184, 223–225, 275–277, 317–318, 325–326, 336–337, 341–342, 350, 353, 361–364, 388–389, 404, 415–416, 418–426, 435–436, 478–479, 484–486, 488–489, 499, 507, 511–512, 514, 517–521, 524–527, 558–559
direct_cutout.py43588%95–96, 109–110, 113
fits_dataset.py1572187%54–56, 238–243, 245–247, 251–252, 268–269, 273, 276, 300, 302, 338
fits_reader.py53394%53, 129–130
get_default_config.py150597%52, 177, 182, 209, 212
image_processor.py1471093%56, 262–267, 269, 271–272
job_tracker.py1261687%204, 219–220, 228, 232, 250, 255, 272–275, 277, 280, 285, 351, 411
loadbalancer.py3307178%111–112, 120, 123–124, 126–127, 154, 158, 160–161, 169–170, 222–223, 226–227, 231–232, 235–236, 239, 249–250, 254–255, 258, 261, 271, 303–304, 400, 407, 518, 584–585, 600–604, 606–613, 617, 619–621, 623–625, 659, 663, 666, 669–671, 678–680, 827–830, 837–838
logging_config.py33294%67, 69
normalisation_parameters.py1354666%106–110, 113, 128–129, 132, 144–148, 151, 192–194, 196, 220, 227, 230, 232, 234, 236–237, 240–243, 245–247, 249, 251–252, 254–255, 261, 269–270, 278, 280, 282, 332–333
orchestrator.py4439279%97, 143–146, 186, 189–190, 192, 194, 197–198, 201–202, 204, 206–207, 277–278, 301, 443–446, 500–503, 515–517, 524–525, 574, 577–578, 586–587, 589–593, 640–642, 665–667, 678–680, 690–692, 697–699, 764–765, 769, 773–774, 778, 781–782, 786–788, 796–797, 844–845, 863–864, 872, 895–898, 902–905, 909, 911, 944, 946–947, 951, 1051–1052
performance_profiler.py80495%144, 154, 159, 192
preview_generator.py2373187%63–64, 113, 117, 119, 157, 164, 170, 242–243, 259–260, 262–263, 271–272, 275, 281–282, 374, 407–410, 412–413, 445, 465–468
process_status_reader.py1572485%63, 85, 93–95, 105–106, 143, 146, 171, 174, 195–197, 264–266, 300–302, 354, 443–445
process_status_writer.py1402483%79–83, 86, 88–89, 123, 205, 306–309, 348–349, 352, 355, 358, 361, 364, 390–392
progress_report.py1431590%125, 132, 135–139, 145–147, 161–162, 221, 224–225
shm_pool.py105496%87, 163–164, 167
streaming_orchestrator.py3757480%127, 129, 262, 271, 275, 305, 328–330, 332–333, 335–343, 345, 347, 352–353, 365–367, 369–373, 375–376, 378, 395, 397–403, 405–406, 418, 442–443, 446–447, 457, 460, 463–465, 471, 475, 484, 488, 506–508, 515, 560–561, 565, 692, 707, 713, 720, 725, 761–762, 769
styles.py35197%37
system_monitor.py2427768%65–67, 76–78, 113–114, 116–117, 167–168, 189, 192–193, 203, 205, 210, 212, 214, 218–219, 222–227, 230–232, 236–237, 241–244, 248–249, 254–257, 400, 402, 404–405, 409, 441–442, 448–457, 482, 485–488, 496–498, 502, 536, 540–542, 544–547
validate_config.py2032787%349, 391, 468, 471–474, 479, 482, 486, 491–493, 498–500, 503, 506, 526, 539, 543, 545–547, 553, 558, 606
main_screen
   main_screen.py2407370%200, 202, 205, 209, 212, 215, 218, 221–222, 225–228, 231–235, 237–244, 247–249, 251, 254–255, 257–267, 271, 274, 277, 280–286, 288–291, 293–295, 299–302, 304–305, 313, 440–441, 444–445, 450, 549
   preview_panel.py1654076%120–121, 131–132, 147–149, 182–186, 194, 201, 203–204, 224, 234, 237–238, 289–290, 292–294, 305, 311, 313–314, 363–365, 368–371, 373–374, 376, 390
   status_panel.py1241687%165, 176, 181–183, 236, 244–246, 267, 269, 272, 275, 291, 332, 345
start_screen
   configuration_component.py39295%142, 150
   file_selection.py995346%87, 89–90, 92, 97–98, 103–104, 110–115, 117, 120–121, 123–124, 127–134, 136, 138–139, 141, 143–145, 151–152, 162, 164, 172–173, 180, 183–185, 187, 191–192, 208, 212–213, 225–227
   output_folder.py702466%50–51, 86, 88, 91–93, 95, 97, 107, 109, 117–118, 125, 128–130, 132, 136–137, 144, 150–152
   start_screen.py1745171%172–173, 177, 205–207, 209–214, 216–219, 273–274, 276–279, 281–284, 326, 328, 330, 333, 355–357, 361–362, 364, 368, 371–376, 379, 382, 389, 392, 396, 399, 406, 409
utils
   backend_interface.py1123866%64–65, 67–71, 85–86, 88, 90–92, 94, 96, 99–101, 104–106, 109–110, 113–115, 117, 120–121, 123, 125–126, 128–129, 142, 146, 161, 172
   log_manager.py682366%44, 49–50, 84, 87, 95, 123–124, 136, 139–141, 144–145, 147–151, 153, 159–160, 178
   markdown_loader.py2211991%34–36, 160, 171, 215, 255, 298, 357, 371, 438, 442–447, 591, 595
   svg_loader.py17665%26–31
widgets
   configuration_widget.py3357677%245, 277, 281, 284–286, 288, 294, 297, 304, 308, 329–330, 332–334, 336–337, 339, 341–342, 345–346, 348–351, 353, 355–358, 364, 378, 397–399, 423, 431–432, 507, 532–533, 535–536, 540–541, 543–544, 569–571, 576, 594, 596–599, 656, 658, 687, 701–705, 707–712, 720–721, 723–724
   file_chooser.py23483%184, 193–194, 196
   header_version_help.py993169%38–40, 42–43, 45–49, 52, 65, 81–87, 89, 336–339, 341–343, 346–347, 351–352
   normalisation_config_widget.py1523776%241–242, 244–245, 247–249, 252, 254–258, 261–264, 267, 270–271, 274–277, 323–325, 328–331, 333, 336–339, 343
   progress_bar.py30197%124
TOTAL7142155278% 

Tests Skipped Failures Errors Time
741 0 💤 0 ❌ 0 🔥 2m 31s ⏱️

@gomezzz
gomezzz requested a review from giusgal July 8, 2026 09:22
Homepage/Repository/Issues referenced the internal ESA-Datalabs mirror;
point them at the public ESA/Cutana repository.
@gomezzz
gomezzz merged commit 9092cdc into main Jul 8, 2026
7 checks passed
@gomezzz
gomezzz deleted the release-0.3.2 branch July 8, 2026 10:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants