Description
Transition remote modules configuration from setup.py to the modern pyproject.toml.
Impact analysis
pyproject.toml is the modern way to package projects using Python code:
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
https://packaging.python.org/en/latest/guides/modernize-setup-py-project/#modernize-setup-py-project
Expected behavior
Transition all remote module's project configuration to a pyproject.toml file.
Actual behavior
Almost all remote module's project configuration dwells in a setup.py file.
Versions
N/A.
Environment
N/A.
Additional Information
Matt has contributed with a script that would help in the transition:
InsightSoftwareConsortium/ITKModuleTemplate#161
Also, there is this tool Matt has used to update the remote module CI config to ITK 5.4:
https://github.com/asottile/all-repos
Ongoing work:
thewtex@9e9d513
Remotes and PRs:
TODO:
DONE:
Notes:
Description
Transition remote modules configuration from
setup.pyto the modernpyproject.toml.Impact analysis
pyproject.tomlis the modern way to package projects using Python code:https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
https://packaging.python.org/en/latest/guides/modernize-setup-py-project/#modernize-setup-py-project
Expected behavior
Transition all remote module's project configuration to a
pyproject.tomlfile.Actual behavior
Almost all remote module's project configuration dwells in a
setup.pyfile.Versions
N/A.
Environment
N/A.
Additional Information
Matt has contributed with a script that would help in the transition:
InsightSoftwareConsortium/ITKModuleTemplate#161
Also, there is this tool Matt has used to update the remote module CI config to ITK 5.4:
https://github.com/asottile/all-repos
Ongoing work:
thewtex@9e9d513
Remotes and PRs:
TODO:
DONE:
pyproject.tomlITKIOScanco#85pyproject.tomlITKLabelErodeDilate#39pyproject.tomlITKMGHImageIO#41pyproject.tomlITKOptimizationMonitor#6pyproject.tomlITKPolarTransform#26pyproject.tomlITKPrincipalComponentsAnalysis#37pyproject.tomlITKSkullStrip#26pyproject.tomlITKAnalyzeObjectMap#30pyproject.tomlITKAnisotropicDiffusionLBR#55pyproject.tomlITKArrayFire#6pyproject.tomlITKBioCell#28pyproject.tomlITKBoneEnhancement#41pyproject.tomlITKBoneMorphometry#56pyproject.tomlITKBSplineGradient#34pyproject.tomlITKColorNormalization#43pyproject.tomlITKEntropyBasedIntensityCorrection#1pyproject.tomlITKFastBilateral#5pyproject.tomlITKFixedPointInverseDisplacementField#29pyproject.tomlITKGenericLabelInterpolator#37pyproject.tomlITKGrowCut#25pyproject.tomlITKIOFDF#41pyproject.tomlITKIOOpenSlide#30pyproject.tomlITKIOMeshSTL#49pyproject.tomlITKIOMeshSWC#3pyproject.tomlITKIOTransformDCMTK#13pyproject.tomlITKIsotropicWavelets#159pyproject.tomlITKMeshNoise#31pyproject.tomlITKMinimalPathExtraction#105ENH: Transition project configuration to
pyproject.tomlITKNDReg#24pyproject.tomlITKNeuralNetworks#15pyproject.tomlITKRingArtifact#10pyproject.tomlITKSmoothingRecursiveYvvGaussian#32pyproject.tomlITKSplitComponents#78pyproject.tomlITKSubdivisionQuadEdgeMeshFilter#41pyproject.tomlITKTextureFeatures#101pyproject.tomlITKThickness3D#51pyproject.tomlITKThinShellDemons#22pyproject.tomlITKTotalVariation#50pyproject.tomlITKTrimmedPointSetRegistration#2pyproject.tomlITKTubeTK#162pyproject.tomlITKTwoProjectionRegistration#29pyproject.tomlITKVkFFTBackend#67pyproject.tomlITKVtkGlue#41pyproject.tomlLesionSizingToolkit#45pyproject.tomlKitwareMedical/ITKStrain#70Notes:
ITKas a keyword, as well asInsightToolkit, and capitalized the first letter of other keywords. The module template containsitkall lowercase: https://github.com/InsightSoftwareConsortium/ITKModuleTemplate/blob/main/%7B%7Bcookiecutter.project_name%7D%7D/pyproject.toml#L15 Can be a good moment to make these consistent.