PTB-MR / mrpro

MR image reconstruction and processing.
https://ptb-mr.github.io/mrpro/
Apache License 2.0
17 stars 2 forks source link

Fix PyTest and Deployment workflow triggers #467

Closed schuenke closed 3 weeks ago

schuenke commented 3 weeks ago

This PR should fix that:

closes #445

github-actions[bot] commented 3 weeks ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/mrpro/algorithms/csm
   inati.py24196%44
   walsh.py16194%34
src/mrpro/algorithms/dcf
   dcf_voronoi.py53492%15, 48–49, 76
src/mrpro/algorithms/optimizers
   adam.py20195%69
src/mrpro/algorithms/reconstruction
   DirectReconstruction.py281643%51–71, 85
   IterativeSENSEReconstruction.py422345%77–78, 88–98, 113–124, 138–149
   Reconstruction.py522454%42, 54–56, 80–87, 104–115
src/mrpro/data
   AcqInfo.py128298%174, 214
   CsmData.py29390%15, 82–84
   DcfData.py45882%18, 66, 78–83
   IData.py67987%119, 125, 129, 159–167
   IHeader.py75791%75, 109, 127–131
   KHeader.py1651790%25, 127–131, 158, 210, 221, 228–229, 232, 239, 278–289
   KNoise.py311552%39–52, 56–61
   KTrajectory.py69593%178–182
   MoveDataMixin.py1271886%15, 110, 126, 140–142, 203, 265–267, 280, 359, 379–380, 382, 397–398, 400
   QData.py39782%42, 65–73
   Rotation.py6743695%100, 198, 335, 433, 477, 495, 581, 583, 592, 626, 628, 691, 768, 773, 776, 791, 808, 813, 889, 1077, 1082, 1085, 1109, 1113, 1240, 1242, 1250–1251, 1315, 1397, 1608, 1690, 1846, 1881, 1885, 1996
   SpatialDimension.py2462391%34, 104, 119, 126, 132, 167, 177, 294–296, 309–311, 345, 363, 376, 389, 402, 415, 424–425, 440, 449
   TrajectoryDescription.py14193%23
   acq_filters.py10190%47
src/mrpro/data/_kdata
   KData.py1051685%108–109, 118, 126, 180–181, 216, 221–222, 241–252
   KDataRemoveOsMixin.py29293%44, 46
   KDataSelectMixin.py21290%48, 64
   KDataSplitMixin.py49394%51, 81, 90
src/mrpro/data/traj_calculators
   KTrajectoryCalculator.py25292%23, 45
   KTrajectoryIsmrmrd.py13285%41, 50
   KTrajectoryPulseq.py29197%54
src/mrpro/operators
   CartesianSamplingOp.py50982%49–50, 55–56, 61–62, 88, 91, 114
   ConstraintsOp.py60297%46, 48
   EndomorphOperator.py65297%228, 234
   FiniteDifferenceOp.py27293%40, 105
   FourierOp.py77199%131
   Functional.py71593%20–22, 117, 119
   GridSamplingOp.py136993%72–73, 82–83, 90–91, 94, 96, 98
   LinearOperator.py1611293%55, 91, 190, 220, 261, 270, 278, 287, 295, 306, 404, 409
   MultiIdentityOp.py13285%43, 48
   Operator.py78297%25, 74
   ProximableFunctionalSeparableSum.py39392%50, 103, 110
   SliceProjectionOp.py173895%44, 61, 63, 69, 206, 227, 260, 300
   WaveletOp.py120596%152, 170, 205, 210, 233
   ZeroPadOp.py16194%30
src/mrpro/utils
   filters.py62297%44, 49
   modify_acq_info.py17194%12
   slice_profiles.py46687%20, 36, 113–116, 149
   sliding_window.py34197%34
   split_idx.py10280%43, 47
   summarize_tensorvalues.py11918%20–29
   typing.py181139%8–23
   zero_pad_or_crop.py31681%26, 30, 54, 57, 60, 63
TOTAL453035192% 

Tests Skipped Failures Errors Time
1916 0 :zzz: 0 :x: 0 :fire: 1m 39s :stopwatch:
github-actions[bot] commented 3 weeks ago

:books: Documentation

:file_folder: Download as zip :mag: View online

schuenke commented 3 weeks ago

IMO this should do what we want without using any additional action etc.

EDIT: thought the pytest workflow would also run on push events. I will adjust it...

fzimmermann89 commented 3 weeks ago

This now only discards github ui merges, right? not merges done locally? Is this an issue? If yes, we still should consider @ckolbPTB 's suggestions of https://github.com/dorny/paths-filter

schuenke commented 3 weeks ago

This now only discards github ui merges, right? not merges done locally? Is this an issue? If yes, we still should consider @ckolbPTB 's suggestions of https://github.com/dorny/paths-filter

Liked the idea to do it without the paths-filter action, but forgot about local merges... updated the workflow

schuenke commented 3 weeks ago

Okay, works now as we want I think: Every change of src/mrpro/VERSION will trigger the deployment workflow, but only if the version differs from the version in main branch, the workflow will run through. We just need to keep in mind that changing the VERSION file is the last thing you should do in a PR or you have to change it another 2 times to trigger it with the same version / date.

Last question: do we also want to skip the build process as well (as it is implemented now), or do we want to build the package and just dont deploy it? Probably the last option, no? @ckolbPTB @fzimmermann89

Then I will just delete the if: steps.changes.outputs.version_changed == 'true' conditions in the steps of the build-testpypi-package job

ckolbPTB commented 3 weeks ago

Last question: do we also want to skip the build process as well (as it is implemented now), or do we want to build the package and just dont deploy it?

I would just do the build and nothing else

fzimmermann89 commented 3 weeks ago

Only skip deployments.

At least whenever pyproect.toml is changed we should try a build, no?