ExtensionsIndex icon indicating copy to clipboard operation
ExtensionsIndex copied to clipboard

Meta issue referencing extension updates

Open jcfr opened this issue 1 year ago • 3 comments

These pull requests were created in the context of https://github.com/Slicer/ExtensionsIndex/pull/2011

List of pull requests intended to fix and consolidate extension metadata:

  • https://github.com/naterex23/SlicerAblationPlanner/pull/3
  • https://github.com/jamesobutler/ModelClip/pull/2
  • https://github.com/lassoan/AnomalousFiltersExtension/pull/2
  • https://github.com/SlicerIGT/PercutaneousApproachAnalysis/pull/1
  • https://github.com/QIICR/PkModeling/pull/11
  • https://github.com/SlicerIGT/PortPlacement/pull/3
  • https://github.com/netstim/SlicerANTs/pull/9
  • https://github.com/jcfr/SlicerToKiwiExporter/pull/9
  • https://github.com/SlicerDMRI/SlicerWMA-OLD/pull/12
  • https://github.com/NrgXnat/XNATSlicer/pull/3 | Email :envelope: sent on June 13th
  • https://github.com/Slicer/SlicerAirwaySegmentation/pull/1
  • https://github.com/DCBIA-OrthoLab/AnglePlanes-Extension/pull/21
  • https://github.com/pzaffino/SlicerArduinoController/pull/3
  • https://github.com/Atracsys/SlicerAstmPhantomTest/pull/4
  • https://github.com/ToothAndClaw/SlicerAuto3dgm/pull/7
  • https://github.com/Auditory-Biophysics-Lab/Slicer-BoneThicknessMapping/pull/7 | Email :envelope: sent on June 13th
  • https://github.com/jamesobutler/SlicerBrainVolumeRefinement/pull/1
  • https://github.com/lassoan/SlicerBreastImplantAnalyzer/pull/1
  • https://github.com/ikolesov/CarreraSlice/pull/13 | Email :envelope: sent on June 13th, June 19th
  • https://github.com/fedorov/ChangeTrackerPy/pull/20
  • https://github.com/acil-bwh/SlicerCIP/pull/43
  • https://github.com/lassoan/SlicerCleverSegmentation/pull/1
  • https://github.com/DCBIA-OrthoLab/CMFreg/pull/39
  • https://github.com/tokjun/CurveMaker/pull/17 | Email :envelope: sent on June 13th
  • https://github.com/DCBIA-OrthoLab/DatabaseInteractorExtension/pull/12
  • https://github.com/SlicerRt/SlicerDebuggingTools/pull/17
  • https://github.com/gaudot/SlicerDentalSegmentator/pull/2
  • https://github.com/Slicer/SlicerDeveloperToolsForExtensions/pull/30
  • https://github.com/pnlbwh/SlicerDiffusionQC/pull/49
  • https://github.com/lassoan/SlicerDRRGenerator/pull/2
  • https://github.com/QIICR/DSC_Analysis/pull/5
  • https://github.com/DCBIA-OrthoLab/EasyClip-Extension/pull/14
  • https://github.com/tokjun/ErodeDilateLabel/pull/3 | Email :envelope: sent on June 13th
  • https://github.com/SlicerRt/FilmDosimetryAnalysis/pull/3
  • https://github.com/SlicerRt/GelDosimetryAnalysis/pull/11
  • https://github.com/FredericBr/SlicerGeodesic/pull/4
  • https://github.com/lpfang/GyroGuide/pull/2 | Email :envelope: sent on June 13th
  • https://github.com/ImagingDataCommons/SlicerIDCBrowser/pull/35
  • https://github.com/gpernelle/iGyne/pull/4 | Email :envelope: sent on June 13th
  • https://github.com/finetjul/ImageMaker/pull/2
  • https://github.com/PerkLab/SlicerMatlabBridge/pull/8
  • https://github.com/SlicerMorph/SlicerMEMOS/pull/19
  • https://github.com/DCBIA-OrthoLab/MeshStatisticsExtension/pull/18
  • https://github.com/NIRALUser/MeshToLabelMap/pull/12
  • https://github.com/MHubAI/SlicerMRunner/pull/4
  • https://github.com/NIRALUser/3DMetricTools/pull/14
  • https://github.com/Project-MONAI/MONAILabel/pull/1675
  • https://github.com/Project-MONAI/SlicerMONAIViz/pull/38
  • https://github.com/SlicerProstate/mpReview/pull/180
  • https://github.com/kyliekeijzer/Slicer-PET-MUST-segmenter/pull/4
  • https://github.com/needlefinder/NeedleFinder/pull/2 | Email :envelope: sent on June 13th
  • https://github.com/NVIDIA/ai-assisted-annotation-client/pull/109
  • https://github.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis/pull/4 | Email :envelope: sent on June 13th
  • https://github.com/aangelos28/PBNRR/pull/6
  • https://github.com/PerkTutor/PerkTutor/pull/76
  • https://github.com/QIICR/Slicer-PETDICOMExtension/pull/23 | Email :envelope: sent on June 12th
  • https://github.com/QIICR/PET-IndiC/pull/7
  • https://github.com/gti-fing/SlicerPetSpectAnalysis/pull/5 | Email :envelope: sent on June 12th
  • https://github.com/QIICR/PETTumorSegmentation/pull/22
  • https://github.com/DCBIA-OrthoLab/PickAndPaintExtension/pull/25
  • https://github.com/KitwareMedical/SlicerPipelines/pull/25
  • https://github.com/fepegar/SlicerPyTorch/pull/16
  • https://github.com/DCBIA-OrthoLab/Q3DCExtension/pull/106
  • https://github.com/QIICR/QuantitativeReporting/pull/275
  • https://github.com/gsi-biomotion/SlicerRegistrationQA/pull/17
  • https://github.com/R-Vessel-X/SlicerRVXVesselnessFilters/pull/7 | Email :envelope: sent on June 12th
  • https://github.com/Sunderlandkyl/ScatteredTransform/pull/1 | Email :envelope: sent on June 12th
  • https://github.com/gaoyi/SegmentationAidedRegistration/pull/8 | Email :envelope: sent on June 12th
  • https://github.com/mazurowski-lab/SlicerSegmentWithSAM/pull/16 | Email :envelope: sent on June 12th, June 19th
  • https://github.com/NIRALUser/ShapePopulationViewer/pull/64
  • https://github.com/DCBIA-OrthoLab/ShapeVariationAnalyzer/pull/70
  • https://github.com/KitwareMedical/SlicerSkeletalRepresentation/pull/63
  • https://github.com/PerkLab/SlicerSkinMouldGenerator/pull/3
  • https://github.com/hina-shah/SlicerBatchAnonymize/pull/21 | Email :envelope: sent on July 3rd
  • https://github.com/JoostJM/SlicerCaseIterator/pull/21 | Email :envelope: sent on June 12th, June 19th
  • https://github.com/KitwareMedical/SlicerCBCTToothSegmentation/pull/4
  • https://github.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/pull/8
  • https://github.com/MedicalImageAnalysisTutorials/SlicerCochlea/pull/43 | Email :envelope: sent on June 12th
  • https://github.com/DCBIA-OrthoLab/SlicerConda/pull/5
  • https://github.com/SlicerDMRI/SlicerDcm2nii/pull/10
  • https://github.com/DCBIA-OrthoLab/SlicerDentalModelSeg/pull/30
  • https://github.com/QIICR/SlicerDevelopmentToolbox/pull/45
  • https://github.com/SlicerDMRI/SlicerDMRI/pull/235 | Email :envelope: sent on June 12th
  • https://github.com/SlicerFab/SlicerFab/pull/15 | Email :envelope: sent on June 12th
  • https://github.com/PerkLab/SlicerFreeSurfer/pull/20
  • https://github.com/SlicerIGT/SlicerIGT/pull/219
  • https://github.com/QIICR/SlicerLayoutButtons/pull/3
  • https://github.com/ALive-research/Slicer-Liver/pull/265
  • https://github.com/KitwareMedical/SlicerLookingGlass/pull/27
  • https://github.com/netstim/SlicerNetstim/pull/18
  • https://github.com/HOA-2/SlicerNeuroSegmentation/pull/25
  • https://github.com/PerkLab/SlicerOpenAnatomy/pull/20
  • https://github.com/Slicer/SlicerOpenCV/pull/79
  • https://github.com/jamesobutler/SlicerRegularizedFastMarching/pull/1
  • https://github.com/SlicerRt/SlicerRT/pull/243
  • https://github.com/sjh26/SlicerThemes/pull/3
  • https://github.com/MarinaSandonis/SlicerTissueSegmentation/pull/2 | Email :envelope: sent on June 12th
  • https://github.com/KitwareMedical/SlicerVirtualMouseCursor/pull/3
  • https://github.com/KitwareMedical/SlicerVirtualReality/pull/174
  • https://github.com/vmtk/SlicerExtension-VMTK/pull/114
  • https://github.com/NIRALUser/SPHARM-PDM/pull/86
  • https://github.com/JBeninca/SlicerStereotaxia/pull/10
  • https://github.com/mturja-vf-ic-bd/SlicerSurfaceLearner/pull/9 | Email :envelope: sent on June 12th, June 19th
  • https://github.com/SlicerHeart/SlicerSurfaceMarkup/pull/14
  • https://github.com/gattia/Slicer-T2mapping/pull/5
  • https://github.com/QIICR/TCIABrowser/pull/69
  • https://github.com/SlicerMicro/Slicer-TITAN/pull/4 | Email :envelope: sent on June 12th, June 18th
  • https://github.com/faustomilletari/TOMAAT-Slicer/pull/16 | Email :envelope: sent on June 12th, June 18th
  • https://github.com/fsemerar/SlicerTomoSAM/pull/18 | Email :envelope: sent on June 12th, June 18th
  • https://github.com/fepegar/SlicerTorchIO/pull/15
  • https://github.com/pnlbwh/ukftractography/pull/159
  • https://github.com/PerkLab/SlicerVolumeClip/pull/3
  • https://github.com/SlicerIGT/ResectionPlanner/pull/5
  • https://github.com/SlicerRt/SegmentRegistration/pull/9
  • https://github.com/moselhy/SlicerSequenceRegistration/pull/6
  • https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration/pull/5
  • https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify/pull/9
  • https://github.com/QIICR/T1Mapping/pull/2 | Email :envelope: sent on June 12th
  • https://github.com/Slicer/SkullStripper/pull/12
  • https://github.com/SlicerIGT/aigt/pull/58
  • https://github.com/lassoan/SlicerAutoscroll/pull/1
  • https://github.com/openigtlink/SlicerOpenIGTLink/pull/131
  • https://github.com/ETS-vis-interactive/SlicerPRISMRendering/pull/35
  • https://github.com/SlicerProstate/SlicerProstate/pull/56
  • https://github.com/KitwareMedical/SlicerPythonTestRunner/pull/7
  • https://github.com/AIM-Harvard/SlicerRadiomics/pull/81
  • https://github.com/harellab/SlicerUHFMRTools/pull/10
  • https://github.com/VASST/VASSTAlgorithms/pull/4
  • https://github.com/KitwareMedical/ShapeRegressionExtension/pull/34

jcfr avatar Apr 24 '24 03:04 jcfr

@jcfr can you please review this comment: https://github.com/QIICR/SlicerDevelopmentToolbox/pull/45#issuecomment-2075484010 ?

Extension build stopped working today, which coincided with your PR...

fedorov avatar Apr 24 '24 17:04 fedorov

Thanks for pointing this out, I will have a look later when back on the 👨‍💻

jcfr avatar Apr 24 '24 22:04 jcfr

List of pull requests and issues intended to fix and consolidate extension metadata for extension not yet integrated:

  • https://github.com/rbumm/SlicerPACSConnector/pull/5
  • https://github.com/mturja-vf-ic-bd/SlicerDeepLearningUI/pull/30
  • https://github.com/fatihtalu/Slicer-ThicknessMap/pull/7
  • https://github.com/AnnaPSQ/Slicer-SLICSegmentEditorEffect/pull/1
  • https://github.com/SenonETS/SlicerIGSpineDeformity/pull/3
  • https://github.com/AlistairMcCutcheon/SlicerMSLesionVisualiser/pull/1
  • https://github.com/Rediminds/SlicerRediMinds/pull/2
  • https://github.com/SlicerDMRI/SlicerTractParcellation/pull/4
  • https://github.com/lapdMouse/Slicer-lapdMouseBrowser/pull/1
  • https://github.com/laboratory-for-translational-medicine/SlicerTrack/pull/144
  • https://github.com/mazurowski-lab/SlicerSegmentHumanBody/pull/4
  • https://github.com/CSIM-Toolkits/SlicerDiffusionComplexityMap/pull/1
  • https://github.com/LOAMRI/Slicer-DTI-ALPS/pull/1
  • https://github.com/UWA-Medical-Physics/SlicerBatchBrainMRTumorSegmentation/pull/1
  • https://github.com/saimasafdar2021/Slicer_SurfaceModelNodesSelector/pull/1
  • https://github.com/dmolony3/SlicerFractionalMyocardialMass/pull/5
  • https://github.com/WashUMusculoskeletalCore/Slicer-MusculoskeletalAnalysis/pull/18
  • https://github.com/gongmingjun/SlicerDentureRegistration/pull/10
  • https://gitlab.kitware.com/vtk/meshing/SlicerVESPA/-/merge_requests/3

For future reference, following code was used to generate the s4ext from json:

import json
import sys
from pathlib import Path

extensions_index_dir = Path("/home/jcfr/Projects/ExtensionsIndex")
updated_extensions_index_dir = extensions_index_dir

def parse_s4ext(ext_file_path):
    """Parse a Slicer extension description file.
    :param ext_file_path: Path to a Slicer extension description file.
    """
    ext_metadata = {}
    with open(ext_file_path) as ext_file:
        for line in ext_file:
            if not line.strip() or line.startswith("#"):
                continue
            fields = [field.strip() for field in line.split(' ', 1)]
            assert(len(fields) <= 2)
            ext_metadata[fields[0]] = fields[1] if len(fields) == 2 else None
    return ext_metadata

# Collect s4ext files
s4ext_filepaths = list(extensions_index_dir.glob("*.s4ext"))

print(f"Found {len(s4ext_filepaths)} extension files (.s4ext)")

# Parse s4ext files and generate corresponding json files
for index, filepath in enumerate(s4ext_filepaths):

    metadata = parse_s4ext(filepath)
    #print("filepath", filepath)
    updated_metadata = {
        "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
        "scm_url": metadata["scmurl"],
        "scm_revision": metadata["scmrevision"],
        "build_dependencies": [] if metadata.get("depends", "NA") == "NA" else metadata["depends"].split(" "),
        "category": metadata["category"],
        "build_subdirectory": metadata["build_subdirectory"],
    }

    with open(updated_extensions_index_dir / f"{filepath.stem}.json", 'w') as fileContents:
        fileContents.write(json.dumps(updated_metadata, sort_keys=True, indent=2))
        fileContents.write("\n")

print(f"Generated {index + 1} extension files (.json)")

from pprint import pprint as pp

print(f"\nMetadata of extension #{index + 1} ({filepath.stem}):\n")
pp(updated_metadata)

jcfr avatar May 01 '24 17:05 jcfr