From a1984475b3d889dde8c28a36c2e3b931ee1e0aba Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 23 Apr 2024 00:24:12 -0400
Subject: [PATCH 1/7] ENH: Convert s4ext to json files
A script like the following was used. Note that "pre-commit run -a" was
also executed to reformat the json files afterward.
```
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
s4ext_filepaths = list(extensions_index_dir.glob("*.s4ext"))
print(f"Found {len(s4ext_filepaths)} extension files (.s4ext)")
for index, filepath in enumerate(s4ext_filepaths):
metadata = parse_s4ext(filepath)
updated_metadata = {
"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)
```
---
ABLTemporalBoneSegmentation.json | 9 ++++++
ABLTemporalBoneSegmentation.s4ext | 44 ---------------------------
AblationPlanner.json | 9 ++++++
AblationPlanner.s4ext | 44 ---------------------------
AirwaySegmentation.json | 7 +++++
AirwaySegmentation.s4ext | 44 ---------------------------
AnglePlanesExtension.json | 7 +++++
AnglePlanesExtension.s4ext | 44 ---------------------------
AnomalousFiltersExtension.json | 7 +++++
AnomalousFiltersExtension.s4ext | 44 ---------------------------
ArduinoController.json | 7 +++++
ArduinoController.s4ext | 42 --------------------------
AstmPhantomTest.json | 9 ++++++
AstmPhantomTest.s4ext | 44 ---------------------------
Auto3dgm.json | 7 +++++
Auto3dgm.s4ext | 36 ----------------------
AutomatedDentalTools.json | 10 ++++++
AutomatedDentalTools.s4ext | 46 ----------------------------
BigImage.json | 7 +++++
BigImage.s4ext | 44 ---------------------------
BoneReconstructionPlanner.json | 11 +++++++
BoneReconstructionPlanner.s4ext | 44 ---------------------------
BoneTextureExtension.json | 7 +++++
BoneTextureExtension.s4ext | 44 ---------------------------
BoneThicknessMapping.json | 7 +++++
BoneThicknessMapping.s4ext | 36 ----------------------
BrainVolumeRefinement.json | 7 +++++
BrainVolumeRefinement.s4ext | 44 ---------------------------
BreastImplantAnalyzer.json | 7 +++++
BreastImplantAnalyzer.s4ext | 44 ---------------------------
BreastUltrasoundAnalysis.json | 9 ++++++
BreastUltrasoundAnalysis.s4ext | 44 ---------------------------
Breast_DCEMRI_FTV.json | 7 +++++
Breast_DCEMRI_FTV.s4ext | 45 ---------------------------
CMFreg.json | 7 +++++
CMFreg.s4ext | 44 ---------------------------
CarreraSlice.json | 7 +++++
CarreraSlice.s4ext | 44 ---------------------------
ChangeTracker.json | 7 +++++
ChangeTracker.s4ext | 44 ---------------------------
Chest_Imaging_Platform.json | 7 +++++
Chest_Imaging_Platform.s4ext | 13 --------
CleverSeg.json | 7 +++++
CleverSeg.s4ext | 44 ---------------------------
ColocZStats.json | 7 +++++
ColocZStats.s4ext | 43 --------------------------
ConnectToSupervisely.json | 7 +++++
ConnectToSupervisely.s4ext | 44 ---------------------------
CurveMaker.json | 7 +++++
CurveMaker.s4ext | 44 ---------------------------
DCMQI.json | 7 +++++
DCMQI.s4ext | 44 ---------------------------
DICOMwebBrowser.json | 7 +++++
DICOMwebBrowser.s4ext | 44 ---------------------------
DRRGenerator.json | 7 +++++
DRRGenerator.s4ext | 44 ---------------------------
DSCMRIAnalysis.json | 7 +++++
DSCMRIAnalysis.s4ext | 44 ---------------------------
DatabaseInteractor.json | 7 +++++
DatabaseInteractor.s4ext | 44 ---------------------------
DebuggingTools.json | 7 +++++
DebuggingTools.s4ext | 44 ---------------------------
DentalSegmentator.json | 9 ++++++
DentalSegmentator.s4ext | 44 ---------------------------
DeveloperToolsForExtensions.json | 7 +++++
DeveloperToolsForExtensions.s4ext | 44 ---------------------------
DiffusionQC.json | 9 ++++++
DiffusionQC.s4ext | 27 -----------------
EasyClip.json | 7 +++++
EasyClip.s4ext | 44 ---------------------------
ErodeDilateLabel.json | 7 +++++
ErodeDilateLabel.s4ext | 44 ---------------------------
ExtraMarkups.json | 7 +++++
ExtraMarkups.s4ext | 44 ---------------------------
FiducialsToModelDistance.json | 7 +++++
FiducialsToModelDistance.s4ext | 44 ---------------------------
FilmDosimetryAnalysis.json | 9 ++++++
FilmDosimetryAnalysis.s4ext | 44 ---------------------------
FlywheelCaseIterator.json | 9 ++++++
FlywheelCaseIterator.s4ext | 44 ---------------------------
GelDosimetryAnalysis.json | 9 ++++++
GelDosimetryAnalysis.s4ext | 44 ---------------------------
GeodesicSlicer.json | 7 +++++
GeodesicSlicer.s4ext | 44 ---------------------------
GyroGuide.json | 7 +++++
GyroGuide.s4ext | 44 ---------------------------
HDBrainExtraction.json | 9 ++++++
HDBrainExtraction.s4ext | 44 ---------------------------
IDCBrowser.json | 9 ++++++
IDCBrowser.s4ext | 38 -----------------------
ImageAugmenter.json | 7 +++++
ImageAugmenter.s4ext | 42 --------------------------
ImageCompare.json | 7 +++++
ImageCompare.s4ext | 42 --------------------------
ImageMaker.json | 7 +++++
ImageMaker.s4ext | 44 ---------------------------
IntensitySegmenter.json | 7 +++++
IntensitySegmenter.s4ext | 44 ---------------------------
KidneyStoneCalculator.json | 7 +++++
KidneyStoneCalculator.s4ext | 44 ---------------------------
LanguagePacks.json | 7 +++++
LanguagePacks.s4ext | 44 ---------------------------
LungCTAnalyzer.json | 11 +++++++
LungCTAnalyzer.s4ext | 44 ---------------------------
MEMOS.json | 9 ++++++
MEMOS.s4ext | 44 ---------------------------
MHubRunner.json | 7 +++++
MHubRunner.s4ext | 43 --------------------------
MONAIAuto3DSeg.json | 9 ++++++
MONAIAuto3DSeg.s4ext | 44 ---------------------------
MONAILabel.json | 7 +++++
MONAILabel.s4ext | 44 ---------------------------
MONAIViz.json | 9 ++++++
MONAIViz.s4ext | 44 ---------------------------
MRUSLandmarking.json | 7 +++++
MRUSLandmarking.s4ext | 44 ---------------------------
MUST-segmenter.json | 9 ++++++
MUST-segmenter.s4ext | 44 ---------------------------
MarkupsToModel.json | 7 +++++
MarkupsToModel.s4ext | 44 ---------------------------
MatlabBridge.json | 9 ++++++
MatlabBridge.s4ext | 44 ---------------------------
MedialSkeleton.json | 7 +++++
MedialSkeleton.s4ext | 44 ---------------------------
MeshStatisticsExtension.json | 9 ++++++
MeshStatisticsExtension.s4ext | 44 ---------------------------
MeshToLabelMap.json | 7 +++++
MeshToLabelMap.s4ext | 44 ---------------------------
ModelClip.json | 7 +++++
ModelClip.s4ext | 44 ---------------------------
ModelCropper.json | 7 +++++
ModelCropper.s4ext | 44 ---------------------------
ModelToModelDistance.json | 7 +++++
ModelToModelDistance.s4ext | 44 ---------------------------
NNUNet.json | 10 ++++++
NNUNet.s4ext | 44 ---------------------------
NeedleFinder.json | 7 +++++
NeedleFinder.s4ext | 13 --------
NvidiaAIAssistedAnnotation.json | 7 +++++
NvidiaAIAssistedAnnotation.s4ext | 44 ---------------------------
OpenDose3D.json | 9 ++++++
OpenDose3D.s4ext | 44 ---------------------------
OrthodonticAnalysis.json | 7 +++++
OrthodonticAnalysis.s4ext | 44 ---------------------------
OsteotomyPlanner.json | 7 +++++
OsteotomyPlanner.s4ext | 44 ---------------------------
PBNRR.json | 7 +++++
PBNRR.s4ext | 44 ---------------------------
PET-IndiC.json | 7 +++++
PET-IndiC.s4ext | 44 ---------------------------
PETCPhantom.json | 7 +++++
PETCPhantom.s4ext | 44 ---------------------------
PETDICOMExtension.json | 7 +++++
PETDICOMExtension.s4ext | 44 ---------------------------
PETLiverUptakeMeasurement.json | 9 ++++++
PETLiverUptakeMeasurement.s4ext | 44 ---------------------------
PETTumorSegmentation.json | 7 +++++
PETTumorSegmentation.s4ext | 44 ---------------------------
ParallelProcessing.json | 7 +++++
ParallelProcessing.s4ext | 44 ---------------------------
PathReconstruction.json | 11 +++++++
PathReconstruction.s4ext | 44 ---------------------------
PedicleScrewSimulator.json | 7 +++++
PedicleScrewSimulator.s4ext | 44 ---------------------------
PercutaneousApproachAnalysis.json | 7 +++++
PercutaneousApproachAnalysis.s4ext | 13 --------
PerkTutor.json | 7 +++++
PerkTutor.s4ext | 44 ---------------------------
PetSpectAnalysis.json | 7 +++++
PetSpectAnalysis.s4ext | 44 ---------------------------
PickAndPaintExtension.json | 7 +++++
PickAndPaintExtension.s4ext | 44 ---------------------------
Pipelines.json | 7 +++++
Pipelines.s4ext | 44 ---------------------------
PkModeling.json | 7 +++++
PkModeling.s4ext | 44 ---------------------------
PortPlacement.json | 7 +++++
PortPlacement.s4ext | 44 ---------------------------
PyTorch.json | 7 +++++
PyTorch.s4ext | 44 ---------------------------
Q3DC.json | 9 ++++++
Q3DC.s4ext | 44 ---------------------------
QuantitativeReporting.json | 11 +++++++
QuantitativeReporting.s4ext | 44 ---------------------------
RVXLiverSegmentation.json | 12 ++++++++
RVXLiverSegmentation.s4ext | 44 ---------------------------
RVXVesselnessFilters.json | 7 +++++
RVXVesselnessFilters.s4ext | 44 ---------------------------
RawImageGuess.json | 7 +++++
RawImageGuess.s4ext | 44 ---------------------------
RegistrationQA.json | 9 ++++++
RegistrationQA.s4ext | 44 ---------------------------
ResectionPlanner.json | 9 ++++++
ResectionPlanner.s4ext | 13 --------
SNRMeasurement.json | 7 +++++
SNRMeasurement.s4ext | 44 ---------------------------
SPHARM-PDM.json | 9 ++++++
SPHARM-PDM.s4ext | 44 ---------------------------
Sandbox.json | 7 +++++
Sandbox.s4ext | 44 ---------------------------
ScatteredTransform.json | 7 +++++
ScatteredTransform.s4ext | 44 ---------------------------
Scoliosis.json | 7 +++++
Scoliosis.s4ext | 44 ---------------------------
SegmentEditorExtraEffects.json | 9 ++++++
SegmentEditorExtraEffects.s4ext | 44 ---------------------------
SegmentMesher.json | 7 +++++
SegmentMesher.s4ext | 44 ---------------------------
SegmentRegistration.json | 10 ++++++
SegmentRegistration.s4ext | 44 ---------------------------
SegmentWithSAM.json | 9 ++++++
SegmentWithSAM.s4ext | 11 -------
SegmentationAidedRegistration.json | 7 +++++
SegmentationAidedRegistration.s4ext | 44 ---------------------------
SegmentationReview.json | 7 +++++
SegmentationReview.s4ext | 36 ----------------------
SequenceRegistration.json | 9 ++++++
SequenceRegistration.s4ext | 44 ---------------------------
ShapePopulationViewer.json | 7 +++++
ShapePopulationViewer.s4ext | 44 ---------------------------
ShapeRegressionExtension.json | 7 +++++
ShapeRegressionExtension.s4ext | 44 ---------------------------
ShapeVariationAnalyzer.json | 9 ++++++
ShapeVariationAnalyzer.s4ext | 44 ---------------------------
SkeletalRepresentation.json | 7 +++++
SkeletalRepresentation.s4ext | 44 ---------------------------
SkinMouldGenerator.json | 7 +++++
SkinMouldGenerator.s4ext | 44 ---------------------------
SkullStripper.json | 7 +++++
SkullStripper.s4ext | 44 ---------------------------
SlicerAIGT.json | 10 ++++++
SlicerAIGT.s4ext | 44 ---------------------------
SlicerANTs.json | 7 +++++
SlicerANTs.s4ext | 44 ---------------------------
SlicerAutoscoperM.json | 10 ++++++
SlicerAutoscoperM.s4ext | 44 ---------------------------
SlicerAutoscroll.json | 7 +++++
SlicerAutoscroll.s4ext | 44 ---------------------------
SlicerBatchAnonymize.json | 7 +++++
SlicerBatchAnonymize.s4ext | 44 ---------------------------
SlicerBiomech.json | 9 ++++++
SlicerBiomech.s4ext | 44 ---------------------------
SlicerCBCTToothSegmentation.json | 7 +++++
SlicerCBCTToothSegmentation.s4ext | 44 ---------------------------
SlicerCMF.json | 21 +++++++++++++
SlicerCMF.s4ext | 44 ---------------------------
SlicerCaseIterator.json | 9 ++++++
SlicerCaseIterator.s4ext | 44 ---------------------------
SlicerCervicalSpine.json | 9 ++++++
SlicerCervicalSpine.s4ext | 45 ---------------------------
SlicerCochlea.json | 9 ++++++
SlicerCochlea.s4ext | 42 --------------------------
SlicerConda.json | 7 +++++
SlicerConda.s4ext | 44 ---------------------------
SlicerDMRI.json | 9 ++++++
SlicerDMRI.s4ext | 26 ----------------
SlicerDcm2nii.json | 7 +++++
SlicerDcm2nii.s4ext | 44 ---------------------------
SlicerDensityLungSegmentation.json | 7 +++++
SlicerDensityLungSegmentation.s4ext | 42 --------------------------
SlicerDentalModelSeg.json | 7 +++++
SlicerDentalModelSeg.s4ext | 47 -----------------------------
SlicerDevelopmentToolbox.json | 7 +++++
SlicerDevelopmentToolbox.s4ext | 44 ---------------------------
SlicerElastix.json | 7 +++++
SlicerElastix.s4ext | 44 ---------------------------
SlicerFab.json | 7 +++++
SlicerFab.s4ext | 44 ---------------------------
SlicerFreeSurfer.json | 7 +++++
SlicerFreeSurfer.s4ext | 44 ---------------------------
SlicerHeart.json | 9 ++++++
SlicerHeart.s4ext | 44 ---------------------------
SlicerIGSIO.json | 7 +++++
SlicerIGSIO.s4ext | 44 ---------------------------
SlicerIGT.json | 9 ++++++
SlicerIGT.s4ext | 44 ---------------------------
SlicerITKUltrasound.json | 7 +++++
SlicerITKUltrasound.s4ext | 44 ---------------------------
SlicerJupyter.json | 7 +++++
SlicerJupyter.s4ext | 44 ---------------------------
SlicerLayoutButtons.json | 9 ++++++
SlicerLayoutButtons.s4ext | 44 ---------------------------
SlicerLiver.json | 11 +++++++
SlicerLiver.s4ext | 44 ---------------------------
SlicerLookingGlass.json | 7 +++++
SlicerLookingGlass.s4ext | 44 ---------------------------
SlicerMarkupConstraints.json | 7 +++++
SlicerMarkupConstraints.s4ext | 44 ---------------------------
SlicerMorph.json | 9 ++++++
SlicerMorph.s4ext | 44 ---------------------------
SlicerNetstim.json | 10 ++++++
SlicerNetstim.s4ext | 44 ---------------------------
SlicerNeuro.json | 15 +++++++++
SlicerNeuro.s4ext | 44 ---------------------------
SlicerNeuroSegmentation.json | 9 ++++++
SlicerNeuroSegmentation.s4ext | 44 ---------------------------
SlicerOpenAnatomy.json | 7 +++++
SlicerOpenAnatomy.s4ext | 44 ---------------------------
SlicerOpenCV.json | 7 +++++
SlicerOpenCV.s4ext | 44 ---------------------------
SlicerOpenIGTLink.json | 7 +++++
SlicerOpenIGTLink.s4ext | 44 ---------------------------
SlicerProstate.json | 7 +++++
SlicerProstate.s4ext | 44 ---------------------------
SlicerProstateAblation.json | 10 ++++++
SlicerProstateAblation.s4ext | 44 ---------------------------
SlicerPythonTestRunner.json | 7 +++++
SlicerPythonTestRunner.s4ext | 44 ---------------------------
SlicerRT.json | 7 +++++
SlicerRT.s4ext | 44 ---------------------------
SlicerRadiomics.json | 7 +++++
SlicerRadiomics.s4ext | 44 ---------------------------
SlicerRegularizedFastMarching.json | 7 +++++
SlicerRegularizedFastMarching.s4ext | 44 ---------------------------
SlicerThemes.json | 7 +++++
SlicerThemes.s4ext | 44 ---------------------------
SlicerTissueSegmentation.json | 7 +++++
SlicerTissueSegmentation.s4ext | 41 -------------------------
SlicerToKiwiExporter.json | 7 +++++
SlicerToKiwiExporter.s4ext | 44 ---------------------------
SlicerVMTK.json | 9 ++++++
SlicerVMTK.s4ext | 44 ---------------------------
SlicerVirtualMouseCursor.json | 7 +++++
SlicerVirtualMouseCursor.s4ext | 44 ---------------------------
SlicerVirtualReality.json | 7 +++++
SlicerVirtualReality.s4ext | 44 ---------------------------
SlicerWMA.json | 7 +++++
SlicerWMA.s4ext | 26 ----------------
SoundControl.json | 7 +++++
SoundControl.s4ext | 44 ---------------------------
Stereotaxia.json | 7 +++++
Stereotaxia.s4ext | 44 ---------------------------
SurfaceFragmentsRegistration.json | 7 +++++
SurfaceFragmentsRegistration.s4ext | 42 --------------------------
SurfaceLearner.json | 7 +++++
SurfaceLearner.s4ext | 44 ---------------------------
SurfaceMarkup.json | 7 +++++
SurfaceMarkup.s4ext | 44 ---------------------------
SurfaceWrapSolidify.json | 7 +++++
SurfaceWrapSolidify.s4ext | 44 ---------------------------
SwissSkullStripper.json | 7 +++++
SwissSkullStripper.s4ext | 44 ---------------------------
T1Mapping.json | 7 +++++
T1Mapping.s4ext | 44 ---------------------------
T1_ECVMapping.json | 7 +++++
T1_ECVMapping.s4ext | 44 ---------------------------
T2mapping.json | 7 +++++
T2mapping.s4ext | 44 ---------------------------
TCIABrowser.json | 10 ++++++
TCIABrowser.s4ext | 44 ---------------------------
TITAN.json | 7 +++++
TITAN.s4ext | 44 ---------------------------
TOMAAT.json | 7 +++++
TOMAAT.s4ext | 44 ---------------------------
TomoSAM.json | 9 ++++++
TomoSAM.s4ext | 44 ---------------------------
TorchIO.json | 9 ++++++
TorchIO.s4ext | 44 ---------------------------
TotalSegmentator.json | 9 ++++++
TotalSegmentator.s4ext | 44 ---------------------------
TrackingErrorInspector.json | 7 +++++
TrackingErrorInspector.s4ext | 44 ---------------------------
UHFMRTools.json | 7 +++++
UHFMRTools.s4ext | 43 --------------------------
UKFTractography.json | 7 +++++
UKFTractography.s4ext | 45 ---------------------------
Ultrasound.json | 7 +++++
Ultrasound.s4ext | 44 ---------------------------
VASSTAlgorithms.json | 7 +++++
VASSTAlgorithms.s4ext | 43 --------------------------
VolumeClip.json | 7 +++++
VolumeClip.s4ext | 44 ---------------------------
XNATSlicer.json | 7 +++++
XNATSlicer.s4ext | 44 ---------------------------
ZFrameRegistration.json | 9 ++++++
ZFrameRegistration.s4ext | 44 ---------------------------
flywheel_connect.json | 7 +++++
flywheel_connect.s4ext | 43 --------------------------
iGyne.json | 7 +++++
iGyne.s4ext | 13 --------
mpReview.json | 11 +++++++
mpReview.s4ext | 44 ---------------------------
slicerPRISMRendering.json | 7 +++++
slicerPRISMRendering.s4ext | 36 ----------------------
384 files changed, 1503 insertions(+), 8157 deletions(-)
create mode 100644 ABLTemporalBoneSegmentation.json
delete mode 100644 ABLTemporalBoneSegmentation.s4ext
create mode 100644 AblationPlanner.json
delete mode 100644 AblationPlanner.s4ext
create mode 100644 AirwaySegmentation.json
delete mode 100644 AirwaySegmentation.s4ext
create mode 100644 AnglePlanesExtension.json
delete mode 100644 AnglePlanesExtension.s4ext
create mode 100644 AnomalousFiltersExtension.json
delete mode 100644 AnomalousFiltersExtension.s4ext
create mode 100644 ArduinoController.json
delete mode 100644 ArduinoController.s4ext
create mode 100644 AstmPhantomTest.json
delete mode 100644 AstmPhantomTest.s4ext
create mode 100644 Auto3dgm.json
delete mode 100644 Auto3dgm.s4ext
create mode 100644 AutomatedDentalTools.json
delete mode 100644 AutomatedDentalTools.s4ext
create mode 100644 BigImage.json
delete mode 100644 BigImage.s4ext
create mode 100644 BoneReconstructionPlanner.json
delete mode 100644 BoneReconstructionPlanner.s4ext
create mode 100644 BoneTextureExtension.json
delete mode 100644 BoneTextureExtension.s4ext
create mode 100644 BoneThicknessMapping.json
delete mode 100644 BoneThicknessMapping.s4ext
create mode 100644 BrainVolumeRefinement.json
delete mode 100644 BrainVolumeRefinement.s4ext
create mode 100644 BreastImplantAnalyzer.json
delete mode 100644 BreastImplantAnalyzer.s4ext
create mode 100644 BreastUltrasoundAnalysis.json
delete mode 100644 BreastUltrasoundAnalysis.s4ext
create mode 100644 Breast_DCEMRI_FTV.json
delete mode 100644 Breast_DCEMRI_FTV.s4ext
create mode 100644 CMFreg.json
delete mode 100644 CMFreg.s4ext
create mode 100644 CarreraSlice.json
delete mode 100644 CarreraSlice.s4ext
create mode 100644 ChangeTracker.json
delete mode 100644 ChangeTracker.s4ext
create mode 100644 Chest_Imaging_Platform.json
delete mode 100644 Chest_Imaging_Platform.s4ext
create mode 100644 CleverSeg.json
delete mode 100644 CleverSeg.s4ext
create mode 100644 ColocZStats.json
delete mode 100644 ColocZStats.s4ext
create mode 100644 ConnectToSupervisely.json
delete mode 100644 ConnectToSupervisely.s4ext
create mode 100644 CurveMaker.json
delete mode 100644 CurveMaker.s4ext
create mode 100644 DCMQI.json
delete mode 100644 DCMQI.s4ext
create mode 100644 DICOMwebBrowser.json
delete mode 100644 DICOMwebBrowser.s4ext
create mode 100644 DRRGenerator.json
delete mode 100644 DRRGenerator.s4ext
create mode 100644 DSCMRIAnalysis.json
delete mode 100644 DSCMRIAnalysis.s4ext
create mode 100644 DatabaseInteractor.json
delete mode 100644 DatabaseInteractor.s4ext
create mode 100644 DebuggingTools.json
delete mode 100644 DebuggingTools.s4ext
create mode 100644 DentalSegmentator.json
delete mode 100644 DentalSegmentator.s4ext
create mode 100644 DeveloperToolsForExtensions.json
delete mode 100644 DeveloperToolsForExtensions.s4ext
create mode 100644 DiffusionQC.json
delete mode 100644 DiffusionQC.s4ext
create mode 100644 EasyClip.json
delete mode 100644 EasyClip.s4ext
create mode 100644 ErodeDilateLabel.json
delete mode 100644 ErodeDilateLabel.s4ext
create mode 100644 ExtraMarkups.json
delete mode 100644 ExtraMarkups.s4ext
create mode 100644 FiducialsToModelDistance.json
delete mode 100644 FiducialsToModelDistance.s4ext
create mode 100644 FilmDosimetryAnalysis.json
delete mode 100644 FilmDosimetryAnalysis.s4ext
create mode 100644 FlywheelCaseIterator.json
delete mode 100644 FlywheelCaseIterator.s4ext
create mode 100644 GelDosimetryAnalysis.json
delete mode 100644 GelDosimetryAnalysis.s4ext
create mode 100644 GeodesicSlicer.json
delete mode 100644 GeodesicSlicer.s4ext
create mode 100644 GyroGuide.json
delete mode 100644 GyroGuide.s4ext
create mode 100644 HDBrainExtraction.json
delete mode 100644 HDBrainExtraction.s4ext
create mode 100644 IDCBrowser.json
delete mode 100644 IDCBrowser.s4ext
create mode 100644 ImageAugmenter.json
delete mode 100644 ImageAugmenter.s4ext
create mode 100644 ImageCompare.json
delete mode 100644 ImageCompare.s4ext
create mode 100644 ImageMaker.json
delete mode 100644 ImageMaker.s4ext
create mode 100644 IntensitySegmenter.json
delete mode 100644 IntensitySegmenter.s4ext
create mode 100644 KidneyStoneCalculator.json
delete mode 100644 KidneyStoneCalculator.s4ext
create mode 100644 LanguagePacks.json
delete mode 100644 LanguagePacks.s4ext
create mode 100644 LungCTAnalyzer.json
delete mode 100644 LungCTAnalyzer.s4ext
create mode 100644 MEMOS.json
delete mode 100644 MEMOS.s4ext
create mode 100644 MHubRunner.json
delete mode 100644 MHubRunner.s4ext
create mode 100644 MONAIAuto3DSeg.json
delete mode 100644 MONAIAuto3DSeg.s4ext
create mode 100644 MONAILabel.json
delete mode 100644 MONAILabel.s4ext
create mode 100644 MONAIViz.json
delete mode 100644 MONAIViz.s4ext
create mode 100644 MRUSLandmarking.json
delete mode 100644 MRUSLandmarking.s4ext
create mode 100644 MUST-segmenter.json
delete mode 100644 MUST-segmenter.s4ext
create mode 100644 MarkupsToModel.json
delete mode 100644 MarkupsToModel.s4ext
create mode 100644 MatlabBridge.json
delete mode 100644 MatlabBridge.s4ext
create mode 100644 MedialSkeleton.json
delete mode 100644 MedialSkeleton.s4ext
create mode 100644 MeshStatisticsExtension.json
delete mode 100644 MeshStatisticsExtension.s4ext
create mode 100644 MeshToLabelMap.json
delete mode 100644 MeshToLabelMap.s4ext
create mode 100644 ModelClip.json
delete mode 100644 ModelClip.s4ext
create mode 100644 ModelCropper.json
delete mode 100644 ModelCropper.s4ext
create mode 100644 ModelToModelDistance.json
delete mode 100644 ModelToModelDistance.s4ext
create mode 100644 NNUNet.json
delete mode 100644 NNUNet.s4ext
create mode 100644 NeedleFinder.json
delete mode 100644 NeedleFinder.s4ext
create mode 100644 NvidiaAIAssistedAnnotation.json
delete mode 100644 NvidiaAIAssistedAnnotation.s4ext
create mode 100644 OpenDose3D.json
delete mode 100644 OpenDose3D.s4ext
create mode 100644 OrthodonticAnalysis.json
delete mode 100644 OrthodonticAnalysis.s4ext
create mode 100644 OsteotomyPlanner.json
delete mode 100644 OsteotomyPlanner.s4ext
create mode 100644 PBNRR.json
delete mode 100644 PBNRR.s4ext
create mode 100644 PET-IndiC.json
delete mode 100644 PET-IndiC.s4ext
create mode 100644 PETCPhantom.json
delete mode 100644 PETCPhantom.s4ext
create mode 100644 PETDICOMExtension.json
delete mode 100644 PETDICOMExtension.s4ext
create mode 100644 PETLiverUptakeMeasurement.json
delete mode 100644 PETLiverUptakeMeasurement.s4ext
create mode 100644 PETTumorSegmentation.json
delete mode 100644 PETTumorSegmentation.s4ext
create mode 100644 ParallelProcessing.json
delete mode 100644 ParallelProcessing.s4ext
create mode 100644 PathReconstruction.json
delete mode 100644 PathReconstruction.s4ext
create mode 100644 PedicleScrewSimulator.json
delete mode 100644 PedicleScrewSimulator.s4ext
create mode 100644 PercutaneousApproachAnalysis.json
delete mode 100644 PercutaneousApproachAnalysis.s4ext
create mode 100644 PerkTutor.json
delete mode 100644 PerkTutor.s4ext
create mode 100644 PetSpectAnalysis.json
delete mode 100644 PetSpectAnalysis.s4ext
create mode 100644 PickAndPaintExtension.json
delete mode 100644 PickAndPaintExtension.s4ext
create mode 100644 Pipelines.json
delete mode 100644 Pipelines.s4ext
create mode 100644 PkModeling.json
delete mode 100644 PkModeling.s4ext
create mode 100644 PortPlacement.json
delete mode 100644 PortPlacement.s4ext
create mode 100644 PyTorch.json
delete mode 100644 PyTorch.s4ext
create mode 100644 Q3DC.json
delete mode 100644 Q3DC.s4ext
create mode 100644 QuantitativeReporting.json
delete mode 100644 QuantitativeReporting.s4ext
create mode 100644 RVXLiverSegmentation.json
delete mode 100644 RVXLiverSegmentation.s4ext
create mode 100644 RVXVesselnessFilters.json
delete mode 100644 RVXVesselnessFilters.s4ext
create mode 100644 RawImageGuess.json
delete mode 100644 RawImageGuess.s4ext
create mode 100644 RegistrationQA.json
delete mode 100644 RegistrationQA.s4ext
create mode 100644 ResectionPlanner.json
delete mode 100644 ResectionPlanner.s4ext
create mode 100644 SNRMeasurement.json
delete mode 100644 SNRMeasurement.s4ext
create mode 100644 SPHARM-PDM.json
delete mode 100644 SPHARM-PDM.s4ext
create mode 100644 Sandbox.json
delete mode 100644 Sandbox.s4ext
create mode 100644 ScatteredTransform.json
delete mode 100644 ScatteredTransform.s4ext
create mode 100644 Scoliosis.json
delete mode 100644 Scoliosis.s4ext
create mode 100644 SegmentEditorExtraEffects.json
delete mode 100644 SegmentEditorExtraEffects.s4ext
create mode 100644 SegmentMesher.json
delete mode 100644 SegmentMesher.s4ext
create mode 100644 SegmentRegistration.json
delete mode 100644 SegmentRegistration.s4ext
create mode 100644 SegmentWithSAM.json
delete mode 100644 SegmentWithSAM.s4ext
create mode 100644 SegmentationAidedRegistration.json
delete mode 100644 SegmentationAidedRegistration.s4ext
create mode 100644 SegmentationReview.json
delete mode 100644 SegmentationReview.s4ext
create mode 100644 SequenceRegistration.json
delete mode 100644 SequenceRegistration.s4ext
create mode 100644 ShapePopulationViewer.json
delete mode 100644 ShapePopulationViewer.s4ext
create mode 100644 ShapeRegressionExtension.json
delete mode 100644 ShapeRegressionExtension.s4ext
create mode 100644 ShapeVariationAnalyzer.json
delete mode 100644 ShapeVariationAnalyzer.s4ext
create mode 100644 SkeletalRepresentation.json
delete mode 100644 SkeletalRepresentation.s4ext
create mode 100644 SkinMouldGenerator.json
delete mode 100644 SkinMouldGenerator.s4ext
create mode 100644 SkullStripper.json
delete mode 100644 SkullStripper.s4ext
create mode 100644 SlicerAIGT.json
delete mode 100644 SlicerAIGT.s4ext
create mode 100644 SlicerANTs.json
delete mode 100644 SlicerANTs.s4ext
create mode 100644 SlicerAutoscoperM.json
delete mode 100644 SlicerAutoscoperM.s4ext
create mode 100644 SlicerAutoscroll.json
delete mode 100644 SlicerAutoscroll.s4ext
create mode 100644 SlicerBatchAnonymize.json
delete mode 100644 SlicerBatchAnonymize.s4ext
create mode 100644 SlicerBiomech.json
delete mode 100644 SlicerBiomech.s4ext
create mode 100644 SlicerCBCTToothSegmentation.json
delete mode 100644 SlicerCBCTToothSegmentation.s4ext
create mode 100644 SlicerCMF.json
delete mode 100644 SlicerCMF.s4ext
create mode 100644 SlicerCaseIterator.json
delete mode 100644 SlicerCaseIterator.s4ext
create mode 100644 SlicerCervicalSpine.json
delete mode 100644 SlicerCervicalSpine.s4ext
create mode 100644 SlicerCochlea.json
delete mode 100644 SlicerCochlea.s4ext
create mode 100644 SlicerConda.json
delete mode 100644 SlicerConda.s4ext
create mode 100644 SlicerDMRI.json
delete mode 100644 SlicerDMRI.s4ext
create mode 100644 SlicerDcm2nii.json
delete mode 100644 SlicerDcm2nii.s4ext
create mode 100644 SlicerDensityLungSegmentation.json
delete mode 100644 SlicerDensityLungSegmentation.s4ext
create mode 100644 SlicerDentalModelSeg.json
delete mode 100644 SlicerDentalModelSeg.s4ext
create mode 100644 SlicerDevelopmentToolbox.json
delete mode 100644 SlicerDevelopmentToolbox.s4ext
create mode 100644 SlicerElastix.json
delete mode 100644 SlicerElastix.s4ext
create mode 100644 SlicerFab.json
delete mode 100644 SlicerFab.s4ext
create mode 100644 SlicerFreeSurfer.json
delete mode 100644 SlicerFreeSurfer.s4ext
create mode 100644 SlicerHeart.json
delete mode 100644 SlicerHeart.s4ext
create mode 100644 SlicerIGSIO.json
delete mode 100644 SlicerIGSIO.s4ext
create mode 100644 SlicerIGT.json
delete mode 100644 SlicerIGT.s4ext
create mode 100644 SlicerITKUltrasound.json
delete mode 100644 SlicerITKUltrasound.s4ext
create mode 100644 SlicerJupyter.json
delete mode 100644 SlicerJupyter.s4ext
create mode 100644 SlicerLayoutButtons.json
delete mode 100644 SlicerLayoutButtons.s4ext
create mode 100644 SlicerLiver.json
delete mode 100644 SlicerLiver.s4ext
create mode 100644 SlicerLookingGlass.json
delete mode 100644 SlicerLookingGlass.s4ext
create mode 100644 SlicerMarkupConstraints.json
delete mode 100644 SlicerMarkupConstraints.s4ext
create mode 100644 SlicerMorph.json
delete mode 100644 SlicerMorph.s4ext
create mode 100644 SlicerNetstim.json
delete mode 100644 SlicerNetstim.s4ext
create mode 100644 SlicerNeuro.json
delete mode 100644 SlicerNeuro.s4ext
create mode 100644 SlicerNeuroSegmentation.json
delete mode 100644 SlicerNeuroSegmentation.s4ext
create mode 100644 SlicerOpenAnatomy.json
delete mode 100644 SlicerOpenAnatomy.s4ext
create mode 100644 SlicerOpenCV.json
delete mode 100644 SlicerOpenCV.s4ext
create mode 100644 SlicerOpenIGTLink.json
delete mode 100644 SlicerOpenIGTLink.s4ext
create mode 100644 SlicerProstate.json
delete mode 100644 SlicerProstate.s4ext
create mode 100644 SlicerProstateAblation.json
delete mode 100644 SlicerProstateAblation.s4ext
create mode 100644 SlicerPythonTestRunner.json
delete mode 100644 SlicerPythonTestRunner.s4ext
create mode 100644 SlicerRT.json
delete mode 100644 SlicerRT.s4ext
create mode 100644 SlicerRadiomics.json
delete mode 100644 SlicerRadiomics.s4ext
create mode 100644 SlicerRegularizedFastMarching.json
delete mode 100644 SlicerRegularizedFastMarching.s4ext
create mode 100644 SlicerThemes.json
delete mode 100644 SlicerThemes.s4ext
create mode 100644 SlicerTissueSegmentation.json
delete mode 100644 SlicerTissueSegmentation.s4ext
create mode 100644 SlicerToKiwiExporter.json
delete mode 100644 SlicerToKiwiExporter.s4ext
create mode 100644 SlicerVMTK.json
delete mode 100644 SlicerVMTK.s4ext
create mode 100644 SlicerVirtualMouseCursor.json
delete mode 100644 SlicerVirtualMouseCursor.s4ext
create mode 100644 SlicerVirtualReality.json
delete mode 100644 SlicerVirtualReality.s4ext
create mode 100644 SlicerWMA.json
delete mode 100644 SlicerWMA.s4ext
create mode 100644 SoundControl.json
delete mode 100644 SoundControl.s4ext
create mode 100644 Stereotaxia.json
delete mode 100644 Stereotaxia.s4ext
create mode 100644 SurfaceFragmentsRegistration.json
delete mode 100644 SurfaceFragmentsRegistration.s4ext
create mode 100644 SurfaceLearner.json
delete mode 100644 SurfaceLearner.s4ext
create mode 100644 SurfaceMarkup.json
delete mode 100644 SurfaceMarkup.s4ext
create mode 100644 SurfaceWrapSolidify.json
delete mode 100644 SurfaceWrapSolidify.s4ext
create mode 100644 SwissSkullStripper.json
delete mode 100644 SwissSkullStripper.s4ext
create mode 100644 T1Mapping.json
delete mode 100644 T1Mapping.s4ext
create mode 100644 T1_ECVMapping.json
delete mode 100644 T1_ECVMapping.s4ext
create mode 100644 T2mapping.json
delete mode 100644 T2mapping.s4ext
create mode 100644 TCIABrowser.json
delete mode 100644 TCIABrowser.s4ext
create mode 100644 TITAN.json
delete mode 100644 TITAN.s4ext
create mode 100644 TOMAAT.json
delete mode 100644 TOMAAT.s4ext
create mode 100644 TomoSAM.json
delete mode 100644 TomoSAM.s4ext
create mode 100644 TorchIO.json
delete mode 100644 TorchIO.s4ext
create mode 100644 TotalSegmentator.json
delete mode 100644 TotalSegmentator.s4ext
create mode 100644 TrackingErrorInspector.json
delete mode 100644 TrackingErrorInspector.s4ext
create mode 100644 UHFMRTools.json
delete mode 100644 UHFMRTools.s4ext
create mode 100644 UKFTractography.json
delete mode 100644 UKFTractography.s4ext
create mode 100644 Ultrasound.json
delete mode 100644 Ultrasound.s4ext
create mode 100644 VASSTAlgorithms.json
delete mode 100644 VASSTAlgorithms.s4ext
create mode 100644 VolumeClip.json
delete mode 100644 VolumeClip.s4ext
create mode 100644 XNATSlicer.json
delete mode 100644 XNATSlicer.s4ext
create mode 100644 ZFrameRegistration.json
delete mode 100644 ZFrameRegistration.s4ext
create mode 100644 flywheel_connect.json
delete mode 100644 flywheel_connect.s4ext
create mode 100644 iGyne.json
delete mode 100644 iGyne.s4ext
create mode 100644 mpReview.json
delete mode 100644 mpReview.s4ext
create mode 100644 slicerPRISMRendering.json
delete mode 100644 slicerPRISMRendering.s4ext
diff --git a/ABLTemporalBoneSegmentation.json b/ABLTemporalBoneSegmentation.json
new file mode 100644
index 000000000..13a5ed332
--- /dev/null
+++ b/ABLTemporalBoneSegmentation.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerElastix"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Otolaryngology",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Auditory-Biophysics-Lab/Slicer-ABLTemporalBoneSegmentation"
+}
diff --git a/ABLTemporalBoneSegmentation.s4ext b/ABLTemporalBoneSegmentation.s4ext
deleted file mode 100644
index f4f3bc83a..000000000
--- a/ABLTemporalBoneSegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Auditory-Biophysics-Lab/Slicer-ABLTemporalBoneSegmentation
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerElastix
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/Auditory-Biophysics-Lab/Slicer-ABLTemporalBoneSegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Evan Simpson (ABL at UWO), Ben Connors (ABL at UWO)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Otolaryngology
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Auditory-Biophysics-Lab/Slicer-ABLTemporalBoneSegmentation/master/ABLTemporalBoneSegmentationModule/Resources/Icons/ABLTemporalBoneSegmentationModule.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Temporal bone deep-learning segmentation and pre-processing module.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Auditory-Biophysics-Lab/Slicer-ABLTemporalBoneSegmentation/master/Images/main.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AblationPlanner.json b/AblationPlanner.json
new file mode 100644
index 000000000..b248f9871
--- /dev/null
+++ b/AblationPlanner.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "ModelToModelDistance"
+ ],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/naterex23/SlicerAblationPlanner"
+}
diff --git a/AblationPlanner.s4ext b/AblationPlanner.s4ext
deleted file mode 100644
index b0e537d19..000000000
--- a/AblationPlanner.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/naterex23/SlicerAblationPlanner
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends ModelToModelDistance
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/naterex23/SlicerAblationPlanner
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Nathaniel Rex (Brown University), Scott Collins (Rhode Island Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/naterex23/SlicerAblationPlanner/raw/main/AblationPlanner/Resources/Icons/AblationPlanner.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension enables the user to place virtual ablation profiles and evaluate a theoretical margins associated with these profiles.
-
-# Space separated list of urls
-screenshoturls https://github.com/naterex23/SlicerAblationPlanner/raw/main/Screenshots/combined_probes.png https://github.com/naterex23/SlicerAblationPlanner/raw/main/Screenshots/fiducial_placement.png https://github.com/naterex23/SlicerAblationPlanner/raw/main/Screenshots/margin_colors.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AirwaySegmentation.json b/AirwaySegmentation.json
new file mode 100644
index 000000000..2c69da79b
--- /dev/null
+++ b/AirwaySegmentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Slicer/SlicerAirwaySegmentation"
+}
diff --git a/AirwaySegmentation.s4ext b/AirwaySegmentation.s4ext
deleted file mode 100644
index 186e9a0b9..000000000
--- a/AirwaySegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerAirwaySegmentation
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Slicer/SlicerAirwaySegmentation#airway-segmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Pietro Nardelli (University College Cork), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Slicer/SlicerAirwaySegmentation/master/AirwaySegmentation-ICON.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Automated airway segmentation in chest CT images
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Slicer/SlicerAirwaySegmentation/master/Screenshot01.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AnglePlanesExtension.json b/AnglePlanesExtension.json
new file mode 100644
index 000000000..f5cc906bb
--- /dev/null
+++ b/AnglePlanesExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/AnglePlanes-Extension.git"
+}
diff --git a/AnglePlanesExtension.s4ext b/AnglePlanesExtension.s4ext
deleted file mode 100644
index 3e1d7a6dc..000000000
--- a/AnglePlanesExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/AnglePlanes-Extension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnglePlanes
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Julia Lopinto (University of Michigan), Jean-Baptiste Vimort (University of Michigan)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/AnglePlanes-Extension/master/AnglePlanes.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This Module is used to calculate the angle between two planes by using the normals. The user gets the choice to use two planes which are already implemented on Slicer or they can define a plane by using landmarks (at least 3 landmarks). Plane can also be saved to be reused for other models.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/b/ba/Interface_AnglePlanes.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AnomalousFiltersExtension.json b/AnomalousFiltersExtension.json
new file mode 100644
index 000000000..98abf083f
--- /dev/null
+++ b/AnomalousFiltersExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Filtering",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/AnomalousFiltersExtension.git"
+}
diff --git a/AnomalousFiltersExtension.s4ext b/AnomalousFiltersExtension.s4ext
deleted file mode 100644
index f11375ce2..000000000
--- a/AnomalousFiltersExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/AnomalousFiltersExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnomalousFilters
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Antonio Carlos Senra Filho (University of Sao Paulo), Luiz Otavio Murta Junior (University of Sao Paulo)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/8/89/AnomalousDiffusionExtension-logo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension aims to provide several approaches in order to apply the anomalous spatial filters on medical images. The methods provided here are numerical solution of the generalized anomalous diffusion proposed by Constantino Tsallis, which, in other words, provide a numerical solution to the porous media equation (Fokker-Planck anomalous heat equation). At the moment, the Modules available are suppose to be used on MRI volumes namely T1, T2, T2-FLAIR and PD weighted images, and diffusion weighted images (DWI and DTI). Future developments will add new functionalities in order to attenuate image noise in other imaging modalities. More details could be found in the wiki page.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/6/64/MRI_raw.png https://www.slicer.org/slicerWiki/images/e/e8/MRI_AAD.png https://www.slicer.org/slicerWiki/images/0/0d/MRI_IAD.png https://www.slicer.org/slicerWiki/images/4/40/DTI_FA_raw.png https://www.slicer.org/slicerWiki/images/7/7c/DTI_FA_AAD.png https://www.slicer.org/slicerWiki/images/a/a0/Tractography_AAD.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ArduinoController.json b/ArduinoController.json
new file mode 100644
index 000000000..40202f885
--- /dev/null
+++ b/ArduinoController.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/pzaffino/SlicerArduinoController.git"
+}
diff --git a/ArduinoController.s4ext b/ArduinoController.s4ext
deleted file mode 100644
index df081375c..000000000
--- a/ArduinoController.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/pzaffino/SlicerArduinoController.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/w/index.php/Documentation/Nightly/Extensions/ArduinoController
-
-contributors Paolo Zaffino (Magna Graecia University of Catanzaro, Italy), Domenico Leuzzi (Magna Graecia University of Catanzaro, Italy), Virgilio Sabatino (Magna Graecia University of Catanzaro, Italy), Andras Lasso (PerkLab, Queen's), Maria Francesca Spadea (Magna Graecia University of Catanzaro, Italy)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/pzaffino/SlicerArduinoController/master/ArduinoController.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status alpha
-
-# One line stating what the module does
-description This extension links Slicer and Arduino. Connection is managed and on top of this additional module can be implemented.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/pzaffino/SlicerArduinoController/master/ArduinoController_screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AstmPhantomTest.json b/AstmPhantomTest.json
new file mode 100644
index 000000000..168f40541
--- /dev/null
+++ b/AstmPhantomTest.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerOpenIGTLink"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Atracsys/SlicerAstmPhantomTest.git"
+}
diff --git a/AstmPhantomTest.s4ext b/AstmPhantomTest.s4ext
deleted file mode 100644
index 749117af9..000000000
--- a/AstmPhantomTest.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Atracsys/SlicerAstmPhantomTest.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerOpenIGTLink
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.atracsys-measurement.com/astm/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sylvain Bernhardt (Atracsys LLC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Atracsys/SlicerAstmPhantomTest/master/SlicerAstmPhantomTest.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension for 3D Slicer is an assistant in performing the accuracy test of a tracking system as described in the ASTM standard F2554.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Atracsys/SlicerAstmPhantomTest/master/screenshots/screenshot1.png https://raw.githubusercontent.com/Atracsys/SlicerAstmPhantomTest/master/screenshots/screenshot2.png https://raw.githubusercontent.com/Atracsys/SlicerAstmPhantomTest/master/screenshots/screenshot3.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Auto3dgm.json b/Auto3dgm.json
new file mode 100644
index 000000000..4d1915a00
--- /dev/null
+++ b/Auto3dgm.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Auto3dgm",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ToothAndClaw/SlicerAuto3dgm"
+}
diff --git a/Auto3dgm.s4ext b/Auto3dgm.s4ext
deleted file mode 100644
index f387487eb..000000000
--- a/Auto3dgm.s4ext
+++ /dev/null
@@ -1,36 +0,0 @@
-# This is source code manager
-scm git
-scmurl https://github.com/ToothAndClaw/SlicerAuto3dgm
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://toothandclaw.github.io
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Doug M. Boyer (Duke University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Auto3dgm
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ToothAndClaw/SlicerAuto3dgm/master/Auto3dgmLogoSmall.png
-
-# Give people an idea what to expect from this code
-status beta
-
-# One line stating what the module does
-description Auto3dgm allows for comparative analysis of 3D digital models representing biological surfaces. Unlike other three-dimensional geometric morphometric (3DGM) methods this software uses a fully automated procedure for placing landmarks on the surfaces. This allows for the alignment of surfaces followed by measuring distance between surfaces with minimal user intervention.
The goal of this NSF funded project is to extend Auto3dgm to open source software platform and make it more user-friendly to a larger scientific community. Towards this goal, we developed the Auto3dgm module in 3D Slicer, an open source software platform for medical image informatics, image processing, and three-dimensional visualization. The module enables scientists to perform Auto3dgm on a collection of shapes effectively within 3D Slicer. The package also alllows users to visualize and save the aligned results to local machines for downstream analysis.
This project is supported by a NSF Advances in Biological Informatics Collaborative grant to Murat Maga (ABI-1759883), Adam Summers (ABI-1759637) and Doug Boyer (ABI-1759839).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ToothAndClaw/SlicerAuto3dgm/master/Auto3dgmScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/AutomatedDentalTools.json b/AutomatedDentalTools.json
new file mode 100644
index 000000000..3c60f32c3
--- /dev/null
+++ b/AutomatedDentalTools.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "SlicerDentalModelSeg",
+ "SlicerConda"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/SlicerAutomatedDentalTools.git"
+}
diff --git a/AutomatedDentalTools.s4ext b/AutomatedDentalTools.s4ext
deleted file mode 100644
index c13dfa6f3..000000000
--- a/AutomatedDentalTools.s4ext
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/SlicerAutomatedDentalTools.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDentalModelSeg SlicerConda
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-homepage https://github.com/DCBIA-OrthoLab/SlicerAutomatedDentalTools#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Maxime Gillot (University of Michigan), Baptiste Baquero (UoM), Juan Carlos Prieto (University of North Carolina), Nathan Hutin (UoM), Luc Anchling (UoM), Jeanne Claret (UoM)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerAutomatedDentalTools/main/SlicerAutomaticTools.png
-
-
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension will allow clinicians to perform automatic CBCT scan segmentation as well as automatic lamndmark identification in CBCT and IOS using machine learning tools.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerAutomatedDentalTools/main/ADT-exemple.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BigImage.json b/BigImage.json
new file mode 100644
index 000000000..69486aa54
--- /dev/null
+++ b/BigImage.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "BigImage",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/gaoyi/SlicerBigImage.git"
+}
diff --git a/BigImage.s4ext b/BigImage.s4ext
deleted file mode 100644
index 8c1fca65e..000000000
--- a/BigImage.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/gaoyi/SlicerBigImage.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://slicerscope.github.io
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Yi Gao (Shenzhen University), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category BigImage
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/gaoyi/SlicerBigImage/main/SlicerBigImage.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description BigImage is the extension for viewing and analyzing big (>1GB) microscopy and other images.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/gaoyi/SlicerBigImage/main/Screenshots/1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BoneReconstructionPlanner.json b/BoneReconstructionPlanner.json
new file mode 100644
index 000000000..7ea4def43
--- /dev/null
+++ b/BoneReconstructionPlanner.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "SurfaceWrapSolidify",
+ "MarkupsToModel",
+ "Sandbox"
+ ],
+ "build_subdirectory": ".",
+ "category": "Planning",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/SlicerIGT/SlicerBoneReconstructionPlanner.git"
+}
diff --git a/BoneReconstructionPlanner.s4ext b/BoneReconstructionPlanner.s4ext
deleted file mode 100644
index 8519d2167..000000000
--- a/BoneReconstructionPlanner.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerBoneReconstructionPlanner.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SurfaceWrapSolidify MarkupsToModel Sandbox
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/SlicerBoneReconstructionPlanner#bone-reconstruction-planner
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors MSc. Mauro I. Dominguez, PhD. Andras Lasso (PerkLab), Dr. Manjula Herath
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Planning
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerIGT/SlicerBoneReconstructionPlanner/main/BoneReconstructionPlanner.jpg
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description A extension for virtual surgical planning of mandibular reconstruction with vascularized fibula free flap and generation of patient-specific surgical guides.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerIGT/SlicerBoneReconstructionPlanner/main/BoneReconstructionPlanner/Resources/Pictures/screenshotPlanning.png https://raw.githubusercontent.com/SlicerIGT/SlicerBoneReconstructionPlanner/main/BoneReconstructionPlanner/Resources/Pictures/screenshotPatientSpecificSurgicalGuides.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BoneTextureExtension.json b/BoneTextureExtension.json
new file mode 100644
index 000000000..ecab9d650
--- /dev/null
+++ b/BoneTextureExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Kitware/BoneTextureExtension.git"
+}
diff --git a/BoneTextureExtension.s4ext b/BoneTextureExtension.s4ext
deleted file mode 100644
index 6f4016286..000000000
--- a/BoneTextureExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Kitware/BoneTextureExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/BoneTextureExtension
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jean-Baptiste VIMORT (Kitware Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/w/img_auth.php/0/09/Logo-BoneTextureExtension.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extensions contain several modules that can be used to compute feature maps of N-Dimensional images using well-known texture analysis methods. Key Features: 8 coocurrence textural features: energy, entropy, correlation, inertia, cluster Shade... / 10 run length textural features: run length emphasis, grey level non uniformity, run length non uniformity, low grey level long run emphasis... / Input configurable parameters: locality of the texture, offset directions for co-ocurrence and run length computation, the number of bins for the intensity histograms, and the intensity range or the range of run lengths.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/w/img_auth.php/7/70/BoneTextureExtension-Slicer.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BoneThicknessMapping.json b/BoneThicknessMapping.json
new file mode 100644
index 000000000..e44b89e73
--- /dev/null
+++ b/BoneThicknessMapping.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Auditory-Biophysics-Lab/SlicerBoneThicknessMappingExtension"
+}
diff --git a/BoneThicknessMapping.s4ext b/BoneThicknessMapping.s4ext
deleted file mode 100644
index 2ca19b511..000000000
--- a/BoneThicknessMapping.s4ext
+++ /dev/null
@@ -1,36 +0,0 @@
-# This is source code manager
-scm git
-scmurl https://github.com/Auditory-Biophysics-Lab/SlicerBoneThicknessMappingExtension
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Auditory-Biophysics-Lab/SlicerBoneThicknessMappingExtension
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Evan Simpson (HML & SKA Lab, Western University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Auditory-Biophysics-Lab/SlicerBoneThicknessMappingExtension/master/BoneThicknessMapping.png
-
-# Give people an idea what to expect from this code
-status beta
-
-# One line stating what the module does
-description 3D Slicer extension that calculates the bone thickness of a volume using VTK ray-casting.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Auditory-Biophysics-Lab/SlicerBoneThicknessMappingExtension/master/Images/general_screenshot.png https://raw.githubusercontent.com/Auditory-Biophysics-Lab/Slicer-BoneThicknessMapping/master/Images/complete.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BrainVolumeRefinement.json b/BrainVolumeRefinement.json
new file mode 100644
index 000000000..ac47f0005
--- /dev/null
+++ b/BrainVolumeRefinement.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/jamesobutler/SlicerBrainVolumeRefinement.git"
+}
diff --git a/BrainVolumeRefinement.s4ext b/BrainVolumeRefinement.s4ext
deleted file mode 100644
index 8814a5e9d..000000000
--- a/BrainVolumeRefinement.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/jamesobutler/SlicerBrainVolumeRefinement.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/BrainVolumeRefinement
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Antonio Carlos da S. Senra Filho, Fabricio H. Simozo, Luiz Otavio Murta Junior (University of Sao Paulo)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/CSIM-Toolkits/SlicerBrainVolumeRefinement/master/BrainVolumeRefinement.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension offers algorithms to performs brain volume refinements due to previous image processing that results on small data artifacts. For instance, the BVeR method is designed to correct small oversegmentation found at brain extraction methods such as FSL-BET, FreeSurfer, AFNI, ROBEX and others.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/4/47/T1-FS.png https://www.slicer.org/slicerWiki/images/f/f4/T1-FS-BVeR.png https://www.slicer.org/slicerWiki/images/2/2f/BVeR-3D-Anterior.png https://www.slicer.org/slicerWiki/images/2/29/BVeR-3D-Lateral.png https://www.slicer.org/slicerWiki/images/e/ee/BVeR-3D-FreeView.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BreastImplantAnalyzer.json b/BreastImplantAnalyzer.json
new file mode 100644
index 000000000..1d002a4f4
--- /dev/null
+++ b/BreastImplantAnalyzer.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerBreastImplantAnalyzer.git"
+}
diff --git a/BreastImplantAnalyzer.s4ext b/BreastImplantAnalyzer.s4ext
deleted file mode 100644
index f55d6d736..000000000
--- a/BreastImplantAnalyzer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerBreastImplantAnalyzer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerBreastImplantAnalyzer#breastimplantanalyzer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lance Levine (University of Miami Miller School of Medicine), Marc Levine (Penn State University College of Medicine), Dr. Wrood Kassira (University of Miami Department of Plastic & Reconstructive Surgery)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lancelevine/SlicerBreastImplantAnalyzer/master/BreastImplantAnalyzer.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows the user to calculate the volume of a breast implant from breast MRI data with minimal user input.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lancelevine/SlicerBreastImplantAnalyzer/master/Screenshot01.PNG
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/BreastUltrasoundAnalysis.json b/BreastUltrasoundAnalysis.json
new file mode 100644
index 000000000..c4270ac5c
--- /dev/null
+++ b/BreastUltrasoundAnalysis.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ZhyBrian/SlicerBreastUltrasoundAnalysis.git"
+}
diff --git a/BreastUltrasoundAnalysis.s4ext b/BreastUltrasoundAnalysis.s4ext
deleted file mode 100644
index 6d9ef9832..000000000
--- a/BreastUltrasoundAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/ZhyBrian/SlicerBreastUltrasoundAnalysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/ZhyBrian/SlicerBreastUltrasoundAnalysis
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Xiaojun Chen, Yi Zhang (Shanghai Jiao Tong University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ZhyBrian/SlicerBreastUltrasoundAnalysis/master/BUS_Diagnosis.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This module is designed to help physicians diagnose intramammary lesions based on breast ultrasound images with nodules.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ZhyBrian/SlicerBreastUltrasoundAnalysis/master/Screenshots/overview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Breast_DCEMRI_FTV.json b/Breast_DCEMRI_FTV.json
new file mode 100644
index 000000000..23b904a7f
--- /dev/null
+++ b/Breast_DCEMRI_FTV.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "FTV Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/rnadkarni2/SlicerBreast_DCEMRI_FTV"
+}
diff --git a/Breast_DCEMRI_FTV.s4ext b/Breast_DCEMRI_FTV.s4ext
deleted file mode 100644
index 2da0e9890..000000000
--- a/Breast_DCEMRI_FTV.s4ext
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/rnadkarni2/SlicerBreast_DCEMRI_FTV
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/rnadkarni2/SlicerBreast_DCEMRI_FTV
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Rohan Nadkarni (UCSF Breast Imaging Research Group), David Newitt (UCSF Breast Imaging Research Group)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category FTV Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/rnadkarni2/SlicerBreast_DCEMRI_FTV/master/Breast_DCEMRI_FTV.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension contains both of the modules needed to compute functional tumor volume (FTV) from a dynamic contrast-enhanced magnetic resonance imaging (DCE-MRI) exam of a breast cancer patient. The current version of this extension is intended for use on bilateral breast MR exams with axial slices.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/rnadkarni2/SlicerBreast_DCEMRI_FTV/master/Module1Screenshot.png https://raw.githubusercontent.com/rnadkarni2/SlicerBreast_DCEMRI_FTV/master/Module2Screenshot.png
-
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/CMFreg.json b/CMFreg.json
new file mode 100644
index 000000000..71d54ab06
--- /dev/null
+++ b/CMFreg.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/CMFreg.git"
+}
diff --git a/CMFreg.s4ext b/CMFreg.s4ext
deleted file mode 100644
index 359c76165..000000000
--- a/CMFreg.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/CMFreg.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/4.4/Extensions/CMFreg
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Vinicius Boen (Univ of Michigan), Manson Winsauer (UNC), Jean-Baptiste Vimort (Univ of Michigan)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/b/bc/BaselineFollowupSCANRegisteredCMFreg2.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Tools package for the cranio-maxillofacial registration
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/1/15/BaselineFollowupSCANCMFreg.png https://www.slicer.org/slicerWiki/images/0/0b/GrowingInterface.png https://www.slicer.org/slicerWiki/images/4/4a/InputSegToExtractionCMFreg.png https://www.slicer.org/slicerWiki/images/4/46/BaselineSegmentationMaskCMFreg.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/CarreraSlice.json b/CarreraSlice.json
new file mode 100644
index 000000000..1e83a9ad2
--- /dev/null
+++ b/CarreraSlice.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ikolesov/CarreraSlice.git"
+}
diff --git a/CarreraSlice.s4ext b/CarreraSlice.s4ext
deleted file mode 100644
index c80faa6c3..000000000
--- a/CarreraSlice.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/ikolesov/CarreraSlice.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Ivan Kolesov, Liangjia Zhu, Allen Tannenbaum (Stony Brook University), Peter Karasev, Patricio Vela (GT), Yi Gao (UAB), Karl Fritscher (BWH & MGH), Steve Pieper (Isomics)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://wiki.slicer.org/slicerWiki/images/2/2a/CarreraSliceEffect.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description This extension provides an interactive 3D segmentation tool.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/thumb/2/2c/DrawLabel.png/500px-DrawLabel.png https://www.na-mic.org/w/img_auth.php/d/d0/TendonSegment.png https://www.na-mic.org/w/img_auth.php/b/b8/FiducialSnapshotX.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ChangeTracker.json b/ChangeTracker.json
new file mode 100644
index 000000000..0f2ec29d9
--- /dev/null
+++ b/ChangeTracker.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Wizards",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/fedorov/ChangeTrackerPy.git"
+}
diff --git a/ChangeTracker.s4ext b/ChangeTracker.s4ext
deleted file mode 100644
index f8015f864..000000000
--- a/ChangeTracker.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/fedorov/ChangeTrackerPy.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ChangeTracker
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (SPL), Kilian Pohl (SPL), Peter Black (BWH), Jean-Christophe Fillion-Robin (Kitware), Ron Kikinis (SPL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Wizards
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/b/b9/ChangeTracker_logo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Work in progress
-
-# One line stating what the module does
-description ChangeTracker is a software tool for quantification of the subtle changes in pathology. The module provides a workflow pipeline that combines user input with the medical data. As a result we provide quantitative volumetric measurements of growth/shrinkage together with the volume rendering of the tumor and color-coded visualization of the tumor growth/shrinkage.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/8e/Slicer4_ChangeTracker_Ad.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Chest_Imaging_Platform.json b/Chest_Imaging_Platform.json
new file mode 100644
index 000000000..4b3366dfe
--- /dev/null
+++ b/Chest_Imaging_Platform.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Chest Imaging Platform",
+ "scm_revision": "develop",
+ "scm_url": "https://github.com/acil-bwh/SlicerCIP"
+}
diff --git a/Chest_Imaging_Platform.s4ext b/Chest_Imaging_Platform.s4ext
deleted file mode 100644
index 748ed98d4..000000000
--- a/Chest_Imaging_Platform.s4ext
+++ /dev/null
@@ -1,13 +0,0 @@
-build_subdirectory inner-build
-category Chest Imaging Platform
-contributors Applied Chest Imaging Laboratory, Brigham and Women's Hospital
-depends NA
-description Chest Imaging Platform is an extension for quantitative CT imaging biomarkers for lung diseases. This work is funded by the National Heart, Lung, And Blood Institute of the National Institutes of Health under Award Number R01HL116931. The content is solely the responsibility of the authors and does not necessarily represent the official views of the National Institutes of Health.
-enabled 1
-homepage https://chestimagingplatform.org/
-iconurl https://raw.githubusercontent.com/acil-bwh/SlicerCIP/master/Resources/SlicerCIPLogo.png
-scm git
-scmrevision develop
-scmurl https://github.com/acil-bwh/SlicerCIP
-screenshoturls https://raw.githubusercontent.com/acil-bwh/SlicerCIP/master/Resources/Screenshot1.png https://raw.githubusercontent.com/acil-bwh/SlicerCIP/master/Resources/Screenshot2.png
-status Alpha
diff --git a/CleverSeg.json b/CleverSeg.json
new file mode 100644
index 000000000..eaaafdab7
--- /dev/null
+++ b/CleverSeg.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerCleverSegmentation.git"
+}
diff --git a/CleverSeg.s4ext b/CleverSeg.s4ext
deleted file mode 100644
index aefc433b3..000000000
--- a/CleverSeg.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerCleverSegmentation.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerCleverSegmentation#cleversegmentation
-
-# Jonathan Ramos ([University of São Paulo - USP, ] ICMC)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jonathan Ramos (ICMC, University of São Paulo - USP)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerCleverSegmentation/master/CleverSegmentation/Resources/Icons/CleverSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description This is the implementation of the CleverSeg method that supports multi-label segmentations
-
-# Space separated list of urls
-screenshoturls https://user-images.githubusercontent.com/3834596/66679138-d7dc1700-ec43-11e9-8c36-51976a1121d3.png https://user-images.githubusercontent.com/3834596/66679174-f215f500-ec43-11e9-84f1-85f8b5c4d568.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ColocZStats.json b/ColocZStats.json
new file mode 100644
index 000000000..629104e7e
--- /dev/null
+++ b/ColocZStats.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/ChenXiang96/SlicerColoc-Z-Stats.git"
+}
diff --git a/ColocZStats.s4ext b/ColocZStats.s4ext
deleted file mode 100644
index 121106b8a..000000000
--- a/ColocZStats.s4ext
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/ChenXiang96/SlicerColoc-Z-Stats.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/ChenXiang96/SlicerColoc-Z-Stats
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Xiang Chen (Memorial University of Newfoundland), Oscar Meruvia-Pastor (Memorial University of Newfoundland), Touati Benoukraf (Memorial University of Newfoundland)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ChenXiang96/SlicerColoc-Z-Stats/main/ColocZStats.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This is an extension for computing the proteins' colocalization (Spatial overlap between different channels) metrics of multi-channel Z-stack images.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ChenXiang96/SlicerColoc-Z-Stats/main/Images/Screenshots.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ConnectToSupervisely.json b/ConnectToSupervisely.json
new file mode 100644
index 000000000..e2b4a2153
--- /dev/null
+++ b/ConnectToSupervisely.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Supervisely",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/supervisely-ecosystem/SlicerConnectToSupervisely"
+}
diff --git a/ConnectToSupervisely.s4ext b/ConnectToSupervisely.s4ext
deleted file mode 100644
index 0273d05a4..000000000
--- a/ConnectToSupervisely.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/supervisely-ecosystem/SlicerConnectToSupervisely
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/supervisely-ecosystem/SlicerConnectToSupervisely
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Siarhei Sych (Supervisely)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Supervisely
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/supervisely-ecosystem/SlicerConnectToSupervisely/master/Images/icon_png_128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides seamless integration between the 3D Slicer and Supervisely Computer Vision platform, empowering users to efficiently work with Labeling Jobs directly within the familiar 3D Slicer environment. Users can harness the full power of 3D visualization and annotation tools to enhance the labeling process for volumetric data, streamline annotation creation, and facilitate reviews. https://supervisely.com/
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/supervisely-ecosystem/SlicerConnectToSupervisely/master/Images/annotation_process_slicer.png https://raw.githubusercontent.com/supervisely-ecosystem/SlicerConnectToSupervisely/master/Images/review_process_slicer.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/CurveMaker.json b/CurveMaker.json
new file mode 100644
index 000000000..83538dd48
--- /dev/null
+++ b/CurveMaker.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/tokjun/CurveMaker"
+}
diff --git a/CurveMaker.s4ext b/CurveMaker.s4ext
deleted file mode 100644
index 760508ba1..000000000
--- a/CurveMaker.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/tokjun/CurveMaker
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/CurveMaker
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Junichi Tokuda (BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/b/b7/CurveMakerIcon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This is a module to generate a curve based on a list of fiducial points.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/0/0b/Slicer4-CurveMaker-GUI.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DCMQI.json b/DCMQI.json
new file mode 100644
index 000000000..5533546e8
--- /dev/null
+++ b/DCMQI.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "dcmqi-build",
+ "category": "DICOM",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/dcmqi.git"
+}
diff --git a/DCMQI.s4ext b/DCMQI.s4ext
deleted file mode 100644
index 82b5a92b0..000000000
--- a/DCMQI.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/dcmqi.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory dcmqi-build
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/DCMQI
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (BWH, SPL), Christian Herz (BWH, SPL), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category DICOM
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/dcmqi/master/dcmqi.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description dcmqi (DICOM (dcm) for Quantitative Imaging (qi)) is a collection of libraries and command line tools with minimum dependencies to support standardized communication of quantitative image analysis research data using DICOM standard.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/QIICR/dcmqi/master/Design/DataFlow-001.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DICOMwebBrowser.json b/DICOMwebBrowser.json
new file mode 100644
index 000000000..78e3a21d9
--- /dev/null
+++ b/DICOMwebBrowser.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/lassoan/SlicerDICOMwebBrowser"
+}
diff --git a/DICOMwebBrowser.s4ext b/DICOMwebBrowser.s4ext
deleted file mode 100644
index 2c5594679..000000000
--- a/DICOMwebBrowser.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerDICOMwebBrowser
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerDICOMwebBrowser#dicomwebbrowser
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's), Alireza Mehrtash (Brigham and Women's Hospital), Andrey Fedorov (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerDICOMwebBrowser/main/DICOMwebBrowser.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Browse and download data from DICOMweb servers into 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerDICOMwebBrowser/main/Docs/Screenshot01.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DRRGenerator.json b/DRRGenerator.json
new file mode 100644
index 000000000..24e29a7a7
--- /dev/null
+++ b/DRRGenerator.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Filtering",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerDRRGenerator.git"
+}
diff --git a/DRRGenerator.s4ext b/DRRGenerator.s4ext
deleted file mode 100644
index 9f7fb5224..000000000
--- a/DRRGenerator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerDRRGenerator.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerDRRGenerator#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lance Levine
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerDRRGenerator/master/DRRGenerator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows the user to generate DRRs via a highly customizable GUI
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DSCMRIAnalysis.json b/DSCMRIAnalysis.json
new file mode 100644
index 000000000..eb28c52b6
--- /dev/null
+++ b/DSCMRIAnalysis.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/DSC_Analysis.git"
+}
diff --git a/DSCMRIAnalysis.s4ext b/DSCMRIAnalysis.s4ext
deleted file mode 100644
index 27847bc81..000000000
--- a/DSCMRIAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/DSC_Analysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DSC_MRI_Analysis
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrew Beers (MGH), Jayashree Kalpathy-Cramer (MGH), Xiao Da (MGH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://slicer.org/slicerWiki/images/9/92/DSC_logo_Resized.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description Analysis of Dynamic Susceptibility Contrast (DSC) MRI.
-
-# Space separated list of urls
-screenshoturls https://slicer.org/slicerWiki/images/e/e8/DSC_GUI_V0.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DatabaseInteractor.json b/DatabaseInteractor.json
new file mode 100644
index 000000000..142862ad6
--- /dev/null
+++ b/DatabaseInteractor.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Web System Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/DatabaseInteractorExtension.git"
+}
diff --git a/DatabaseInteractor.s4ext b/DatabaseInteractor.s4ext
deleted file mode 100644
index 22f33db04..000000000
--- a/DatabaseInteractor.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/DatabaseInteractorExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/DatabaseInteractor
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Clement Mirabel (University of Michigan), Juan Carlos Prieto (UNC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Web System Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/DatabaseInteractorExtension/master/DatabaseInteractor.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension can interact with online data in a database and local folders.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/DCBIA-OrthoLab/DatabaseInteractorExtension/master/FullView_DatabaseInteractor.png https://raw.githubusercontent.com/DCBIA-OrthoLab/DatabaseInteractorExtension/master/DatabaseInteractor_Interface.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DebuggingTools.json b/DebuggingTools.json
new file mode 100644
index 000000000..f9c616507
--- /dev/null
+++ b/DebuggingTools.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerRt/SlicerDebuggingTools.git"
+}
diff --git a/DebuggingTools.s4ext b/DebuggingTools.s4ext
deleted file mode 100644
index 21853320d..000000000
--- a/DebuggingTools.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerRt/SlicerDebuggingTools.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/DebuggingTools
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University), Mikael Brudfors (Laboratorio de Imagen Medica, Hospital Gregorio Maranon - http://image.hggm.es/)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerRt/SlicerDebuggingTools/master/DebuggingTools.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension contains various tools useful for developing and debugging modules. Includes a tool for connecting Slicer to remote visual debugger for Python scripts using PyDev (http://pydev.org/) and node update performance statistics
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/f/f2/PyDevRemoteDebugSlicer.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DentalSegmentator.json b/DentalSegmentator.json
new file mode 100644
index 000000000..6de192f05
--- /dev/null
+++ b/DentalSegmentator.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "NNUNet"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/gaudot/SlicerDentalSegmentator"
+}
diff --git a/DentalSegmentator.s4ext b/DentalSegmentator.s4ext
deleted file mode 100644
index 8465ad0e9..000000000
--- a/DentalSegmentator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/gaudot/SlicerDentalSegmentator
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NNUNet
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/gaudot/SlicerDentalSegmentator
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Gauthier DOT (AP-HP), Laurent GAJNY (ENSAM), Roman FENIOUX (KITWARE SAS), Thibault PELLETIER (KITWARE SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/gaudot/SlicerDentalSegmentator/raw/main/DentalSegmentator/Resources/Icons/DentalSegmentator_full_icon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Fully automatic AI segmentation tool for Dental CT and CBCT scans based on DentalSegmentator nnU-Net model.
-
-# Space separated list of urls
-screenshoturls https://github.com/gaudot/SlicerDentalSegmentator/raw/main/Screenshots/1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DeveloperToolsForExtensions.json b/DeveloperToolsForExtensions.json
new file mode 100644
index 000000000..2c9d2b09e
--- /dev/null
+++ b/DeveloperToolsForExtensions.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Slicer/SlicerDeveloperToolsForExtensions.git"
+}
diff --git a/DeveloperToolsForExtensions.s4ext b/DeveloperToolsForExtensions.s4ext
deleted file mode 100644
index e8eff154e..000000000
--- a/DeveloperToolsForExtensions.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerDeveloperToolsForExtensions.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/DeveloperToolsForExtensions
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Francois Budin (UNC), Andras Lasso (PerkLab, Queen's University), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Slicer/SlicerDeveloperToolsForExtensions/master/DeveloperToolsForExtensions/Resources/Icons/DeveloperToolsForExtensions.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension offers different tools to help developers when they create and maintain Slicer extension.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/5/54/SlicerExtension-SlicerDeveloperToolsForExtensions-Screenshot.png https://www.slicer.org/slicerWiki/images/d/db/SlicerExtensions-SlicerDeveloperToolsForExtensions-Screenshot-panels.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/DiffusionQC.json b/DiffusionQC.json
new file mode 100644
index 000000000..b9db1947f
--- /dev/null
+++ b/DiffusionQC.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerDMRI"
+ ],
+ "build_subdirectory": ".",
+ "category": "Diffusion",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/pnlbwh/SlicerDiffusionQC"
+}
diff --git a/DiffusionQC.s4ext b/DiffusionQC.s4ext
deleted file mode 100644
index e16249444..000000000
--- a/DiffusionQC.s4ext
+++ /dev/null
@@ -1,27 +0,0 @@
-scm git
-scmurl https://github.com/pnlbwh/SlicerDiffusionQC
-scmrevision master
-
-depends SlicerDMRI
-
-build_subdirectory .
-
-homepage https://github.com/pnlbwh/SlicerDiffusionQC
-
-contributors Tashrif Billah (Brigham & Women's Hospital), Isaiah Norton (Brigham & Women's Hospital), Yogesh Rathi (Brigham & Women's Hospital), Sylvain Bouix (Brigham & Women's Hospital)
-
-category Diffusion
-
-iconurl https://github.com/pnlbwh/SlicerDiffusionQC/raw/master/Misc/DiffusionQC-icon-128x128.png
-
-screenshoturls https://raw.githubusercontent.com/pnlbwh/SlicerDiffusionQC/master/Misc/DiffusionQC-screenshot.png
-
-status WIP
-
-# One line stating what the module does
-description DiffusionQC provides a quality-checking algorithm for diffusion-weighted MRIs, paired with an interactive graphical review tool.
-
-# Space separated list of urls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/EasyClip.json b/EasyClip.json
new file mode 100644
index 000000000..7fcdf2518
--- /dev/null
+++ b/EasyClip.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/EasyClip-Extension.git"
+}
diff --git a/EasyClip.s4ext b/EasyClip.s4ext
deleted file mode 100644
index 028c76545..000000000
--- a/EasyClip.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/EasyClip-Extension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/EasyClip
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Julia Lopinto (University of Michigan), Jean-Baptiste Vimort (University of Michigan)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/EasyClip-Extension/master/EasyClip.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This Module is used to clip one or different 3D Models according to a predetermined plane. Plane can be saved to be reused for other models. After clipping, the models are closed and can be saved as new 3D Models.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/1/1b/EasyClipPlanePosition.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ErodeDilateLabel.json b/ErodeDilateLabel.json
new file mode 100644
index 000000000..4d936abdd
--- /dev/null
+++ b/ErodeDilateLabel.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Filtering.Morphology",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/tokjun/ErodeDilateLabel.git"
+}
diff --git a/ErodeDilateLabel.s4ext b/ErodeDilateLabel.s4ext
deleted file mode 100644
index 7c8a4d488..000000000
--- a/ErodeDilateLabel.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/tokjun/ErodeDilateLabel.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ErodeDilateLabel
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Junichi Tokuda (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering.Morphology
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/a/ac/ErodeDilateLabelIcon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description This extension applies binary erosion and dilation to label maps. The extension uses binary erosion and dilation filters in ITK based on N.Nikopoulos et al. An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape. IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/d/df/Slicer4-ErodeDilateLabel-GUI.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ExtraMarkups.json b/ExtraMarkups.json
new file mode 100644
index 000000000..6dc468a70
--- /dev/null
+++ b/ExtraMarkups.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/chir-set/SlicerExtraMarkups.git"
+}
diff --git a/ExtraMarkups.s4ext b/ExtraMarkups.s4ext
deleted file mode 100644
index bc2fef1e6..000000000
--- a/ExtraMarkups.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/chir-set/SlicerExtraMarkups.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/chir-set/SlicerExtraMarkups/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Saleem Edah-Tally ([Surgeon] [Hobbyist developer])
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/chir-set/SlicerExtraMarkups/raw/main/ExtraMarkups.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension adds a Label markups node that draws an arrow with a text label, and a Shape markups node that can draw defined primitive shapes (circle, cone...). The result is controlled by placing usual control points in slice views and 3D views. Each object can be saved in scene and reloaded.
-
-# Space separated list of urls
-screenshoturls https://github.com/chir-set/SlicerExtraMarkups/raw/main/Label/Label_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Cone_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Cylinder_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Disk_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Ring_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Sphere_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Tube_0.png https://github.com/chir-set/SlicerExtraMarkups/raw/main/Shape/Arc_0.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/FiducialsToModelDistance.json b/FiducialsToModelDistance.json
new file mode 100644
index 000000000..9a19f91f8
--- /dev/null
+++ b/FiducialsToModelDistance.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ReynoldsJ20/SlicerFiducialsToModelDistance"
+}
diff --git a/FiducialsToModelDistance.s4ext b/FiducialsToModelDistance.s4ext
deleted file mode 100644
index b1ee58ef2..000000000
--- a/FiducialsToModelDistance.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/ReynoldsJ20/SlicerFiducialsToModelDistance
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/ReynoldsJ20/SlicerFiducialsToModelDistance
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jesse Reynolds (Canterbury District Health Board) with assistance from Andras Lasso (Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ReynoldsJ20/SlicerFiducialsToModelDistance/master/FiducialsToModelDistance.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This module computes the distances between a set of fiducial points and either the surface of a model, or another set of fiducial points. The results are displayed in two tables.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ReynoldsJ20/SlicerFiducialsToModelDistance/master/Screenshots/ScreenShot1.PNG https://raw.githubusercontent.com/ReynoldsJ20/SlicerFiducialsToModelDistance/master/Screenshots/ScreenShot2.PNG
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/FilmDosimetryAnalysis.json b/FilmDosimetryAnalysis.json
new file mode 100644
index 000000000..6af6ef5ca
--- /dev/null
+++ b/FilmDosimetryAnalysis.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "Radiotherapy",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerRt/FilmDosimetryAnalysis.git"
+}
diff --git a/FilmDosimetryAnalysis.s4ext b/FilmDosimetryAnalysis.s4ext
deleted file mode 100644
index eb0ab8cfa..000000000
--- a/FilmDosimetryAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerRt/FilmDosimetryAnalysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/FilmDosimetry
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (PerkLab, Queen's University), Alec Robinson (PerkLab, Queen's University), Kevin Alexander (KGH, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Radiotherapy
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/1/16/FilmDosimetry_Logo_128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Film dosimetry analysis is a 2D dosimetry tool used in commissioning new radiation techniques and to validate the accuracy of radiation treatment by enabling visual comparison of the planned dose to the delivered dose
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/8c/FilmDosimetry_1.0_Gamma.png https://www.slicer.org/slicerWiki/images/7/72/FilmDosimetry_1.0_Registration.png https://www.slicer.org/slicerWiki/images/4/4c/FilmDosimetry_1.0_CalibrationFunction.png https://www.slicer.org/slicerWiki/images/d/d8/FilmDosimetry_1.0_CalibrationBatch.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/FlywheelCaseIterator.json b/FlywheelCaseIterator.json
new file mode 100644
index 000000000..a8dc65ebe
--- /dev/null
+++ b/FlywheelCaseIterator.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "main",
+ "scm_url": "https://gitlab.com/flywheel-io/scientific-solutions/app/Slicerflywheelcaseiterator.git"
+}
diff --git a/FlywheelCaseIterator.s4ext b/FlywheelCaseIterator.s4ext
deleted file mode 100644
index f97e32ac0..000000000
--- a/FlywheelCaseIterator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://gitlab.com/flywheel-io/scientific-solutions/app/Slicerflywheelcaseiterator.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://gitlab.com/flywheel-io/scientific-solutions/app/Slicerflywheelcaseiterator/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Joost van Griethuysen (AVL-NKI), Christian Herz (CHOP), Joshua Jacobs (Flywheel)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://gitlab.com/flywheel-io/scientific-solutions/app/Slicerflywheelcaseiterator/-/raw/main/FlywheelCaseIterator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status production
-
-# One line stating what the module does
-description FlywheelCaseIterator is an extension for Slicer that allows users to conveniently iterate through NIfTI images from Flywheel. It offers functionalities such as creating, reviewing, and updating segmentations on these images. The extension also enables easy uploading of NIfTI mask outputs back into Flywheel for efficient data management. FlywheelCaseIterator is a customized version of the SlicerCaseIterator developed by Joost van Griethuysen. For more information about Flywheel, a comprehensive data management solution for life sciences and imaging research, you can visit their website: https://flywheel.io/.
-
-# Space separated list of urls
-screenshoturls https://gitlab.com/flywheel-io/scientific-solutions/app/Slicerflywheelcaseiterator/-/raw/main/FlywheelCaseIterator-Screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/GelDosimetryAnalysis.json b/GelDosimetryAnalysis.json
new file mode 100644
index 000000000..c685cabf2
--- /dev/null
+++ b/GelDosimetryAnalysis.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "Radiotherapy",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerRt/GelDosimetryAnalysis.git"
+}
diff --git a/GelDosimetryAnalysis.s4ext b/GelDosimetryAnalysis.s4ext
deleted file mode 100644
index 0af1c0d9d..000000000
--- a/GelDosimetryAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerRt/GelDosimetryAnalysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (PerkLab, Queen's University), Jennifer Andrea (PerkLab, Queen's University), Mattea Welch (PerkLab, Queen's University), Kevin Alexander (KGH, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Radiotherapy
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/f/f1/GelDosimetry_Logo_128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Slicelet covering the gel dosimetry analysis workflow used in commissioning new radiation techniques and to validate the accuracy of radiation treatment by enabling visual comparison of the planned dose to the delivered dose, where correspondence between the two dose distributions is achieved using embedded landmarks. Gel dosimetry is based on imaging chemical systems spatially fixed in gelatin, which exhibit a detectable change upon irradiation.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/83/GelDosimetrySlicelet_0.1_LandmarkRegistrationStep.png https://www.slicer.org/slicerWiki/images/6/68/GelDosimetrySlicelet_0.1_CalibrationCurvesAligned.png https://www.slicer.org/slicerWiki/images/5/51/GelDosimetrySlicelet_0.1_OdVsDoseCurve.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/GeodesicSlicer.json b/GeodesicSlicer.json
new file mode 100644
index 000000000..146aef518
--- /dev/null
+++ b/GeodesicSlicer.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/FredericBr/SlicerGeodesic"
+}
diff --git a/GeodesicSlicer.s4ext b/GeodesicSlicer.s4ext
deleted file mode 100644
index 096cc4e93..000000000
--- a/GeodesicSlicer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/FredericBr/SlicerGeodesic
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Modules/GeodesicSlicer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Frederic Briend (UNICAEN, University of Tours), Antoine Nourry (UMS 3408)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/FredericBr/SlicerGeodesic/master/GeodesicSlicer.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Maintained
-
-# One line stating what the module does
-description This module calculates geodesic path in 3D structure. Thanks to this geodesic path, this module can draw an EEG 10-20 system, determine the projected scalp stimulation site and correct the rTMS resting motor threshold by correction factor.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/w/img_auth.php/c/ce/Screen-shot_of_the_GeodesicSlicer_program._.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/GyroGuide.json b/GyroGuide.json
new file mode 100644
index 000000000..4eda0f1a1
--- /dev/null
+++ b/GyroGuide.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lpfang/GyroGuide.git"
+}
diff --git a/GyroGuide.s4ext b/GyroGuide.s4ext
deleted file mode 100644
index 0bb144068..000000000
--- a/GyroGuide.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lpfang/GyroGuide.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/GyroGuide
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Ruifeng Chen, Luping Fang, Qing Pan (College of Information Engineering, Zhejiang University of Technology, Hangzhou, China),Xiaolei Chen, Jiashu Zhang (Department of Neurosurgery, PLA General Hospital, Beijing, China)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/a/a7/GyroGuide.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Beta
-
-# One line stating what the module does
-description GyroGuide determines the trajectory angle and depth of puncture path, and transmits the calculated information to the probe for real time navigation.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/80/GyroGuide-Step-2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/HDBrainExtraction.json b/HDBrainExtraction.json
new file mode 100644
index 000000000..ef9b51ea1
--- /dev/null
+++ b/HDBrainExtraction.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/lassoan/SlicerHDBrainExtraction.git"
+}
diff --git a/HDBrainExtraction.s4ext b/HDBrainExtraction.s4ext
deleted file mode 100644
index 97d2d7132..000000000
--- a/HDBrainExtraction.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerHDBrainExtraction.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerHDBrainExtraction
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerHDBrainExtraction/main/HDBrainExtraction.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Strip skull in brain MRI images using HD-BET brain extraction tool. HD-BET was developed with MRI-data from a large multicentric clinical trial in adult brain tumor patients acquired across 37 institutions in Europe and included a broad range of MR hardware and acquisition parameters, pathologies or treatment-induced tissue alterations. HD-BET was trained with precontrast T1-w, postcontrast T1-w, T2-w and FLAIR sequences. It can perform independent brain extraction on various different MRI sequences and is not restricted to precontrast T1-weighted (T1-w) sequences. Other MRI sequences may work as well (just give it a try!) HD-BET was designed to be robust with respect to brain tumors, lesions and resection cavities as well as different MRI scanner hardware and acquisition parameters.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerHDBrainExtraction/main/Screenshot01.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/IDCBrowser.json b/IDCBrowser.json
new file mode 100644
index 000000000..cf25ba6cb
--- /dev/null
+++ b/IDCBrowser.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "QuantitativeReporting"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/ImagingDataCommons/SlicerIDCBrowser.git"
+}
diff --git a/IDCBrowser.s4ext b/IDCBrowser.s4ext
deleted file mode 100644
index f397a7e07..000000000
--- a/IDCBrowser.s4ext
+++ /dev/null
@@ -1,38 +0,0 @@
-# This is source code manager
-scm git
-scmurl https://github.com/ImagingDataCommons/SlicerIDCBrowser.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends QuantitativeReporting
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/ImagingDataCommons/SlicerIDCBrowser
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (SPL and BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ImagingDataCommons/SlicerIDCBrowser/main/IDCBrowser/Resources/Icons/IDCBrowser.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Beta
-
-# One line stating what the module does
-description A Module to explore and access imaging data available from National Cancer Institute Imaging Data Commons.
-
-# Space separated list of urls
-screenshoturls https://github.com/ImagingDataCommons/SlicerIDCBrowser/blob/main/IDCBrowser/Resources/Screenshot/screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ImageAugmenter.json b/ImageAugmenter.json
new file mode 100644
index 000000000..c9ef33006
--- /dev/null
+++ b/ImageAugmenter.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/ciroraggio/SlicerImageAugmenter.git"
+}
diff --git a/ImageAugmenter.s4ext b/ImageAugmenter.s4ext
deleted file mode 100644
index c4e7770d5..000000000
--- a/ImageAugmenter.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/ciroraggio/SlicerImageAugmenter.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://ciroraggio.github.io/SlicerImageAugmenter/index
-
-contributors Ciro Benito Raggio (Karlsruhe Institute of Technology, Germany), Paolo Zaffino (Magna Graecia University of Catanzaro, Italy), Maria Francesca Spadea (Karlsruhe Institute of Technology, Germany)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ciroraggio/SlicerImageAugmenter/main/ImageAugmenter.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status beta
-
-# One line stating what the module does
-description MONAI and PyTorch based medical image augmentation tool integrated in Slicer
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ciroraggio/SlicerImageAugmenter/main/assets/SlicerImageAugmenterScreen.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ImageCompare.json b/ImageCompare.json
new file mode 100644
index 000000000..5c3d9d123
--- /dev/null
+++ b/ImageCompare.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/pzaffino/SlicerImageCompare.git"
+}
diff --git a/ImageCompare.s4ext b/ImageCompare.s4ext
deleted file mode 100644
index e4d604f61..000000000
--- a/ImageCompare.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/pzaffino/SlicerImageCompare.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/ImageCompare
-
-contributors Paolo Zaffino (Magna Graecia University of Catanzaro, Italy), Maria Francesca Spadea (Magna Graecia University of Catanzaro, Italy)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/pzaffino/SlicerImageCompare/master/ImageCompare.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description This extension compares two images such as a synthetic CT and a ground truth CT.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/pzaffino/SlicerImageCompare/master/ImageCompare_screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ImageMaker.json b/ImageMaker.json
new file mode 100644
index 000000000..83a09ee02
--- /dev/null
+++ b/ImageMaker.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/finetjul/ImageMaker"
+}
diff --git a/ImageMaker.s4ext b/ImageMaker.s4ext
deleted file mode 100644
index f150d97ce..000000000
--- a/ImageMaker.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/finetjul/ImageMaker
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ImageMaker
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Julien Finet (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/e/e5/QuickToolsLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description This is a CLI module to create an image from scratch.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/81/ImageMaker.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/IntensitySegmenter.json b/IntensitySegmenter.json
new file mode 100644
index 000000000..b8e1d940a
--- /dev/null
+++ b/IntensitySegmenter.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "release",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/IntensitySegmenter.git"
+}
diff --git a/IntensitySegmenter.s4ext b/IntensitySegmenter.s4ext
deleted file mode 100644
index f17218cda..000000000
--- a/IntensitySegmenter.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/IntensitySegmenter.git
-scmrevision release
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://www.nitrc.org/projects/dentaltools/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Pengdong Xiao (Department of Orthodontics, UNC), Beatriz Paniagua (Department of Orthodontics, UNC), Francois Budin (NIRAL, UNC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://wiki.slicer.org/slicerWiki/images/f/f6/IntensitySegmenterIcon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status beta
-
-# One line stating what the module does
-description IntensitySegmenter is a simple tool that segments an image according to intensity value. It is mainly used to segment CT scans using the Hounsfield scale but the ranges of intensities and their corresponding labels can be specified in an input text file.
-
-# Space separated list of urls
-screenshoturls https://wiki.slicer.org/slicerWiki/images/7/7c/IntensitySegmenter-OutputScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/KidneyStoneCalculator.json b/KidneyStoneCalculator.json
new file mode 100644
index 000000000..4ec4e2cf9
--- /dev/null
+++ b/KidneyStoneCalculator.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/fredericpanthier/SlicerKidneyStoneCalculator.git"
+}
diff --git a/KidneyStoneCalculator.s4ext b/KidneyStoneCalculator.s4ext
deleted file mode 100644
index 69a6adff1..000000000
--- a/KidneyStoneCalculator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/fredericpanthier/SlicerKidneyStoneCalculator.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/KidneyStoneCalculator
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Frédéric Panthier (APHP, Paris), Lounès Illoul (PIMM lab, Paris), Laurent Berthe (PIMM lab, Paris), Steeve Doizi (APHP, Paris), Oliver Traxer (APHP, Paris)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/fredericpanthier/SlicerKidneyStoneCalculator/master/icon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Extension for volumetric evaluation of kidney stones and estimatation of lithotripsy time (surgical duration).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/fredericpanthier/SlicerKidneyStoneCalculator/master/screenshot.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/LanguagePacks.json b/LanguagePacks.json
new file mode 100644
index 000000000..591dabc91
--- /dev/null
+++ b/LanguagePacks.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/Slicer/SlicerLanguagePacks"
+}
diff --git a/LanguagePacks.s4ext b/LanguagePacks.s4ext
deleted file mode 100644
index 9cc1e3638..000000000
--- a/LanguagePacks.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerLanguagePacks
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Slicer/SlicerLanguagePacks
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Slicer/SlicerLanguagePacks/main/LanguagePacks.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Extension for deploying language packs and editing translations.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Slicer/SlicerLanguagePacks/main/Docs/LanguageSelector.png https://raw.githubusercontent.com/Slicer/SlicerLanguagePacks/main/Docs/ExampleTranslations.png https://raw.githubusercontent.com/Slicer/SlicerLanguagePacks/main/Docs/LanguageTools.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/LungCTAnalyzer.json b/LungCTAnalyzer.json
new file mode 100644
index 000000000..ce0641607
--- /dev/null
+++ b/LungCTAnalyzer.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "PyTorch",
+ "SegmentEditorExtraEffects",
+ "SurfaceWrapSolidify"
+ ],
+ "build_subdirectory": ".",
+ "category": "Chest Imaging Platform",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/rbumm/SlicerLungCTAnalyzer"
+}
diff --git a/LungCTAnalyzer.s4ext b/LungCTAnalyzer.s4ext
deleted file mode 100644
index 5f170a494..000000000
--- a/LungCTAnalyzer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/rbumm/SlicerLungCTAnalyzer
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch SegmentEditorExtraEffects SurfaceWrapSolidify
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/rbumm/SlicerLungCTAnalyzer#lung-ct-analyzer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Rudolf Bumm (KSGR Chur Switzerland)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Chest Imaging Platform
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/rbumm/SlicerLungCTAnalyzer/master/LungCTAnalyzer.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Extension for segmentation and analysis of lung CTs. Analysis consists of producing five different segmentations of lungs based on Hounsfield unit range: Bulla / emphysema, ventilated lung, infiltrated llung, collapsed lung and thoracic vessels. It allows a volume quantification as well as a spacial representation of the diseased lung regions. Furthermore, we introduce a new parameter - CovidQ - for an instant estimation of the severity of infestation.
-
-# Space separated list of urls
-screenshoturls https://user-images.githubusercontent.com/18140094/98554410-f5ddd600-22a0-11eb-9196-b9223c8ada3f.jpg https://user-images.githubusercontent.com/18140094/98554914-9207dd00-22a1-11eb-9bae-7f537a765cc3.jpg https://user-images.githubusercontent.com/18140094/98555178-e6ab5800-22a1-11eb-8cbf-7dfa3e346b43.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MEMOS.json b/MEMOS.json
new file mode 100644
index 000000000..0596453ab
--- /dev/null
+++ b/MEMOS.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/SlicerMorph/SlicerMEMOS"
+}
diff --git a/MEMOS.s4ext b/MEMOS.s4ext
deleted file mode 100644
index ae3b44b6c..000000000
--- a/MEMOS.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerMorph/SlicerMEMOS
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerMorph/SlicerMEMOS
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sara Rolfe (SCRI), Murat Maga (SCRI, UW)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerMorph/SlicerMEMOS/raw/main/MEMOS/Resources/Icons/MEMOS.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description This extension enables deep learning-powered segmentation of 50 anatomical structures from microCT scans of embryonic mice.
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerMorph/SlicerMEMOS/raw/main/memos.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MHubRunner.json b/MHubRunner.json
new file mode 100644
index 000000000..bbdc0ac88
--- /dev/null
+++ b/MHubRunner.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Examples",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/MHubAI/SlicerMRunner"
+}
diff --git a/MHubRunner.s4ext b/MHubRunner.s4ext
deleted file mode 100644
index 8b196220e..000000000
--- a/MHubRunner.s4ext
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/MHubAI/SlicerMRunner
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-# depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://mhub.ai/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Leonard Nürnberg (AIM, Mass General Brigham)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Examples
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://mhub.ai/slicer/SlicerMHubRunner.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description MHub Runner is a 3D Slicer plugin that seamlessly integrates Deep Learning models from the Medical Hub repository (MHub) into 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://mhub.ai/slicer/image01.png https://mhub.ai/slicer/image02.png https://mhub.ai/slicer/image03.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MONAIAuto3DSeg.json b/MONAIAuto3DSeg.json
new file mode 100644
index 000000000..36a1456e0
--- /dev/null
+++ b/MONAIAuto3DSeg.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/lassoan/SlicerMONAIAuto3DSeg"
+}
diff --git a/MONAIAuto3DSeg.s4ext b/MONAIAuto3DSeg.s4ext
deleted file mode 100644
index 20769d55d..000000000
--- a/MONAIAuto3DSeg.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerMONAIAuto3DSeg
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerMONAIAuto3DSeg
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/MONAIAuto3DSeg.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Run MONAI Auto3DSeg fully automatic AI segmentation in 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/Screenshot01.jpg https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/Screenshot02.jpg https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/Screenshot03.jpg https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/Screenshot04.jpg https://raw.githubusercontent.com/lassoan/SlicerMONAIAuto3DSeg/main/Screenshot05.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MONAILabel.json b/MONAILabel.json
new file mode 100644
index 000000000..04a9a6c16
--- /dev/null
+++ b/MONAILabel.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Active Learning",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/Project-MONAI/MONAILabel.git"
+}
diff --git a/MONAILabel.s4ext b/MONAILabel.s4ext
deleted file mode 100644
index 751858770..000000000
--- a/MONAILabel.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Project-MONAI/MONAILabel.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/slicer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sachidanand Alle (NVIDIA), Andres Diaz-Pinto (KCL), Alvin Ihsani (NVIDIA), Fernando Perez-Garcia (UCL/KCL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Active Learning
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/Project-MONAI/MONAILabel/raw/main/plugins/slicer/MONAILabel/Resources/Icons/MONAILabel.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension offers Active Learning solution developed under project MONAILabel (Powered by the NVIDIA, KCL).
-
-# Space separated list of urls
-screenshoturls https://github.com/Project-MONAI/MONAILabel/raw/main/plugins/slicer/MONAILabel/Screenshots/1.png https://github.com/Project-MONAI/MONAILabel/raw/main/plugins/slicer/MONAILabel/Screenshots/2.png https://github.com/Project-MONAI/MONAILabel/raw/main/plugins/slicer/MONAILabel/Screenshots/3.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MONAIViz.json b/MONAIViz.json
new file mode 100644
index 000000000..18dbf16ff
--- /dev/null
+++ b/MONAIViz.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/Project-MONAI/SlicerMONAIViz"
+}
diff --git a/MONAIViz.s4ext b/MONAIViz.s4ext
deleted file mode 100644
index 25ac588f4..000000000
--- a/MONAIViz.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Project-MONAI/SlicerMONAIViz
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Project-MONAI/SlicerMONAIViz#slicermonaiviz
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors MONAI Consortium
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Project-MONAI/SlicerMONAIViz/main/MONAIViz/Resources/Icons/MONAIViz.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension helps to run chain of MONAI transforms and visualize every stage over an image/label. See more information in MONAILabel documentation.
-
-# Space separated list of urls
-screenshoturls https://github.com/Project-MONAI/SlicerMONAIViz/raw/main/Screenshots/1.jpg https://github.com/Project-MONAI/SlicerMONAIViz/raw/main/Screenshots/2.jpg https://github.com/Project-MONAI/SlicerMONAIViz/raw/main/Screenshots/3.jpg https://github.com/Project-MONAI/SlicerMONAIViz/raw/main/Screenshots/4.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MRUSLandmarking.json b/MRUSLandmarking.json
new file mode 100644
index 000000000..8aeacfe0b
--- /dev/null
+++ b/MRUSLandmarking.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/koegl/SlicerMRUSLandmarking.git"
+}
diff --git a/MRUSLandmarking.s4ext b/MRUSLandmarking.s4ext
deleted file mode 100644
index c7a8cd3f2..000000000
--- a/MRUSLandmarking.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/koegl/SlicerMRUSLandmarking.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/koegl/SlicerMRUSLandmarking
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Fryderyk Kögl (TUM, BWH), Harneet Cheema (BWH, UOttawa), Tina Kapur (BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/koegl/SlicerMRUSLandmarking/main/misc/icon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status alpha
-
-# One line stating what the module does
-description MRUSLandmarking is a Slicer extension that provides a user interface focused on landmarking MR and US images.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/koegl/SlicerMRUSLandmarking/main/misc/GUIpreview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MUST-segmenter.json b/MUST-segmenter.json
new file mode 100644
index 000000000..f8902e6ac
--- /dev/null
+++ b/MUST-segmenter.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerRadiomics"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/kyliekeijzer/Slicer-PET-MUST-segmenter.git"
+}
diff --git a/MUST-segmenter.s4ext b/MUST-segmenter.s4ext
deleted file mode 100644
index 49ca26f6d..000000000
--- a/MUST-segmenter.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/kyliekeijzer/Slicer-PET-MUST-segmenter.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerRadiomics
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/kyliekeijzer/Slicer-PET-MUST-segmenter.git
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Kylie Keijzer (University Medical Center Groningen, The Netherlands)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/Slicer-MUST-segmenter.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Multiple SUV Thresholding (MUST)-segmenter is a semi-automated PET image segmentation tool that enables delineation of multiple lesions at once, and extracts the lesions' features.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/screenshots/Slicer-MUST-segmenter_screenshot.png https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/screenshots/9.png https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/screenshots/12.png https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/screenshots/10.png https://raw.githubusercontent.com/kyliekeijzer/Slicer-PET-MUST-segmenter/master/screenshots/25.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MarkupsToModel.json b/MarkupsToModel.json
new file mode 100644
index 000000000..db7700df7
--- /dev/null
+++ b/MarkupsToModel.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/SlicerMarkupsToModel"
+}
diff --git a/MarkupsToModel.s4ext b/MarkupsToModel.s4ext
deleted file mode 100644
index 3e9b63450..000000000
--- a/MarkupsToModel.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerMarkupsToModel
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/SlicerMarkupsToModel#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Thomas Vaughan (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Adam Rankin (Robarts Research Center, Western University), Aniqah Mair (PerkLab, Queen's University), Jaime Garcia Guevara (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerIGT/SlicerMarkupsToModel/raw/master/MarkupsToModel.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Create tube or closed surface models from points of a markup fiducial node.
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerIGT/SlicerMarkupsToModel/raw/master/ClosedSurface.png https://github.com/SlicerIGT/SlicerMarkupsToModel/raw/master/Curve.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MatlabBridge.json b/MatlabBridge.json
new file mode 100644
index 000000000..330d1fd2a
--- /dev/null
+++ b/MatlabBridge.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerOpenIGTLink"
+ ],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerMatlabBridge.git"
+}
diff --git a/MatlabBridge.s4ext b/MatlabBridge.s4ext
deleted file mode 100644
index f475f4eea..000000000
--- a/MatlabBridge.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerMatlabBridge.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerOpenIGTLink
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/MatlabBridge
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University), Jean-Christophe Fillion-Robin (Kitware), Kevin Wang (Radiation Medicine Program, Princess Margaret Hospital, University Health Network Toronto)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/e/e8/MatlabBridgeLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The Matlab Bridge extension allows running Matlab scripts as command-line interface (CLI) modules directly from 3D Slicer. The only prerequisites for running Matlab scripts are having this extension and Matlab installed on the 3D Slicer computer (building of 3D Slicer, MEX files, etc. is not needed). Extension version: 0.14.0.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/2/2f/MatlabBridgeScreenshot1.png https://www.slicer.org/slicerWiki/images/1/16/MatlabBridgeScreenshot2.png https://www.slicer.org/slicerWiki/images/b/b9/MatlabBridgeScreenshot3.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MedialSkeleton.json b/MedialSkeleton.json
new file mode 100644
index 000000000..ab43c8790
--- /dev/null
+++ b/MedialSkeleton.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Shape Analysis",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/JolleyLab/SlicerMedialSkeleton.git"
+}
diff --git a/MedialSkeleton.s4ext b/MedialSkeleton.s4ext
deleted file mode 100644
index ccbd51184..000000000
--- a/MedialSkeleton.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/JolleyLab/SlicerMedialSkeleton.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/JolleyLab/SlicerMedialSkeleton
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Paul Yushkevich (PICSL/UPenn), Alison Pouch (PICSL/UPenn), Matthew Jolley (CHOP/UPenn), Christian Herz (CHOP), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/JolleyLab/SlicerMedialSkeleton/main/MedialSkeleton.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Modules for creating medial skeletons
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/JolleyLab/SlicerMedialSkeleton/main/SkeletonTool/Screenshots/SkeletonTool01.png https://github.com/JolleyLab/SlicerMedialSkeleton/raw/main/SyntheticSkeleton/Resources/Screenshots/SyntheticSkeleton01.png https://github.com/JolleyLab/SlicerMedialSkeleton/raw/main/InflateMedialModel/Screenshots/InflateMedialModel01.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MeshStatisticsExtension.json b/MeshStatisticsExtension.json
new file mode 100644
index 000000000..caa30f407
--- /dev/null
+++ b/MeshStatisticsExtension.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "ModelToModelDistance"
+ ],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/MeshStatisticsExtension.git"
+}
diff --git a/MeshStatisticsExtension.s4ext b/MeshStatisticsExtension.s4ext
deleted file mode 100644
index 21f115dd1..000000000
--- a/MeshStatisticsExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/MeshStatisticsExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends ModelToModelDistance
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/MeshStatistics
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucie Macron (University of Michigan)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/MeshStatisticsExtension/master/MeshStatistics/Resources/Icons/MeshStatistics.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Mesh Statistics allows users to compute descriptive statistics over specific and predefined regions
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/index.php/File:MeshStatistics_Interface.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/MeshToLabelMap.json b/MeshToLabelMap.json
new file mode 100644
index 000000000..2fee23caa
--- /dev/null
+++ b/MeshToLabelMap.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NIRALUser/MeshToLabelMap.git"
+}
diff --git a/MeshToLabelMap.s4ext b/MeshToLabelMap.s4ext
deleted file mode 100644
index 84d7a014b..000000000
--- a/MeshToLabelMap.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/NIRALUser/MeshToLabelMap.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/MeshToLabelMap
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Francois Budin (UNC), Ipek Oguz (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/NIRALUser/MeshToLabelMap/master/icons/MeshToLabelMapIcon128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Release
-
-# One line stating what the module does
-description This extension computes a label map from a 3D model.
-
-# Space separated list of urls
-screenshoturls https://slicer.org/slicerWiki/images/thumb/5/54/MeshToLabelMapScreenshot.png/800px-MeshToLabelMapScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ModelClip.json b/ModelClip.json
new file mode 100644
index 000000000..05cb34ffa
--- /dev/null
+++ b/ModelClip.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Surface Models",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/jamesobutler/ModelClip.git"
+}
diff --git a/ModelClip.s4ext b/ModelClip.s4ext
deleted file mode 100644
index c608a4f55..000000000
--- a/ModelClip.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/jamesobutler/ModelClip.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ModelClip
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jun LIN, Xiaojun CHEN, Ph.D (SJTU)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Surface Models
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/jamesobutler/ModelClip/main/Resources/Icons/ModelClip.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This is an extension module to set the osteotomy trajectory with multiple planes and clip with just one click.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/jamesobutler/ModelClip/main/ModelClipScreenShot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ModelCropper.json b/ModelCropper.json
new file mode 100644
index 000000000..08984e94f
--- /dev/null
+++ b/ModelCropper.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Surface Models",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/sebastianandress/Slicer-ModelCropper.git"
+}
diff --git a/ModelCropper.s4ext b/ModelCropper.s4ext
deleted file mode 100644
index 4b9455775..000000000
--- a/ModelCropper.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/sebastianandress/Slicer-ModelCropper.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/sebastianandress/Slicer-ModelCropper
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sebastian Andress (LMU Munich)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Surface Models
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/sebastianandress/Slicer-ModelCropper/raw/master/ModelCropper.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Simple extension that crops a surface model along a roi box. It uses vtkBooleanOperationPolyDataFilter for the cropping.
-
-# Space separated list of urls
-screenshoturls https://github.com/sebastianandress/Slicer-ModelCropper/raw/master/Screenshots/Screenshot%20Model%20Cropper.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ModelToModelDistance.json b/ModelToModelDistance.json
new file mode 100644
index 000000000..9b1d56ee1
--- /dev/null
+++ b/ModelToModelDistance.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NIRALUser/3DMetricTools.git"
+}
diff --git a/ModelToModelDistance.s4ext b/ModelToModelDistance.s4ext
deleted file mode 100644
index 8b7fa941d..000000000
--- a/ModelToModelDistance.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/NIRALUser/3DMetricTools.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.nitrc.org/projects/meshmetric3d/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Francois Budin (UNC), Juliette Pera (UNC), Beatriz Paniagua (UNC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://slicer.org/slicerWiki/images/4/43/Slicer4ExtensionModelToModelDistance.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension computes the distance between two 3D models
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/thumb/7/7a/Slicer4Extensions-ModelToModelDistanceOriginalShapes.png/800px-Slicer4Extensions-ModelToModelDistanceOriginalShapes.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/NNUNet.json b/NNUNet.json
new file mode 100644
index 000000000..c7e95f2e0
--- /dev/null
+++ b/NNUNet.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "PyTorch",
+ "SlicerPythonTestRunner"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/KitwareMedical/SlicerNNUnet"
+}
diff --git a/NNUNet.s4ext b/NNUNet.s4ext
deleted file mode 100644
index 29594fde7..000000000
--- a/NNUNet.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/KitwareMedical/SlicerNNUnet
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch SlicerPythonTestRunner
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerNNUnet
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Thibault Pelletier (Kitware SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/KitwareMedical/SlicerNNUnet/raw/main/SlicerNNUnet/Resources/Icons/SlicerNNUnet.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status stable
-
-# One line stating what the module does
-description 3D Slicer nnUNet integration to streamline usage for nnUNet based AI extensions.
It allows for quick and relable nnUNet dependency installation in 3D Slicer environment and provides simple logic to launch nnUNet prediction on given directories.
The installation steps are based on the work done in the SlicerTotalSegmentator exension (https://github.com/lassoan/SlicerTotalSegmentator)
-
-# Space separated list of urls
-screenshoturls https://github.com/KitwareMedical/SlicerNNUnet/raw/main/Screenshots/1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/NeedleFinder.json b/NeedleFinder.json
new file mode 100644
index 000000000..3365d5c70
--- /dev/null
+++ b/NeedleFinder.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/needlefinder/NeedleFinder.git"
+}
diff --git a/NeedleFinder.s4ext b/NeedleFinder.s4ext
deleted file mode 100644
index 0da5e0e5f..000000000
--- a/NeedleFinder.s4ext
+++ /dev/null
@@ -1,13 +0,0 @@
-build_subdirectory .
-category IGT
-contributors Guillaume Pernelle, Andre Mastmeyer, Paolo Zaffino, Nabgha Fahrat, Alireza Mehrtash, Lauren Barber, Jan Egger, Tobias Penzkofer, Sandy Wells, Sam Song, Xiaojun Chen, Yi Gao, Antonio Damato, Tina Kapur, Akila Viswanathan
-depends NA
-description NeedleFinder: fast interactive needle detection. It provides interactive tools to segment needles in MR/CT images. It has been mostly tested on MRI from gynelogical brachytherapy cases. Cf <> MICCAI 2013
-enabled 1
-homepage https://github.com/needlefinder/NeedleFinder
-iconurl https://raw.github.com/needlefinder/NeedleFinder/master/NeedleFinder.png
-scm git
-scmrevision master
-scmurl https://github.com/needlefinder/NeedleFinder.git
-screenshoturls https://raw.github.com/needlefinder/NeedleFinder/master/screenshot.png
-status
diff --git a/NvidiaAIAssistedAnnotation.json b/NvidiaAIAssistedAnnotation.json
new file mode 100644
index 000000000..cdeed4fcb
--- /dev/null
+++ b/NvidiaAIAssistedAnnotation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NVIDIA/ai-assisted-annotation-client.git"
+}
diff --git a/NvidiaAIAssistedAnnotation.s4ext b/NvidiaAIAssistedAnnotation.s4ext
deleted file mode 100644
index ee8cca03b..000000000
--- a/NvidiaAIAssistedAnnotation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/NVIDIA/ai-assisted-annotation-client.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/NVIDIA/ai-assisted-annotation-client/tree/master/slicer-plugin
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sachidanand Alle (NVIDIA), Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/NVIDIA/ai-assisted-annotation-client/master/slicer-plugin/NvidiaAIAssistedAnnotation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension offers automatic segmentation using NVIDIA AI-Assisted Annotation framework (Powered by the Clara Train SDK).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/NVIDIA/ai-assisted-annotation-client/master/slicer-plugin/snapshot.jpg https://raw.githubusercontent.com/NVIDIA/ai-assisted-annotation-client/master/slicer-plugin/snapshot-annotation-points-liver.jpg https://raw.githubusercontent.com/NVIDIA/ai-assisted-annotation-client/master/slicer-plugin/snapshot-annotation-result-liver.jpg https://raw.githubusercontent.com/NVIDIA/ai-assisted-annotation-client/master/slicer-plugin/snapshot-segmentation-result-liver.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/OpenDose3D.json b/OpenDose3D.json
new file mode 100644
index 000000000..889024005
--- /dev/null
+++ b/OpenDose3D.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerElastix"
+ ],
+ "build_subdirectory": ".",
+ "category": "Radiotherapy",
+ "scm_revision": "master-stable",
+ "scm_url": "https://gitlab.com/opendose/opendose3d.git"
+}
diff --git a/OpenDose3D.s4ext b/OpenDose3D.s4ext
deleted file mode 100644
index 5a77bb5d6..000000000
--- a/OpenDose3D.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://gitlab.com/opendose/opendose3d.git
-scmrevision master-stable
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerElastix
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://gitlab.com/opendose/OpenDose3D
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Alex Vergara Gil (INSERM, France), Janick Rueegger (KSA, Switzerland)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Radiotherapy
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://opendose.org/themes/default/images/opendose_favicon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status stable
-
-# One line stating what the module does
-description This module implements full 3D dosimetry for molecular radiotherapy on multiple time points.
-
-# Space separated list of urls
-screenshoturls https://gitlab.com/opendose/opendose3d/-/raw/develop/OpenDose3D/Resources/Icons/ss1.png https://gitlab.com/opendose/opendose3d/-/raw/develop/OpenDose3D/Resources/Icons/ss2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/OrthodonticAnalysis.json b/OrthodonticAnalysis.json
new file mode 100644
index 000000000..cda9feaf2
--- /dev/null
+++ b/OrthodonticAnalysis.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Orthodontics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis"
+}
diff --git a/OrthodonticAnalysis.s4ext b/OrthodonticAnalysis.s4ext
deleted file mode 100644
index f24c188b3..000000000
--- a/OrthodonticAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Joao Vitor Lima Coimbra (Federal University of Espirito Santo), Vinicius Campos de Oliveira Batista (Federal University of Espirito Santo), Rafhael Milanezi de Andrade (Federal University of Espirito Santo), Pedro Lima Emmerich Oliveira (Federal University of Rio de Janeiro), Lincoln Issamu Nojima (Federal University of Rio de Janeiro)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Orthodontics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis/master/OrthodonticAnalysis.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The extension was developed to perform the most common dental analysis: model space discrepancies, Bolton and Peck and Peck. All point instructions for performing the analysis are available in Python interactor after study method points are selected. The Analysis button shows the result.
The model discrepancy calculates the difference between the required space and the present space. If the difference is positive, there is an excess of space available, if the difference is negative, it means that there is a space deficit.
The required upper and lower spaces are obtained from measurements of the mesiodistal diameters of the incisors, canines, and premolars. The present spaces are obtained in six straight line segments: from the mesial face of the first molar to the distal face of the canine, from the distal face of the canine to the mesial face of the canine and from the mesial face of the canine to the midline.
Bolton's analysis takes into account two proportional size ratios between the upper and lower arches. The first is based on the sums of mesiodistal diameters of the teeth from the first molars, including the same, totaling 12 teeth per arch. The second is based on the sums of mesiodistal diameters of the teeth from the canines, including the canines, totaling 6 teeth per arch.
The teeth evaluated in Peck and Peck analysis are the lower incisors. The measurements taken are the mesiodistal and buccolingual diameters. The value of the mesiodistal diameter is divided by the buccolingual diameter to obtain the proportion and make the evaluation.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/OrthodonticAnalysis/SlicerOrthodonticAnalysis/master/OrthodonticAnalysisScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/OsteotomyPlanner.json b/OsteotomyPlanner.json
new file mode 100644
index 000000000..b33d31863
--- /dev/null
+++ b/OsteotomyPlanner.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Osteotomy Planning",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/OsteotomyPlanner.git"
+}
diff --git a/OsteotomyPlanner.s4ext b/OsteotomyPlanner.s4ext
deleted file mode 100644
index ed2bc5e5c..000000000
--- a/OsteotomyPlanner.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/OsteotomyPlanner.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/OsteotomyPlanner/wiki
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sam Horvath (Kitware Inc.), Johan Andruejol (Kitware Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Osteotomy Planning
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/OsteotomyPlanner/master/ReplayPlan/Resources/Icons/ReplayPlan.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status In Development
-
-# One line stating what the module does
-description Osteotomy Planner is an extension designed to help the planning of bone surgeries.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/OsteotomyPlanner/master/Screenshots/Screenshot.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PBNRR.json b/PBNRR.json
new file mode 100644
index 000000000..73ece13a7
--- /dev/null
+++ b/PBNRR.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/aangelos28/PBNRR.git"
+}
diff --git a/PBNRR.s4ext b/PBNRR.s4ext
deleted file mode 100644
index e98f77132..000000000
--- a/PBNRR.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/aangelos28/PBNRR.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/aangelos28/PBNRR
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Angelos Angelopoulos (CRTC), Fotis Drakopoulos (CRTC), Yixun Liu (CRTC), Andriy Kot (CRTC), Andrey Fedorov (SPL B&W Harvard), Olivier Clatz (Asclepios INRIA), Nikos Chrisochoides (CRTC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.github.com/aangelos28/PBNRR/master/PBNRR.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This Slicer extension non-rigid registers a moving to a fixed MRI using a linear homogeneous bio-mechanical model to compute a dense deformation field that defines a transformation for every point in the fixed to the moving image.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/6/63/Case1_input.png https://www.slicer.org/slicerWiki/images/a/a4/Case1_output.png https://www.slicer.org/slicerWiki/images/d/db/PBNRR_panel.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PET-IndiC.json b/PET-IndiC.json
new file mode 100644
index 000000000..8e4363184
--- /dev/null
+++ b/PET-IndiC.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/PET-IndiC.git"
+}
diff --git a/PET-IndiC.s4ext b/PET-IndiC.s4ext
deleted file mode 100644
index 76c7f0c47..000000000
--- a/PET-IndiC.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/PET-IndiC.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PET-IndiC
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Ethan Ulrich (University of Iowa), Christian Bauer (University of Iowa), Markus van Tol (University of Iowa), Andrey Fedorov (SPL), Reinhard R. Beichel (University of Iowa), John Buatti (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/PET-IndiC/master/PET-IndiC.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The PET-IndiC Extension allows for fast segmentation of regions of interest and calculation of quantitative indices.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/3/32/PET-IndiC_Screenshot1.png https://www.slicer.org/slicerWiki/images/8/8b/PET-IndiC_Screenshot3.png https://www.slicer.org/slicerWiki/images/8/8e/PET-IndiC_Screenshot5.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PETCPhantom.json b/PETCPhantom.json
new file mode 100644
index 000000000..c3f5c9bd6
--- /dev/null
+++ b/PETCPhantom.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/SlicerPETPhantomAnalysis.git"
+}
diff --git a/PETCPhantom.s4ext b/PETCPhantom.s4ext
deleted file mode 100644
index 8c6b28f5e..000000000
--- a/PETCPhantom.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/SlicerPETPhantomAnalysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Modules/PETCPhantomAnalysis
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Bauer (University of Iowa), Ethan Ulrich (University of Iowa), Andrey Fedorov (SPL), Reinhard R. Beichel (University of Iowa), John Buatti (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/SlicerPETPhantomAnalysis/master/PETCphantom.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The PET Phantom Analysis Extension allows measurement of calibration and uniformity in a cylinder phantom PET scan.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/w/img_auth.php/0/01/PETCylinderPhantomAnalysisModule.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PETDICOMExtension.json b/PETDICOMExtension.json
new file mode 100644
index 000000000..3d6240fa7
--- /dev/null
+++ b/PETDICOMExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Converters",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/Slicer-PETDICOMExtension.git"
+}
diff --git a/PETDICOMExtension.s4ext b/PETDICOMExtension.s4ext
deleted file mode 100644
index c728a818b..000000000
--- a/PETDICOMExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/Slicer-PETDICOMExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PETDICOM
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Ethan Ulrich (University of Iowa), Andrey Fedorov (BWH, SPL), Christian Bauer (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Converters
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/Slicer-PETDICOMExtension/master/PETDICOMExtension.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The PET DICOM Extension provides tools to import PET Standardized Uptake Value images from DICOM into Slicer.
-
-# Space separated list of urls
-screenshoturls https://wiki.slicer.org/slicerWiki/images/thumb/2/2e/SUV_Factor_Calculator_GUI.png/418px-SUV_Factor_Calculator_GUI.png https://wiki.slicer.org/slicerWiki/images/thumb/2/29/DICOM_Browser_RWVM_Plugin.png/800px-DICOM_Browser_RWVM_Plugin.png https://wiki.slicer.org/slicerWiki/images/thumb/4/43/DICOM_Browser_PET_SUV_Plugin.png/800px-DICOM_Browser_PET_SUV_Plugin.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PETLiverUptakeMeasurement.json b/PETLiverUptakeMeasurement.json
new file mode 100644
index 000000000..b4ed149e1
--- /dev/null
+++ b/PETLiverUptakeMeasurement.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "DCMQI"
+ ],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/PETLiverUptakeMeasurement"
+}
diff --git a/PETLiverUptakeMeasurement.s4ext b/PETLiverUptakeMeasurement.s4ext
deleted file mode 100644
index 4e6723555..000000000
--- a/PETLiverUptakeMeasurement.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/PETLiverUptakeMeasurement
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends DCMQI
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PETLiverUptakeMeasurement
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Bauer (University of Iowa), Markus van Tol (University of Iowa), Andrey Fedorov (SPL), Ethan Ulrich (University of Iowa), Reinhard Beichel (University of Iowa), John Buatti (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/PETLiverUptakeMeasurement/master/PETLiverUptakeMeasurement.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extensions contains a module for automated measurement of liver uptake in whole-body FDG-18 PET scans.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/6/6d/PETLiverUptakeMeasurementWithModel.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PETTumorSegmentation.json b/PETTumorSegmentation.json
new file mode 100644
index 000000000..268d4337d
--- /dev/null
+++ b/PETTumorSegmentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/PETTumorSegmentation.git"
+}
diff --git a/PETTumorSegmentation.s4ext b/PETTumorSegmentation.s4ext
deleted file mode 100644
index d9d85a726..000000000
--- a/PETTumorSegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/PETTumorSegmentation.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PETTumorSegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Bauer (University of Iowa), Markus van Tol (University of Iowa), Andrey Fedorov (SPL), Ethan Ulrich (University of Iowa), Reinhard Beichel (University of Iowa), John Buatti (University of Iowa)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/PETTumorSegmentation/master/PETTumorSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Tumor and lymph node segmentation in PET scans
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/0/04/PETTumorSegmentation_Effect_with_models.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ParallelProcessing.json b/ParallelProcessing.json
new file mode 100644
index 000000000..7a50b82af
--- /dev/null
+++ b/ParallelProcessing.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/pieper/SlicerParallelProcessing"
+}
diff --git a/ParallelProcessing.s4ext b/ParallelProcessing.s4ext
deleted file mode 100644
index ce167e995..000000000
--- a/ParallelProcessing.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/pieper/SlicerParallelProcessing
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/pieper/SlicerParallelProcessing
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Steve Pieper (Isomics, Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/pieper/SlicerParallelProcessing/raw/master/ParallelProcessing.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Manage helper processes to perform background tasks in parallel.
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PathReconstruction.json b/PathReconstruction.json
new file mode 100644
index 000000000..75baf5ccd
--- /dev/null
+++ b/PathReconstruction.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "MarkupsToModel",
+ "SlicerIGT",
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/SlicerPathReconstruction.git"
+}
diff --git a/PathReconstruction.s4ext b/PathReconstruction.s4ext
deleted file mode 100644
index 63963442d..000000000
--- a/PathReconstruction.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerPathReconstruction.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends MarkupsToModel SlicerIGT SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/SlicerPathReconstruction
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Tamas Ungi (Queen's University), Junichi Tokuda (Brigham and Women's Hospital), Andras Lasso (Queen's University), Isaiah Norton (Brigham and Women's Hospital), Matthew Holden (Queen's University), Laurent Chauvin (SNR), Atsushi Yamada (SNR), Franklin King (Queen's University), Jaime Garcia-Guevara (Queen's University), Amelie Meyer (Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerIGT/SlicerPathReconstruction/master/PathReconstruction.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status experimental
-
-# One line stating what the module does
-description This extension contains a module for reconstructing catheter paths from spatial tracking information. Intended users should have real-time tracking hardware (e.g. electromagnetic field generator and sensors) connected to 3D Slicer through OpenIGTLink network.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/w/img_auth.php/7/78/SlicerIGTScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PedicleScrewSimulator.json b/PedicleScrewSimulator.json
new file mode 100644
index 000000000..ed4206d98
--- /dev/null
+++ b/PedicleScrewSimulator.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Training",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/PedicleScrewSimulator"
+}
diff --git a/PedicleScrewSimulator.s4ext b/PedicleScrewSimulator.s4ext
deleted file mode 100644
index 3abdabe3d..000000000
--- a/PedicleScrewSimulator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/PedicleScrewSimulator
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/PedicleScrewSimulator
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Brendan Polley (University of Toronto), Stewart McLachlin (Sunnybrook Research Institute), Cari Whyne (Sunnybrook Research Institute)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Training
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/PedicleScrewSimulator/master/PedicleScrewSimulator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description 3D Slicer module for pedicle screw insertion training
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/PedicleScrewSimulator/master/doc/Screenshot-03-Insertion.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PercutaneousApproachAnalysis.json b/PercutaneousApproachAnalysis.json
new file mode 100644
index 000000000..415e380d2
--- /dev/null
+++ b/PercutaneousApproachAnalysis.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/PercutaneousApproachAnalysis"
+}
diff --git a/PercutaneousApproachAnalysis.s4ext b/PercutaneousApproachAnalysis.s4ext
deleted file mode 100644
index f251d67b7..000000000
--- a/PercutaneousApproachAnalysis.s4ext
+++ /dev/null
@@ -1,13 +0,0 @@
-build_subdirectory .
-category IGT
-contributors Koichiro Murakami (Shiga University of Medical Science, Japan, SPL), Atsushi Yamada (Shiga University of Medical Science, Japan), Laurent Chauvin (SPL), Junichi Tokuda (SPL)
-depends NA
-description The Percutaneous Approach Analysis is used to calculate and visualize the accessibility of liver tumor with a percutaneous approach.
-enabled 1
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/PercutaneousApproachAnalysis
-iconurl https://www.slicer.org/slicerWiki/images/a/ac/PAAlogo-small.png
-scm git
-scmrevision master
-scmurl https://github.com/SlicerIGT/PercutaneousApproachAnalysis
-screenshoturls https://www.slicer.org/slicerWiki/images/4/42/Accessibility_clinical.png
-status
diff --git a/PerkTutor.json b/PerkTutor.json
new file mode 100644
index 000000000..31a626ce9
--- /dev/null
+++ b/PerkTutor.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Training",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkTutor/PerkTutor.git"
+}
diff --git a/PerkTutor.s4ext b/PerkTutor.s4ext
deleted file mode 100644
index f95a9db27..000000000
--- a/PerkTutor.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkTutor/PerkTutor.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.perktutor.org/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Tamas Ungi, Matthew S. Holden (Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Training
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/2/21/PerkTutorLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension holds modules for training of needle interventions and analysis of operator performance.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/2/28/PerkTutorScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PetSpectAnalysis.json b/PetSpectAnalysis.json
new file mode 100644
index 000000000..bb5ccda8b
--- /dev/null
+++ b/PetSpectAnalysis.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Nuclear Medicine",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/gti-fing/SlicerPetSpectAnalysis.git"
+}
diff --git a/PetSpectAnalysis.s4ext b/PetSpectAnalysis.s4ext
deleted file mode 100644
index 8df1e6a26..000000000
--- a/PetSpectAnalysis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/gti-fing/SlicerPetSpectAnalysis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://gti-fing.github.io/SlicerPetSpectAnalysis
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Martin Bertran, Natalia Martinez Gil, Guillermo Carbajal, Alvaro Gomez (Facultad de Ingenieria, Uruguay)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Nuclear Medicine
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/b/b1/DPetBrainQuantification.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description First Version of the Pet Spect Analysis Extension
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/e/e4/ProcessingBlocks.png https://www.slicer.org/slicerWiki/images/7/76/InformationPanel.png https://www.slicer.org/slicerWiki/images/2/2a/VisualizationPanel.png https://www.slicer.org/slicerWiki/images/2/24/CarotidSegmentation.png https://www.slicer.org/slicerWiki/images/b/bb/CarotidSegmentationROI.png https://www.slicer.org/slicerWiki/images/5/51/PTACEstimationIDIF.png https://www.slicer.org/slicerWiki/images/9/98/PTACEstimationPBIF.png https://www.slicer.org/slicerWiki/images/9/90/KMap.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PickAndPaintExtension.json b/PickAndPaintExtension.json
new file mode 100644
index 000000000..a9cdbba8c
--- /dev/null
+++ b/PickAndPaintExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/PickAndPaintExtension.git"
+}
diff --git a/PickAndPaintExtension.s4ext b/PickAndPaintExtension.s4ext
deleted file mode 100644
index 945eed357..000000000
--- a/PickAndPaintExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/PickAndPaintExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PickAndPaint
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucie Macron (University of Michigan), Jean-Baptiste Vimort (University of Michigan), James Hoctor (Kitware Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/PickAndPaintExtension/master/PickAndPaint/Resources/Icons/PickAndPaint.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Pick 'n Paint tool allows users to select ROIs on a reference model and to propagate it over different time point models.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/a/ac/Pick%27NPaint_Interface.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Pipelines.json b/Pipelines.json
new file mode 100644
index 000000000..bd982b0ac
--- /dev/null
+++ b/Pipelines.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Pipelines",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/KitwareMedical/SlicerPipelines.git"
+}
diff --git a/Pipelines.s4ext b/Pipelines.s4ext
deleted file mode 100644
index d0891522a..000000000
--- a/Pipelines.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerPipelines.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerPipelines/blob/main/README.md
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Connor Bowley (Kitware, Inc.), Sam Horvath (Kitware, Inc.), Harald Scheirich (Kitware Inc.), David Allemang (Kitware Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Pipelines
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerPipelines/main/Pipelines.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SlicerPipelines is an extension for 3D Slicer that offers the ability to create simple modules (aka pipelines) via a GUI interface with no coding knowledge needed
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/SlicerPipelines/main/Screenshots/1.png https://raw.githubusercontent.com/KitwareMedical/SlicerPipelines/main/Screenshots/2.png https://raw.githubusercontent.com/KitwareMedical/SlicerPipelines/main/Screenshots/3.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PkModeling.json b/PkModeling.json
new file mode 100644
index 000000000..82666a4f5
--- /dev/null
+++ b/PkModeling.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "pkmodeling-build",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/PkModeling.git"
+}
diff --git a/PkModeling.s4ext b/PkModeling.s4ext
deleted file mode 100644
index a3f9cebac..000000000
--- a/PkModeling.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/PkModeling.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory pkmodeling-build
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Modules/PkModeling
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Yingxuan Zhu (GE), Jim Miller (GE), Andriy Fedorov (BWH), Ming-ching Chang (GE), Mahnaz Maddah (SRI), Michael Schwier (BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://wiki.slicer.org/slicerWiki/images/3/34/PkModeling.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Beta
-
-# One line stating what the module does
-description PkModeling is a Slicer4 Extension that provides pharmacokinetic modeling for dynamic contrast enhanced MRI (DCE MRI).
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PortPlacement.json b/PortPlacement.json
new file mode 100644
index 000000000..d8a226657
--- /dev/null
+++ b/PortPlacement.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/PortPlacement.git"
+}
diff --git a/PortPlacement.s4ext b/PortPlacement.s4ext
deleted file mode 100644
index 197a8ed8f..000000000
--- a/PortPlacement.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/PortPlacement.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PortPlacement
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andinet Enquobahrie (Kitware), Luis G. Torres (UNC), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/a/a7/Portplacement_icon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status This extension is intended for public use and we expect to fully maintain it.
-
-# One line stating what the module does
-description Assists in the planning of surgical port placement in a laparoscopic procedure.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/3/32/Portplacement.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/PyTorch.json b/PyTorch.json
new file mode 100644
index 000000000..864f82309
--- /dev/null
+++ b/PyTorch.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/fepegar/SlicerPyTorch.git"
+}
diff --git a/PyTorch.s4ext b/PyTorch.s4ext
deleted file mode 100644
index 45b422f45..000000000
--- a/PyTorch.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/fepegar/SlicerPyTorch.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/fepegar/SlicerPyTorch
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Fernando Pérez-GarcÃa (University College London and King's College London), Andras Lasso (PerkLab Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/fepegar/SlicerPyTorch/master/PyTorch.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Utilities to install and use PyTorch within 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/fepegar/SlicerPyTorch/master/project_week_diagram.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Q3DC.json b/Q3DC.json
new file mode 100644
index 000000000..13ac96aff
--- /dev/null
+++ b/Q3DC.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerMarkupConstraints"
+ ],
+ "build_subdirectory": ".",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/Q3DCExtension.git"
+}
diff --git a/Q3DC.s4ext b/Q3DC.s4ext
deleted file mode 100644
index 2169fa305..000000000
--- a/Q3DC.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/Q3DCExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerMarkupConstraints
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/Q3DC
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucie Macron (University of Michigan), Jean-Baptiste Vimort (University of Michigan), James Hoctor (Kitware Inc), David Allemang (Kitware Inc)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/Q3DCExtension/master/Q3DC.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension contains one module of the same name. Using placed fiducials, it allows users to compute 2D angles: Yaw, Pitch and Roll; and decompose the 3D distance into the three different components: R-L, A-P and S-I. It is possible to compute the middle point between two fiducials and export the values.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/index.php/File:Q3DC_Interface.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/QuantitativeReporting.json b/QuantitativeReporting.json
new file mode 100644
index 000000000..399735ce9
--- /dev/null
+++ b/QuantitativeReporting.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox",
+ "DCMQI",
+ "PETDICOMExtension"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/QuantitativeReporting.git"
+}
diff --git a/QuantitativeReporting.s4ext b/QuantitativeReporting.s4ext
deleted file mode 100644
index 5a329dbb6..000000000
--- a/QuantitativeReporting.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/QuantitativeReporting.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox DCMQI PETDICOMExtension
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://qiicr.gitbooks.io/quantitativereporting-guide
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Herz (SPL), Andrey Fedorov (SPL, BWH), Csaba Pinter (Queen`s), Andras Lasso (Queen`s), Steve Pieper (Isomics)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/QIICR/QuantitativeReporting/raw/master/QuantitativeReporting/Resources/Icons/ReportingLogo128px.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Work in progress
-
-# One line stating what the module does
-description Segmentation-based measurements with DICOM-based import and export of the results.
-
-# Space separated list of urls
-screenshoturls https://github.com/QIICR/QuantitativeReporting/raw/master/QuantitativeReporting/Resources/Screenshots/QuantitativeReporting-screenshot.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/RVXLiverSegmentation.json b/RVXLiverSegmentation.json
new file mode 100644
index 000000000..eb4f12c4c
--- /dev/null
+++ b/RVXLiverSegmentation.json
@@ -0,0 +1,12 @@
+{
+ "build_dependencies": [
+ "SlicerVMTK",
+ "MarkupsToModel",
+ "SegmentEditorExtraEffects",
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation"
+}
diff --git a/RVXLiverSegmentation.s4ext b/RVXLiverSegmentation.s4ext
deleted file mode 100644
index 24d2d0a5a..000000000
--- a/RVXLiverSegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerVMTK MarkupsToModel SegmentEditorExtraEffects PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucie Macron (Kitware SAS), Thibault Pelletier (Kitware SAS), Camille Huet (Kitware SAS), Leo Sanchez (Kitware SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation/raw/main/RVXLiverSegmentation/Resources/Icons/RVXLiverSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Liver and hepatic vessels segmentation plugin
-
-# Space separated list of urls
-screenshoturls https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation/raw/main/Screenshots/1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/RVXVesselnessFilters.json b/RVXVesselnessFilters.json
new file mode 100644
index 000000000..4544c2489
--- /dev/null
+++ b/RVXVesselnessFilters.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Filtering.Vesselness",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/R-Vessel-X/SlicerRVXVesselnessFilters"
+}
diff --git a/RVXVesselnessFilters.s4ext b/RVXVesselnessFilters.s4ext
deleted file mode 100644
index f9703244e..000000000
--- a/RVXVesselnessFilters.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/R-Vessel-X/SlicerRVXVesselnessFilters
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/R-Vessel-X/SlicerRVXVesselnessFilters
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jonas Lamy (LIRIS), Odyssée Merveille (CREATIS), Bertrand Kerautret (LIRIS), Nicolas Passat (CRESTIC), Thibault Pelletier (Kitware SAS), Laurenn Lam (Kitware SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering.Vesselness
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/R-Vessel-X/SlicerRVXLiverSegmentation/raw/main/RVXLiverSegmentation/Resources/Icons/RVXLiverSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Hessian Vesselness Filters extension
-
-# Space separated list of urls
-screenshoturls https://github.com/R-Vessel-X/SlicerRVXVesselnessFilters/raw/main/Screenshots/RVX_vesselness_example.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/RawImageGuess.json b/RawImageGuess.json
new file mode 100644
index 000000000..9423eaafd
--- /dev/null
+++ b/RawImageGuess.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/acetylsalicyl/SlicerRawImageGuess"
+}
diff --git a/RawImageGuess.s4ext b/RawImageGuess.s4ext
deleted file mode 100644
index f74b8fc96..000000000
--- a/RawImageGuess.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/acetylsalicyl/SlicerRawImageGuess
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/acetylsalicyl/SlicerRawImageGuess
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Attila Nagy (University of Szeged, Szeged, Hungary), Csaba Pinter (Queen's University, Kingston, Ontario, Canada), Andras Lasso (Queen's University, Kingston, Ontario, Canada), Steve Pieper (Isomics Inc., Cambridge, MA, USA)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/acetylsalicyl/SlicerRawImageGuess/raw/master/RawImageGuess.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows loading images from unknown file formats. Image dimensions, bit depth, etc. parameters can be determined by trial and error, based on live preview.
-
-# Space separated list of urls
-screenshoturls https://github.com/acetylsalicyl/SlicerRawImageGuess/raw/master/Screenshot01.png https://github.com/acetylsalicyl/SlicerRawImageGuess/raw/master/Screenshot02.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/RegistrationQA.json b/RegistrationQA.json
new file mode 100644
index 000000000..92477b6dd
--- /dev/null
+++ b/RegistrationQA.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/gsi-biomotion/Slicer-RegQA.git"
+}
diff --git a/RegistrationQA.s4ext b/RegistrationQA.s4ext
deleted file mode 100644
index f49814d40..000000000
--- a/RegistrationQA.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/gsi-biomotion/Slicer-RegQA.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/gsi-biomotion/Slicer-RegQA/wiki
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Kristjan Anderle (GSI), Tobias Brandt (University Clinic of Erlangen), Daniel Richter (University Clinic of Erlangen), Jens Woelfelschneider (University Clinic of Erlangen)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/gsi-biomotion/SlicerRegistrationQA/master/RegistrationQA/Resources/Icons/RegistrationQAIcon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Code has been developed in colaboration with GSI and UK Erlangen and should help also others with registration QA.
-
-# One line stating what the module does
-description Image registration quality assurance tool.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/gsi-biomotion/SlicerRegistrationQA/master/Screenshots/RegQAOverview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ResectionPlanner.json b/ResectionPlanner.json
new file mode 100644
index 000000000..79b5e7a50
--- /dev/null
+++ b/ResectionPlanner.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/ResectionPlanner.git"
+}
diff --git a/ResectionPlanner.s4ext b/ResectionPlanner.s4ext
deleted file mode 100644
index bc92b4e3c..000000000
--- a/ResectionPlanner.s4ext
+++ /dev/null
@@ -1,13 +0,0 @@
-build_subdirectory .
-category IGT
-contributors Matt Lougheed (Queen's University)
-depends SlicerRT
-description Modules for surgical resection planning.
-enabled 1
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/ResectionPlanner
-iconurl https://wiki.slicer.org/slicerWiki/images/d/d6/ResectionPlannerLogo.png
-scm git
-scmrevision master
-scmurl https://github.com/SlicerIGT/ResectionPlanner.git
-screenshoturls https://www.slicer.org/w/img_auth.php/8/82/ResectionVolume_Screenshot.png
-status
diff --git a/SNRMeasurement.json b/SNRMeasurement.json
new file mode 100644
index 000000000..d78085c5b
--- /dev/null
+++ b/SNRMeasurement.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SNRLab/SNRMeasurement"
+}
diff --git a/SNRMeasurement.s4ext b/SNRMeasurement.s4ext
deleted file mode 100644
index 67aabdbde..000000000
--- a/SNRMeasurement.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SNRLab/SNRMeasurement
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SNRLab/SNRMeasurement#snrmeasurement
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Babak Matinfar (BWH), Junichi Tokuda (BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SNRLab/SNRMeasurement/master/SNRMeasurement.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description 3D Slicer CLI to calculate SNR of images.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SNRLab/SNRMeasurement/master/SNRRegions.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SPHARM-PDM.json b/SPHARM-PDM.json
new file mode 100644
index 000000000..49cc297af
--- /dev/null
+++ b/SPHARM-PDM.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "MeshToLabelMap"
+ ],
+ "build_subdirectory": "SPHARM-PDM-build",
+ "category": "SPHARM",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NIRALUser/SPHARM-PDM.git"
+}
diff --git a/SPHARM-PDM.s4ext b/SPHARM-PDM.s4ext
deleted file mode 100644
index 420066d17..000000000
--- a/SPHARM-PDM.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/NIRALUser/SPHARM-PDM.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends MeshToLabelMap
-
-# Inner build directory (default is .)
-build_subdirectory SPHARM-PDM-build
-
-# homepage
-homepage https://www.nitrc.org/projects/spharm-pdm
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Beatriz Paniagua (UNC), Francois Budin (UNC), Martin Styner (UNC), Laura Pascal (Kitware), Hina Shah (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category SPHARM
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/NIRALUser/SPHARM-PDM/master/Modules/Scripted/ShapeAnalysisModule/Resources/Icons/ShapeAnalysisModule.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description SPHARM-PDM is a tool that computes point-based models using a parametric boundary description for the computing of Shape Analysis.
-
-# Space separated list of urls
-screenshoturls https://www.na-mic.org/w/img_auth.php/3/34/Spharm-pdm-snapshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Sandbox.json b/Sandbox.json
new file mode 100644
index 000000000..93af35b5a
--- /dev/null
+++ b/Sandbox.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Examples",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerSandbox.git"
+}
diff --git a/Sandbox.s4ext b/Sandbox.s4ext
deleted file mode 100644
index b98119703..000000000
--- a/Sandbox.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerSandbox.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/PerkLab/SlicerSandbox
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (Queen's University), Andras Lasso (Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Examples
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/PerkLab/SlicerSandbox/raw/master/Sandbox_Logo_128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Collection of utilities that are not polished implementations but can be useful to users
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/PerkLab/SlicerSandbox/master/RemovePatientTable.jpg https://raw.githubusercontent.com/PerkLab/SlicerSandbox/master/Lights.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ScatteredTransform.json b/ScatteredTransform.json
new file mode 100644
index 000000000..8346358f5
--- /dev/null
+++ b/ScatteredTransform.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Sunderlandkyl/ScatteredTransform"
+}
diff --git a/ScatteredTransform.s4ext b/ScatteredTransform.s4ext
deleted file mode 100644
index 3386db18e..000000000
--- a/ScatteredTransform.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Sunderlandkyl/ScatteredTransform
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ScatteredTransform
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Grand Joldes (The University of Western Australia, ISML)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/grandwork2/ScatteredTransform/master/ScatteredTransform.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Creates a BSpline transform from a displacement field defined at scattered points by using the Multi-level BSpline interpolation algorithm.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/grandwork2/ScatteredTransform/master/Screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Scoliosis.json b/Scoliosis.json
new file mode 100644
index 000000000..0caec382d
--- /dev/null
+++ b/Scoliosis.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/Scoliosis.git"
+}
diff --git a/Scoliosis.s4ext b/Scoliosis.s4ext
deleted file mode 100644
index 1f090f3cd..000000000
--- a/Scoliosis.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/Scoliosis.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://www.assembla.com/spaces/Scoliosis/wiki
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Franklin King (PerkLab, Queen's University), Tamas Ungi (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/2/2b/ScoliosisLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Experimental
-
-# One line stating what the module does
-description Extensions pertaining to scoliosis analysis
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/d/d1/ScoliosisScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SegmentEditorExtraEffects.json b/SegmentEditorExtraEffects.json
new file mode 100644
index 000000000..dcdb57fb2
--- /dev/null
+++ b/SegmentEditorExtraEffects.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "MarkupsToModel"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerSegmentEditorExtraEffects"
+}
diff --git a/SegmentEditorExtraEffects.s4ext b/SegmentEditorExtraEffects.s4ext
deleted file mode 100644
index 55cc41452..000000000
--- a/SegmentEditorExtraEffects.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerSegmentEditorExtraEffects
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends MarkupsToModel
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerSegmentEditorExtraEffects
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's), Kyle MacNeil (Med-i Lab, Queen's; SPL, BWH), Andrey Fedorov (SPL, BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerSegmentEditorExtraEffects/master/SegmentEditorExtraEffects.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Experimental effects for Segment Editor
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerSegmentEditorExtraEffects/master/FastMarchingInput.png https://raw.githubusercontent.com/lassoan/SlicerSegmentEditorExtraEffects/master/FastMarchingOutput.png https://raw.githubusercontent.com/lassoan/SlicerSegmentEditorExtraEffects/master/WatershedOutput.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SegmentMesher.json b/SegmentMesher.json
new file mode 100644
index 000000000..4ef077574
--- /dev/null
+++ b/SegmentMesher.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerSegmentMesher.git"
+}
diff --git a/SegmentMesher.s4ext b/SegmentMesher.s4ext
deleted file mode 100644
index 6ea7c8cfa..000000000
--- a/SegmentMesher.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerSegmentMesher.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/lassoan/SlicerSegmentMesher
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerSegmentMesher/master/SlicerSegmentMesher.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Create volumetric mesh from segmentation using Cleaver2 or TetGen.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerSegmentMesher/master/Screenshot01.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SegmentRegistration.json b/SegmentRegistration.json
new file mode 100644
index 000000000..86d02581f
--- /dev/null
+++ b/SegmentRegistration.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "SlicerProstate",
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerRt/SegmentRegistration.git"
+}
diff --git a/SegmentRegistration.s4ext b/SegmentRegistration.s4ext
deleted file mode 100644
index 8eb29963c..000000000
--- a/SegmentRegistration.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerRt/SegmentRegistration.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerProstate SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerRt/SegmentRegistration
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerRt/SegmentRegistration/raw/master/Logo/SegmentRegistration_Logo_128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Segment registration is an extension that contains generic and more specialized modules for registering two delineations of the same structure, and propagating other segmented structures from one dataset to the other (also called fusion or contour propagation).
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/a/a1/20170526_ProstatMRIUSContourPropagation.png https://www.slicer.org/slicerWiki/images/1/15/20160329_MRIUS_1500.gif
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SegmentWithSAM.json b/SegmentWithSAM.json
new file mode 100644
index 000000000..074043cf3
--- /dev/null
+++ b/SegmentWithSAM.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/mazurowski-lab/SlicerSegmentWithSAM"
+}
diff --git a/SegmentWithSAM.s4ext b/SegmentWithSAM.s4ext
deleted file mode 100644
index 7f0698fb8..000000000
--- a/SegmentWithSAM.s4ext
+++ /dev/null
@@ -1,11 +0,0 @@
-scm git
-scmurl https://github.com/mazurowski-lab/SlicerSegmentWithSAM
-scmrevision main
-depends PyTorch
-build_subdirectory .
-homepage https://github.com/mazurowski-lab/SlicerSegmentWithSAM
-contributors Zafer Yildiz (Mazurowski Lab, Duke University)
-category Segmentation
-iconurl https://raw.githubusercontent.com/mazurowski-lab/SlicerSegmentWithSAM/main/SegmentWithSAM/Resources/Icons/SegmentWithSAM.png
-description SegmentWithSAM aims to asist its users in segmenting medical data on 3D Slicer by comprehensively integrating the Segment Anything Model (SAM) developed by Meta.
-screenshoturls https://raw.githubusercontent.com/mazurowski-lab/SlicerSegmentWithSAM/main/Screenshots/sws1.png https://raw.githubusercontent.com/mazurowski-lab/SlicerSegmentWithSAM/main/Screenshots/sws2.png https://raw.githubusercontent.com/mazurowski-lab/SlicerSegmentWithSAM/main/Screenshots/sws3.png https://raw.githubusercontent.com/mazurowski-lab/SlicerSegmentWithSAM/main/Screenshots/sws4.png
diff --git a/SegmentationAidedRegistration.json b/SegmentationAidedRegistration.json
new file mode 100644
index 000000000..6c04e3c67
--- /dev/null
+++ b/SegmentationAidedRegistration.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/gaoyi/SegmentationAidedRegistration.git"
+}
diff --git a/SegmentationAidedRegistration.s4ext b/SegmentationAidedRegistration.s4ext
deleted file mode 100644
index 8553327ae..000000000
--- a/SegmentationAidedRegistration.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/gaoyi/SegmentationAidedRegistration.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/SegmentationAidedRegistration
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Yi Gao (BWH/UAB), Liang-Jia Zhu (UAB), Josh Cates (Utah), Alan Morris (Utah), Danny Perry (Utah), Greg Gardner (Utah), Rob MacLeod (Utah), Sylvain Bouix (BWH), Allen Tannenbaum (UAB)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/b/ba/SegAidedRegSquareFocus128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Performe the registration with the aid from segmentation so that the segmented regions have close match.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/b/ba/SegmentationAidedRegistrationUsageScreenShot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SegmentationReview.json b/SegmentationReview.json
new file mode 100644
index 000000000..619d52ce3
--- /dev/null
+++ b/SegmentationReview.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/zapaishchykova/SegmentationReview"
+}
diff --git a/SegmentationReview.s4ext b/SegmentationReview.s4ext
deleted file mode 100644
index 5f0ee5c2f..000000000
--- a/SegmentationReview.s4ext
+++ /dev/null
@@ -1,36 +0,0 @@
-# This is source code manager
-scm git
-scmurl https://github.com/zapaishchykova/SegmentationReview
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/zapaishchykova/SegmentationReview
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Anna Zapaishchykova (AIM Lab, BWH), Dr. Benjamin H. Kann (AIM Lab, BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.github.com/zapaishchykova/SegmentationReview/bd21693438a9bafed7e3a74313c0129860c9a74b/SlicerSegReview/Resources/Icons/SlicerSegReview.png
-
-# Give people an idea what to expect from this code
-status beta
-
-# One line stating what the module does
-description The SegmentationReview extension enables clinician to quickly review of Deep-learning generated segmentations using Likert-type score. The dataset loads in one batch with no need to load masks and volumes separately. The results are saved in a csv file, which can be used for further analysis.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/zapaishchykova/SegmentationReview/bd21693438a9bafed7e3a74313c0129860c9a74b/pics/screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SequenceRegistration.json b/SequenceRegistration.json
new file mode 100644
index 000000000..6c3200c4b
--- /dev/null
+++ b/SequenceRegistration.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerElastix"
+ ],
+ "build_subdirectory": ".",
+ "category": "Sequences",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/moselhy/SlicerSequenceRegistration"
+}
diff --git a/SequenceRegistration.s4ext b/SequenceRegistration.s4ext
deleted file mode 100644
index 380c38cb3..000000000
--- a/SequenceRegistration.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/moselhy/SlicerSequenceRegistration
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerElastix
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/moselhy/SlicerSequenceRegistration
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Mohamed Moselhy (Western University), Andras Lasso (PerkLab, Queen's University), Feng Su (Western University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Sequences
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/moselhy/SlicerSequenceRegistration/master/SequenceRegistration/Resources/Icons/SequenceRegistration.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension registers 4D volume sequences for motion compensation or motion analysis.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/moselhy/SlicerSequenceRegistration/master/screenshot01.png https://raw.githubusercontent.com/moselhy/SlicerSequenceRegistration/master/screenshot02.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ShapePopulationViewer.json b/ShapePopulationViewer.json
new file mode 100644
index 000000000..4fb99559c
--- /dev/null
+++ b/ShapePopulationViewer.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Shape Visualization",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NIRALUser/ShapePopulationViewer.git"
+}
diff --git a/ShapePopulationViewer.s4ext b/ShapePopulationViewer.s4ext
deleted file mode 100644
index c8e09be24..000000000
--- a/ShapePopulationViewer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/NIRALUser/ShapePopulationViewer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.nitrc.org/projects/shapepopviewer/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Alexis Girault (NIRAL, UNC), Francois Budin (NIRAL, UNC), Laura Pascal (DCBIA-OrthoLab, UofM)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Visualization
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.nitrc.org/project/screenshot.php?group_id=759&screenshot_id=704
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Visualize and interact with multiple surfaces at the same time to easily compare them
-
-# Space separated list of urls
-screenshoturls https://www.na-mic.org/w/img_auth.php/8/81/Screenshot1.png https://www.na-mic.org/w/img_auth.php/1/13/SPVscreenshot2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ShapeRegressionExtension.json b/ShapeRegressionExtension.json
new file mode 100644
index 000000000..2bf0db797
--- /dev/null
+++ b/ShapeRegressionExtension.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "ShapeRegressionExtension-build",
+ "category": "Shape Regression",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/ShapeRegressionExtension.git"
+}
diff --git a/ShapeRegressionExtension.s4ext b/ShapeRegressionExtension.s4ext
deleted file mode 100644
index b7ed6346c..000000000
--- a/ShapeRegressionExtension.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/ShapeRegressionExtension.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory ShapeRegressionExtension-build
-
-# homepage
-homepage https://salt.slicer.org/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Laura Pascal (Kitware Inc.), Beatriz Paniagua (Kitware Inc.), James Fishbaugh (University of North Carolina)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Regression
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/slicersalt/slicersalt.github.io/master/img/favicons/favicon-128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description Computation and visualization of time-regressed shapes in a collection of 3D shape inputs associated to a linear variable
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/slicersalt/slicersalt.github.io/b34f1452faf111175b203d0172b6f45807d996e2/img/about-section/regression.gif
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ShapeVariationAnalyzer.json b/ShapeVariationAnalyzer.json
new file mode 100644
index 000000000..05bee6f9d
--- /dev/null
+++ b/ShapeVariationAnalyzer.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "ShapePopulationViewer"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/ShapeVariationAnalyzer.git"
+}
diff --git a/ShapeVariationAnalyzer.s4ext b/ShapeVariationAnalyzer.s4ext
deleted file mode 100644
index 8077ab0a7..000000000
--- a/ShapeVariationAnalyzer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/ShapeVariationAnalyzer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends ShapePopulationViewer
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/ShapeVariationAnalyzer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Priscille de Dumast (University of Michigan), Laura Pascal (University of Michigan), Nina Tubau (University of Michigan), Juan Carlos Prieto (University of North Carolina)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/ShapeVariationAnalyzer/master/ShapeVariationAnalyzer.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description ShapeVariationAnalyzer allows the classification of 3D models, according to their morphological variations. This tool is based on a deep learning neural network.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/DCBIA-OrthoLab/ShapeVariationAnalyzer/master/doc/images/FullView_ShapeVariationAnalyzer.png https://raw.githubusercontent.com/DCBIA-OrthoLab/ShapeVariationAnalyzer/master/doc/images/ShapeVariationAnalyzer-GUI.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SkeletalRepresentation.json b/SkeletalRepresentation.json
new file mode 100644
index 000000000..c2dc004c3
--- /dev/null
+++ b/SkeletalRepresentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Shape Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/SlicerSkeletalRepresentation.git"
+}
diff --git a/SkeletalRepresentation.s4ext b/SkeletalRepresentation.s4ext
deleted file mode 100644
index f5096086c..000000000
--- a/SkeletalRepresentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerSkeletalRepresentation.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerSkeletalRepresentation/blob/master/README.md
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Zhiyuan Liu (University of North Carolina at Chapel Hill), Junpyo Hong (University of North Carolina at Chapel Hill), Stephen M. Pizer (University of North Carolina at Chapel Hill), Jared Vicory (Kitware, Inc.), Pablo Hernandez-Cerdan (Kitware, Inc.), Beatriz Paniagua (Kitware, Inc.), Jean-Christophe Fillion-Robin (Kitware, Inc.), Connor Bowley (Kitware, Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Shape Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerSkeletalRepresentation/master/img/SRep.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows for the creation, refinement, and viewing of Skeletal representations (s-reps).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/SlicerSkeletalRepresentation/529b95bc6d5275297c68b7666772242abd65b897/VisualizationScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SkinMouldGenerator.json b/SkinMouldGenerator.json
new file mode 100644
index 000000000..43e162aaa
--- /dev/null
+++ b/SkinMouldGenerator.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Radiotherapy",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerSkinMouldGenerator.git"
+}
diff --git a/SkinMouldGenerator.s4ext b/SkinMouldGenerator.s4ext
deleted file mode 100644
index 16eb030d3..000000000
--- a/SkinMouldGenerator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerSkinMouldGenerator.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/PerkLab/SlicerSkinMouldGenerator#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Mark Schumacher (PerkLab, Queen's University), Jacob Andreou (PerkLab, Queen's University), Ian Cumming (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Radiotherapy
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/PerkLab/SlicerSkinMouldGenerator/raw/master/SkinMouldGenerator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description 3D Slicer extension for generating 3D-printable HDR Brachytherapy applicator for treatment of skin cancer.
-
-# Space separated list of urls
-screenshoturls https://github.com/PerkLab/SlicerSkinMouldGenerator/raw/master/Doc/MouldInputs.png https://github.com/PerkLab/SlicerSkinMouldGenerator/raw/master/Doc/MouldResult.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SkullStripper.json b/SkullStripper.json
new file mode 100644
index 000000000..070dda905
--- /dev/null
+++ b/SkullStripper.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Slicer/SkullStripper.git"
+}
diff --git a/SkullStripper.s4ext b/SkullStripper.s4ext
deleted file mode 100644
index bc878e252..000000000
--- a/SkullStripper.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SkullStripper.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/SkullStripper
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Xiaodong Tao (GE), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/f/f2/SkullStripper.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Skull stripping for structural MR images of the brain, tested on T1 and T2 contrast.
-
-# Space separated list of urls
-screenshoturls https://wiki.slicer.org/slicerWiki/images/a/ab/Slicer-r19441-CLIExtensionTemplate-screenshot.png https://wiki.slicer.org/slicerWiki/images/1/1e/Slicer-r19441-CLIExtensionTemplate-screenshot-2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerAIGT.json b/SlicerAIGT.json
new file mode 100644
index 000000000..5372a1f0b
--- /dev/null
+++ b/SlicerAIGT.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "SlicerOpenIGTLink",
+ "SlicerIGT"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/aigt.git"
+}
diff --git a/SlicerAIGT.s4ext b/SlicerAIGT.s4ext
deleted file mode 100644
index 79d6ff644..000000000
--- a/SlicerAIGT.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/aigt.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerOpenIGTLink SlicerIGT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/aigt
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Tamas Ungi (PerkLab, Queen's University), Rebbecca Hisey (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Kyle Sunderland (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerIGT/aigt/raw/master/SlicerAIGTLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension contains modules to assist in deep learning for guided medical interventions. Included modules can collect data, train networks, and deploy models for real-time image classification.
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerIGT/aigt/raw/master/Screenshots/UltrasoundSegmentation.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerANTs.json b/SlicerANTs.json
new file mode 100644
index 000000000..a697116cb
--- /dev/null
+++ b/SlicerANTs.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/netstim/SlicerANTs.git"
+}
diff --git a/SlicerANTs.s4ext b/SlicerANTs.s4ext
deleted file mode 100644
index 9211f4a61..000000000
--- a/SlicerANTs.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/netstim/SlicerANTs.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/netstim/SlicerANTs
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Simon Oxenford (Netstim Berlin)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/netstim/SlicerANTs/master/logo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description This extension implements antsRegistration in Slicer
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/netstim/SlicerANTs/master/Documentation/MR-CT_example.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerAutoscoperM.json b/SlicerAutoscoperM.json
new file mode 100644
index 000000000..179e0a6fe
--- /dev/null
+++ b/SlicerAutoscoperM.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "Sandbox",
+ "SegmentEditorExtraEffects"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Tracking",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/BrownBiomechanics/SlicerAutoscoperM.git"
+}
diff --git a/SlicerAutoscoperM.s4ext b/SlicerAutoscoperM.s4ext
deleted file mode 100644
index 5e461a737..000000000
--- a/SlicerAutoscoperM.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/BrownBiomechanics/SlicerAutoscoperM.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends Sandbox SegmentEditorExtraEffects
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://autoscoperm.slicer.org/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Anthony Lombardi (Kitware), Amy Morton (Brown University), Bardiya Akhbari (Brown University), Beatriz Paniagua (Kitware), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Tracking
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/BrownBiomechanics/SlicerAutoscoperM/main/SlicerAutoscoperM.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SlicerAutoscoperM is an extension for 3D Slicer for 2D-3D image registration integrating with Autoscoper for image-based 3D motion tracking of skeletal structures.
-
-# Space separated list of urls
-screenshoturls https://github.com/BrownBiomechanics/SlicerAutoscoperM/releases/download/docs-resources/AutoscoperMainWindow.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerAutoscroll.json b/SlicerAutoscroll.json
new file mode 100644
index 000000000..729803d07
--- /dev/null
+++ b/SlicerAutoscroll.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerAutoscroll"
+}
diff --git a/SlicerAutoscroll.s4ext b/SlicerAutoscroll.s4ext
deleted file mode 100644
index 3124cf351..000000000
--- a/SlicerAutoscroll.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerAutoscroll
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerAutoscroll
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Mohamed Moselhy (Western University), Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/lassoan/SlicerAutoscroll/raw/master/Autoscroll.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Autoscroll through slices using slice range and speed
-
-# Space separated list of urls
-screenshoturls https://github.com/lassoan/SlicerAutoscroll/raw/master/docs/screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerBatchAnonymize.json b/SlicerBatchAnonymize.json
new file mode 100644
index 000000000..c8f93d2fb
--- /dev/null
+++ b/SlicerBatchAnonymize.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "DSCI",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/hina-shah/SlicerBatchAnonymize.git"
+}
diff --git a/SlicerBatchAnonymize.s4ext b/SlicerBatchAnonymize.s4ext
deleted file mode 100644
index 029e10ca0..000000000
--- a/SlicerBatchAnonymize.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/hina-shah/SlicerBatchAnonymize.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/hina-shah/SlicerBatchAnonymize
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Hina Shah (UNC Chapel Hill), Juan Carlos Prieto (UNC, Chapel Hill)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category DSCI
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/hina-shah/SlicerBatchAnonymize/main/SlicerBatchAnonymize.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SlicerBatchAnonymize is a Slicer extension that provides a user friendly interface to anonymize a 'batch' of DICOM images.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/hina-shah/SlicerBatchAnonymize/main/Documentation/GUIPreview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerBiomech.json b/SlicerBiomech.json
new file mode 100644
index 000000000..e3a7407f6
--- /dev/null
+++ b/SlicerBiomech.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerMorph"
+ ],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/jmhuie/SlicerBiomech.git"
+}
diff --git a/SlicerBiomech.s4ext b/SlicerBiomech.s4ext
deleted file mode 100644
index d89a70a57..000000000
--- a/SlicerBiomech.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/jmhuie/SlicerBiomech.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerMorph
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://github.com/jmhuie/SlicerBiomech
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jonathan Huie (George Washington University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/jmhuie/SlicerBiomech/main/SlicerBiomech.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Alpha
-
-# One line stating what the module does
-description This extension enables the calculation of biomechanical traits and properties from 3D specimen data.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/jmhuie/SlicerBiomech/main/SegmentGeometry/Resources/Icons/SegmentGeometryScreenshot1.png https://raw.githubusercontent.com/jmhuie/SlicerBiomech/main/DentalDynamics/Resources/Icons/DentalDynamicsScreenshot1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerCBCTToothSegmentation.json b/SlicerCBCTToothSegmentation.json
new file mode 100644
index 000000000..03dfb7632
--- /dev/null
+++ b/SlicerCBCTToothSegmentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/SlicerCBCTToothSegmentation.git"
+}
diff --git a/SlicerCBCTToothSegmentation.s4ext b/SlicerCBCTToothSegmentation.s4ext
deleted file mode 100644
index 759dd93b3..000000000
--- a/SlicerCBCTToothSegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerCBCTToothSegmentation.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerCBCTToothSegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sadhana Ravikumar (Kitware Inc.), Jared Vicory (Kitware Inc.), James Fishbaugh (Kitware Inc.), Beatriz Paniagua (Kitware Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerCBCTToothSegmentation/master/CBCTToothSegmentation/Resources/Icons/CBCTToothSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Slicer extension for automated segmentation of individual teeth in cone-beam CT dental scans using a deep-learning based approach.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/SlicerCBCTToothSegmentation/master/Screenshot01.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerCMF.json b/SlicerCMF.json
new file mode 100644
index 000000000..689e77027
--- /dev/null
+++ b/SlicerCMF.json
@@ -0,0 +1,21 @@
+{
+ "build_dependencies": [
+ "AnglePlanesExtension",
+ "BoneTextureExtension",
+ "CMFreg",
+ "DatabaseInteractor",
+ "EasyClip",
+ "MeshToLabelMap",
+ "MeshStatisticsExtension",
+ "ModelToModelDistance",
+ "PickAndPaintExtension",
+ "Q3DC",
+ "SPHARM-PDM",
+ "ShapePopulationViewer",
+ "ShapeVariationAnalyzer"
+ ],
+ "build_subdirectory": ".",
+ "category": "SlicerCMF",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/SlicerCMF.git"
+}
diff --git a/SlicerCMF.s4ext b/SlicerCMF.s4ext
deleted file mode 100644
index c54715e42..000000000
--- a/SlicerCMF.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/SlicerCMF.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends AnglePlanesExtension BoneTextureExtension CMFreg DatabaseInteractor EasyClip MeshToLabelMap MeshStatisticsExtension ModelToModelDistance PickAndPaintExtension Q3DC SPHARM-PDM ShapePopulationViewer ShapeVariationAnalyzer
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://cmf.slicer.org/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucia Cevidanes (University of Michigan), Beatriz Paniagua (Kitware), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category SlicerCMF
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerCMF/master/SlicerCMF.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SlicerCMF is a 3D Slicer extension providing registration, segmentation and quantification modules for dental images analysis that may support patient-specific decision making and assessment in the context of disease progression.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/slicercmf/slicercmf.github.io/master/images/slicercmf-angles-between-craniofacial-structures.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerCaseIterator.json b/SlicerCaseIterator.json
new file mode 100644
index 000000000..93cc206fd
--- /dev/null
+++ b/SlicerCaseIterator.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox"
+ ],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/JoostJM/SlicerCaseIterator.git"
+}
diff --git a/SlicerCaseIterator.s4ext b/SlicerCaseIterator.s4ext
deleted file mode 100644
index d0565039d..000000000
--- a/SlicerCaseIterator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/JoostJM/SlicerCaseIterator.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/SlicerCaseIterator
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Joost van Griethuysen (AVL-NKI), Christian Herz (CHOP)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/JoostJM/SlicerCaseIterator/master/SlicerCaseIterator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Scripted module for iterating over a set of cases listed in a CSV file for segmentation or review.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/JoostJM/SlicerCaseIterator/master/SlicerCaseIterator-Screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerCervicalSpine.json b/SlicerCervicalSpine.json
new file mode 100644
index 000000000..cf64f37bc
--- /dev/null
+++ b/SlicerCervicalSpine.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerCochlea"
+ ],
+ "build_subdirectory": ".",
+ "category": "VisSimTools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine"
+}
diff --git a/SlicerCervicalSpine.s4ext b/SlicerCervicalSpine.s4ext
deleted file mode 100644
index 96211d845..000000000
--- a/SlicerCervicalSpine.s4ext
+++ /dev/null
@@ -1,45 +0,0 @@
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerCochlea
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://medicalimageanalysistutorials.github.io/SlicerCervicalSpine
-
-
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Ibraheem Al-Dhamari (VisSim, Koblenz-Landau University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category VisSimTools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/SlicerCervicalSpine.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The Cervical spine is the upper part of the spine that supports the head and its movements. It containes seven vertebrae C1 to C7. There are two modules in this extension (more are coming). Both modules do the same tasks but the first one for a single vertebra and the second module for the complete cervical spine.
Features:
1. Work on multi-modal images (so far it is tested against CT and MRI).
2. fast (around 5 seconds). 2. Automatic segmentation.
3. Automatic ligaments points detection.
4. Can be generalized to other parts of the spine or body. Cervical spien sample datasets are available in Slicer Data Store module.
You are welcome to contribute by correcting, enhancing, optimising the code or sharing your cervical spine dataset. For questions or problems using this extension please use gitHub issue or post in 3D Slicer forum. For more details please cite the related publications:
1. Ibraheem AL-Dhamari, Sabine Bauer, Eva Keller and Dietrich Paulus, Automatic Detection of Cervical Spine Ligaments Origin and Insertion Points. Accepted in The IEEE International Symposium on Biomedical Imaging (ISBI) 2019, Venice, Italy.
2. Ibraheem Al-Dhamari, Sabine Bauer, Dietrich Paulus, (2018), Automatic Multi-modal Cervical Spine Image Atlas Segmentation Using Adaptive Stochastic Gradient Descent, Bildverarbeitung für die Medizin 2018 pp 303-308.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CS00.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CVT01.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CVT02.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CVT03.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CVT04.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CVT05.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CST01.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CST02.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCervicalSpine/master/Screenshots/CST03.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerCochlea.json b/SlicerCochlea.json
new file mode 100644
index 000000000..fa12cd317
--- /dev/null
+++ b/SlicerCochlea.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerElastix"
+ ],
+ "build_subdirectory": ".",
+ "category": "VisSimTools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/MedicalImageAnalysisTutorials/SlicerCochlea"
+}
diff --git a/SlicerCochlea.s4ext b/SlicerCochlea.s4ext
deleted file mode 100644
index 684b52ce0..000000000
--- a/SlicerCochlea.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/MedicalImageAnalysisTutorials/SlicerCochlea
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerElastix
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://medicalimageanalysistutorials.github.io/SlicerCochlea
-
-#contributors
-contributors Ibraheem Al-Dhamari (VisSim, Koblenz-Landau University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category VisSimTools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/SlicerCochlea.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The cochlea is a very important part of the inner ear. It is responsible for the transfer of audio signals to the brain.
There are two modules in this extension:
- Cochlea Registration: Register and fuse cochlea images from different modalities.
- Cochlea Segmentation: Segment out the cochlea structure, scala tympani and other scalae (media and vestibuli) and measure the length and the size.
Both modules required a few seconds to complete the tasks. They use a customized set of parameters from elastix toolbox (itself using Insight Toolkit (ITK)). The extension will download elastix binaries and other necessary files so it will take some minutes when use first time. For testing, cochlea sample datasets can be downloaded using Slicer Data Store module.
You are welcome to contribute by optimising the code or sharing your cochlea dataset. For questions or problems using this extension please post in the GitHub issue tracker or on the Slicer Discussion Forum.
For more details please read the related publications:
- Al-Dhamari I et al. (2022) Automatic Cochlea Multimodal 3D Image Segmentation And Analysis Using Atlas-model-based Method (to be published!).
- Al-Dhamari I, Helal R, Morozova O, Abdelaziz T, Jacob R, et al. (2022) Automatic intra-subject registration and fusion of multimodal cochlea 3D clinical images. PLOS ONE 17(3): e0264449. https://doi.org/10.1371/journal.pone.0264449. Link
- Ibraheem Al-Dhamari, Sabine Bauer, Dietrich Paulus, Rania Helal, Friedrich Lisseck and Roland Jacob, (2018), Automatic Cochlear Length and Volume Size Estimation, Accepted in: First International Workshop on Context-Aware Operating Theater OR 2 MICCAI 2018, Granada Spain.
- Ibraheem Al-Dhamari, Sabine Bauer, Dietrich Paulus, Roland Jacob, (2018), Automatic Cochlea Multi-modal Images Segmentation Using Adaptive Stochastic Gradient Descent. In: CI2018 DC Emerging Issues in Cochlear Implantation, Washington DC, USA. (link).
- Ibraheem Al-Dhamari, Sabine Bauer, Dietrich Paulus and Roland Jacob, (2017): Automatic Cochlea Segmentation Using Diffusion Snakes. In: 15th Symposium on Cochlear Implants in Children, CI 2017, San Francisco, USA (link).
- Ibraheem Al-Dhamari, Sabine Bauer, Dietrich Paulus, Friedrich Lisseck and Roland Jacob, (2017): ACIR: automatic cochlea image registration. In: Proceedings SPIE Medical Imaging 2017: Image Processing
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/Screenshots/c.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/Screenshots/r1.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/Screenshots/r2.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/Screenshots/s1.png https://raw.githubusercontent.com/MedicalImageAnalysisTutorials/SlicerCochlea/master/Screenshots/s2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerConda.json b/SlicerConda.json
new file mode 100644
index 000000000..ddf3eabe9
--- /dev/null
+++ b/SlicerConda.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Conda",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/SlicerConda.git"
+}
diff --git a/SlicerConda.s4ext b/SlicerConda.s4ext
deleted file mode 100644
index ea0a3e07f..000000000
--- a/SlicerConda.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/SlicerConda.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/DCBIA-OrthoLab/SlicerConda#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Leroux Gaelle (University of Michigan) Claret Jeanne (University of Michigan) Allemang David (kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Conda
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerConda/main/CondaSetUp/Resources/Icons/CondaSetUp.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status standing behind
-
-# One line stating what the module does
-description This extension simplifies conda integration by managing installation path and providing tools for developpers to execute Conda commands.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerConda/main/screenshot/Screenshot2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerDMRI.json b/SlicerDMRI.json
new file mode 100644
index 000000000..a1e674922
--- /dev/null
+++ b/SlicerDMRI.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "UKFTractography"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Diffusion",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerDMRI/SlicerDMRI.git"
+}
diff --git a/SlicerDMRI.s4ext b/SlicerDMRI.s4ext
deleted file mode 100644
index 0ae8732d6..000000000
--- a/SlicerDMRI.s4ext
+++ /dev/null
@@ -1,26 +0,0 @@
-scm git
-scmurl https://github.com/SlicerDMRI/SlicerDMRI.git
-scmrevision master
-
-depends UKFTractography
-
-build_subdirectory inner-build
-
-homepage https://dmri.slicer.org/
-
-contributors Lauren O'Donnell (Brigham & Women's Hospital), Isaiah Norton (Brigham & Women's Hospital), Fan Zhang (Brigham & Women's Hospital), Alex Yarmarkovich (Brigham & Women's Hospital), Jon Haitz Legarreta Gorroño (Brigham & Women's Hospital)
-
-category Diffusion
-
-iconurl https://raw.githubusercontent.com/SlicerDMRI/slicerdmri.github.io/master/images/DMRI_3D_SLICER-icon.png
-
-status Beta
-
-# One line stating what the module does
-description SlicerDMRI provides tools to load diffusion MRI image data, perform tractography, and quantify results.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerDMRI/slicerdmri.github.io/master/images/DMRI_3D_SLICER.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerDcm2nii.json b/SlicerDcm2nii.json
new file mode 100644
index 000000000..f61496be8
--- /dev/null
+++ b/SlicerDcm2nii.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Diffusion",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerDMRI/SlicerDcm2nii.git"
+}
diff --git a/SlicerDcm2nii.s4ext b/SlicerDcm2nii.s4ext
deleted file mode 100644
index b53db0dc2..000000000
--- a/SlicerDcm2nii.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerDMRI/SlicerDcm2nii.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerDcm2nii
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Isaiah Norton, Fan Zhang, Lauren O'Donnell, Steve Pieper (BWH), and Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Diffusion
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://avatars0.githubusercontent.com/u/15898279?s=400&u=194e4f9b801c25b697c5431b829052a4774e0859&v=4
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description SlicerDcm2nii builds and distributes Chris Rorden's dcm2niix (https://github.com/rordenlab/dcm2niix) as part of the Slicer superbuild.
-
-# Space separated list of urls
-screenshoturls https://avatars0.githubusercontent.com/u/15898279?s=400&u=194e4f9b801c25b697c5431b829052a4774e0859&v=4
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerDensityLungSegmentation.json b/SlicerDensityLungSegmentation.json
new file mode 100644
index 000000000..cffc14f1b
--- /dev/null
+++ b/SlicerDensityLungSegmentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/pzaffino/SlicerDensityLungSegmentation.git"
+}
diff --git a/SlicerDensityLungSegmentation.s4ext b/SlicerDensityLungSegmentation.s4ext
deleted file mode 100644
index 3315b4780..000000000
--- a/SlicerDensityLungSegmentation.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/pzaffino/SlicerDensityLungSegmentation.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/pzaffino/SlicerDensityLungSegmentation
-
-contributors Paolo Zaffino (Magna Graecia University of Catanzaro, Italy), Maria Francesca Spadea (Magna Graecia University of Catanzaro, Italy)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/pzaffino/SlicerDensityLungSegmentation/main/DensityLungSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status alpha
-
-# One line stating what the module does
-description This extension labels lung tissues on basis of density (air, healthy, ground-glass opacities, consolidation, and denser tissues). Voxel-per-voxel label is provided alongside with an averaged volume.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/pzaffino/SlicerDensityLungSegmentation/main/DensityLungSegmentation_screenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerDentalModelSeg.json b/SlicerDentalModelSeg.json
new file mode 100644
index 000000000..99e1bdc0b
--- /dev/null
+++ b/SlicerDentalModelSeg.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/DCBIA-OrthoLab/SlicerDentalModelSeg.git"
+}
diff --git a/SlicerDentalModelSeg.s4ext b/SlicerDentalModelSeg.s4ext
deleted file mode 100644
index 542ac4f34..000000000
--- a/SlicerDentalModelSeg.s4ext
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/DCBIA-OrthoLab/SlicerDentalModelSeg.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/DCBIA-OrthoLab/SlicerDentalModelSeg/blob/main/readme.md
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Mathieu Leclercq (University of North Carolina), Connor Bowley (Kitware), Juan Carlos Prieto (University of North Carolina)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/DCBIA-OrthoLab/SlicerDentalModelSeg/raw/main/examples/logo_jaw_segmentation.png
-
-
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension aims to provide a GUI for a deep-learning automated teeth segmentation tool developed at the University of North Carolina in Chapel Hill.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/DCBIA-OrthoLab/SlicerDentalModelSeg/main/examples/segmentation_example.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerDevelopmentToolbox.json b/SlicerDevelopmentToolbox.json
new file mode 100644
index 000000000..2434b6d8d
--- /dev/null
+++ b/SlicerDevelopmentToolbox.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/SlicerDevelopmentToolbox.git"
+}
diff --git a/SlicerDevelopmentToolbox.s4ext b/SlicerDevelopmentToolbox.s4ext
deleted file mode 100644
index 1a1c5cc9a..000000000
--- a/SlicerDevelopmentToolbox.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/SlicerDevelopmentToolbox.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/SlicerDevelopmentToolbox
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Herz (Brigham and Women's Hospital), Andrey Fedorov (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/SlicerDevelopmentToolbox/master/Resources/Icons/SlicerDevelopmentToolbox.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Work in progress
-
-# One line stating what the module does
-description SlicerDevelopmentToolbox extension facilitates the development process of modules/extensions with a large variety of widgets, helpers, decorators, events, constants and mixin classes
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/0/0b/IncomingDataWindow.png https://www.slicer.org/slicerWiki/images/2/22/ModuleSettingsWidget.png https://www.slicer.org/slicerWiki/images/c/c9/RatingWindow.png https://www.slicer.org/slicerWiki/images/2/2a/TargetCreationWidget.png https://www.slicer.org/slicerWiki/images/e/ea/Watchbox.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerElastix.json b/SlicerElastix.json
new file mode 100644
index 000000000..2b1d79bf8
--- /dev/null
+++ b/SlicerElastix.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerElastix.git"
+}
diff --git a/SlicerElastix.s4ext b/SlicerElastix.s4ext
deleted file mode 100644
index fde397566..000000000
--- a/SlicerElastix.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerElastix.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/lassoan/SlicerElastix
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerElastix/master/SlicerElastix.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension makes available Elastix medical image registration toolbox (http://elastix.isi.uu.nl/) available in Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerElastix/master/Screenshot01.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerFab.json b/SlicerFab.json
new file mode 100644
index 000000000..4c3cb43f1
--- /dev/null
+++ b/SlicerFab.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Printing",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerFab/SlicerFab"
+}
diff --git a/SlicerFab.s4ext b/SlicerFab.s4ext
deleted file mode 100644
index acdcf4436..000000000
--- a/SlicerFab.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerFab/SlicerFab
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerFab/SlicerFab
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Steve Pieper (Isomics, Inc.), Ahmed Hosney (Harvard Wyss), James Weaver (Harvard Wyss), Steve Keating (MIT Media Lab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Printing
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerFab/SlicerFab/master/slices.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Tools for 3D object fabrication.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerFab/SlicerFab/master/rendering.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerFreeSurfer.json b/SlicerFreeSurfer.json
new file mode 100644
index 000000000..c87660adf
--- /dev/null
+++ b/SlicerFreeSurfer.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Neuroimaging",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerFreeSurfer.git"
+}
diff --git a/SlicerFreeSurfer.s4ext b/SlicerFreeSurfer.s4ext
deleted file mode 100644
index 0b038f491..000000000
--- a/SlicerFreeSurfer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerFreeSurfer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/PerkLab/SlicerFreeSurfer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Kyle Sunderland (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Neuroimaging
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/PerkLab/SlicerFreeSurfer/raw/master/SlicerFreeSurfer.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Extension for handling FreeSurfer files in Slicer. Features importer for models, scalar overlay, and segmentations. Handles transformation of models to from FreeSurfer to Slicer coordinate system.
-
-# Space separated list of urls
-screenshoturls https://github.com/PerkLab/SlicerFreeSurfer/raw/master/Screenshots/FreeSurferImporterInterface.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerHeart.json b/SlicerHeart.json
new file mode 100644
index 000000000..b880ae328
--- /dev/null
+++ b/SlicerHeart.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerIGT"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Cardiac",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerHeart/SlicerHeart.git"
+}
diff --git a/SlicerHeart.s4ext b/SlicerHeart.s4ext
deleted file mode 100644
index 687f6d70f..000000000
--- a/SlicerHeart.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerHeart/SlicerHeart.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerIGT
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/SlicerHeart/SlicerHeart#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University), Steve Pieper (Isomics), Adam Rankin (Robarts), Csaba Pinter (Pixel Medical / Ebatinca), Christian Herz (CHOP), Matthew Jolley (CHOP/UPenn)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Cardiac
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerHeart/SlicerHeart/raw/master/SlicerHeart.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Modules for cardiac analysis and intervention planning and guidance
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerHeart/SlicerHeart/raw/master/Docs/Image3dApiExample.png https://img.youtube.com/vi/hIxr9OKBvQ8/0.jpg https://raw.githubusercontent.com/SlicerHeart/SlicerHeart/master/ValveQuantification/Resources/MeasurementPreset/MitralValve.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerIGSIO.json b/SlicerIGSIO.json
new file mode 100644
index 000000000..e74e056b1
--- /dev/null
+++ b/SlicerIGSIO.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/IGSIO/SlicerIGSIO.git"
+}
diff --git a/SlicerIGSIO.s4ext b/SlicerIGSIO.s4ext
deleted file mode 100644
index 65dbf3faf..000000000
--- a/SlicerIGSIO.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/IGSIO/SlicerIGSIO.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/IGSIO/SlicerIGSIO
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Kyle Sunderland (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/IGSIO/SlicerIGSIO/raw/master/SlicerIGSIO.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This is a utility extension that is developed as part of the Image Guided Surgery InterOperability (IGSIO) organization (see http://igsio.github.io/), and should be used as a dependency for other extensions (Ex. SlicerIGT) to provide access to tools and algorithms implemented by IGSIO (https://github.com/IGSIO/IGSIO).
-
-# Space separated list of urls
-screenshoturls https://github.com/IGSIO/SlicerIGSIO/raw/master/Images/SlicerIGSIOScreenshot1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerIGT.json b/SlicerIGT.json
new file mode 100644
index 000000000..622d33092
--- /dev/null
+++ b/SlicerIGT.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerIGSIO"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/SlicerIGT.git"
+}
diff --git a/SlicerIGT.s4ext b/SlicerIGT.s4ext
deleted file mode 100644
index af3615e43..000000000
--- a/SlicerIGT.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerIGT.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerIGSIO
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicerigt.org
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Tamas Ungi (Queen's University), Junichi Tokuda (Brigham and Women's Hospital), Andras Lasso (Queen's University), Isaiah Norton (Brigham and Women's Hospital), Matthew Holden (Queen's University), Laurent Chauvin (SNR), Atsushi Yamada (SNR), Franklin King (Queen's University), Jaime Garcia-Guevara (Queen's University), Amelie Meyer (Queen's University), Mikael Brudfors (UCL), Adam Rankin (Robarts Research Institute)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/2/2b/SlicerIGTLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension contains modules that enable rapid prototyping of applications for image-guided interventions. Intended users should have real-time imaging and/or tracking hardware (e.g. tracked ultrasound) connected to 3D Slicer through OpenIGTLink network. Specific modules allow patient registration to the navigation coordinate system in 3D Slicer, and real-time update of tracked models and images.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/7/78/SlicerIGTScreenshot.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerITKUltrasound.json b/SlicerITKUltrasound.json
new file mode 100644
index 000000000..28ba10e12
--- /dev/null
+++ b/SlicerITKUltrasound.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "SlicerITKUltrasound-build",
+ "category": "Filtering",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/SlicerITKUltrasound"
+}
diff --git a/SlicerITKUltrasound.s4ext b/SlicerITKUltrasound.s4ext
deleted file mode 100644
index 6194641e8..000000000
--- a/SlicerITKUltrasound.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerITKUltrasound
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory SlicerITKUltrasound-build
-
-# homepage
-homepage https://kitwaremedical.github.io/SlicerITKUltrasoundDoc/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Matt McCormick (Kitware, Inc.), Mark Palmeri (Duke University), Stephen Aylward (Kitware, Inc.), Jean-Christophe Fillion-Robin (Kitware, Inc.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/KitwareMedical/SlicerITKUltrasound/raw/master/SlicerITKUltrasound.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description Ultrasound image formation, processing, and analysis. Interfaces built off the ITKUltrasound library.
-
-# Space separated list of urls
-screenshoturls https://github.com/KitwareMedical/SlicerITKUltrasound/raw/f1f347fc6b9a1a56200ed1bbc2ff7f4e3d0836ef/Documentation/source/Modules/ScanConversion/ScanConvertCurvilinearArray.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerJupyter.json b/SlicerJupyter.json
new file mode 100644
index 000000000..92179290a
--- /dev/null
+++ b/SlicerJupyter.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Developer Tools",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Slicer/SlicerJupyter.git"
+}
diff --git a/SlicerJupyter.s4ext b/SlicerJupyter.s4ext
deleted file mode 100644
index b881bad79..000000000
--- a/SlicerJupyter.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerJupyter.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/Slicer/SlicerJupyter
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Slicer/SlicerJupyter/master/SlicerJupyterLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description This extension provides a Jupyter kernel, which allows running Jupyter notebooks in 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/NA-MIC/ProjectWeek/master/PW28_2018_GranCanaria/Projects/SlicerJupyter/NotebookOnly.png https://raw.githubusercontent.com/NA-MIC/ProjectWeek/master/PW28_2018_GranCanaria/Projects/SlicerJupyter/NotebookSideBySide.png https://raw.githubusercontent.com/NA-MIC/ProjectWeek/master/PW28_2018_GranCanaria/Projects/SlicerJupyter/JupyterLab.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerLayoutButtons.json b/SlicerLayoutButtons.json
new file mode 100644
index 000000000..767c5e92d
--- /dev/null
+++ b/SlicerLayoutButtons.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/SlicerLayoutButtons.git"
+}
diff --git a/SlicerLayoutButtons.s4ext b/SlicerLayoutButtons.s4ext
deleted file mode 100644
index 0493cae0b..000000000
--- a/SlicerLayoutButtons.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/SlicerLayoutButtons.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/QIICR/SlicerLayoutButtons
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Christian Herz (SPL, BWH), Andrey Fedorov (SPL, BWH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/SlicerLayoutButtons/master/Resources/Icons/SlicerLayoutButtons.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Simplified widget for accessing volumes and labelmaps displayed in slice views.
This extension provides a user interface with buttons organized the same way as the Slicer slice views are aligned. The user can directly select foreground/background volume and label map to be displayed in the associated slice view.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/QIICR/SlicerLayoutButtons/master/Resources/Screenshots/overview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerLiver.json b/SlicerLiver.json
new file mode 100644
index 000000000..c490eed1b
--- /dev/null
+++ b/SlicerLiver.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "SlicerVMTK",
+ "SegmentEditorExtraEffects",
+ "ExtraMarkups"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ALive-research/Slicer-Liver"
+}
diff --git a/SlicerLiver.s4ext b/SlicerLiver.s4ext
deleted file mode 100644
index 30573c8cf..000000000
--- a/SlicerLiver.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/ALive-research/Slicer-Liver
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerVMTK SegmentEditorExtraEffects ExtraMarkups
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/ALive-research/Slicer-Liver
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Rafael Palomar (Oslo University Hospital / NTNU), Ole V. Solberg (SINTEF), Geir A. Tangen (SINTEF), Gabriella D'Albenzio (Oslo University Hospital), Ruoyan Meng (NTNU), Javier Perez-de-Frutos (SINTEF)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/SlicerLiver.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description 3D Slicer extension for liver analysis and therapy planning
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_01.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_02.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_03.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_04.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_05.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_06.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_07.png https://raw.githubusercontent.com/ALive-research/Slicer-Liver/master/Screenshots/Slicer-Liver_screenshot_08.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerLookingGlass.json b/SlicerLookingGlass.json
new file mode 100644
index 000000000..410c6beea
--- /dev/null
+++ b/SlicerLookingGlass.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Holographic Display",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/SlicerLookingGlass.git"
+}
diff --git a/SlicerLookingGlass.s4ext b/SlicerLookingGlass.s4ext
deleted file mode 100644
index 1ab1fffcc..000000000
--- a/SlicerLookingGlass.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerLookingGlass.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerLookingGlass
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jean-Christophe Fillion-Robin (Kitware), Ken Martin (Kitware), Cory Quammen (Kitware), Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Holographic Display
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerLookingGlass/master/LookingGlass/Resources/Icons/LookingGlass.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Enables user to visualize the 3D scene using the Looking Glass hardware display.
-
-# Space separated list of urls
-screenshoturls https://github.com/KitwareMedical/SlicerLookingGlass/releases/download/docs-resources/2020.09.24_SlicerLookingGlass_WhiteMatterAnalysis.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerMarkupConstraints.json b/SlicerMarkupConstraints.json
new file mode 100644
index 000000000..5227122d2
--- /dev/null
+++ b/SlicerMarkupConstraints.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/KitwareMedical/SlicerMarkupConstraints.git"
+}
diff --git a/SlicerMarkupConstraints.s4ext b/SlicerMarkupConstraints.s4ext
deleted file mode 100644
index 2cb00dfed..000000000
--- a/SlicerMarkupConstraints.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerMarkupConstraints.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerMarkupConstraints
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors David Allemang (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerMarkupConstraints/main/SlicerMarkupConstraints.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description This module is a development tool which allows extension developers to constrain the placement of markup control points based on other vtk objects. The extension was created during Slicer Project Week 37 for the Q3DCExtension project.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/SlicerMarkupConstraints/main/Docs/static-project-angle.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerMorph.json b/SlicerMorph.json
new file mode 100644
index 000000000..4d7d811b0
--- /dev/null
+++ b/SlicerMorph.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SegmentEditorExtraEffects"
+ ],
+ "build_subdirectory": ".",
+ "category": "SlicerMorph",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerMorph/SlicerMorph.git"
+}
diff --git a/SlicerMorph.s4ext b/SlicerMorph.s4ext
deleted file mode 100644
index 89864d148..000000000
--- a/SlicerMorph.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerMorph/SlicerMorph.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SegmentEditorExtraEffects
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://slicermorph.github.io/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sara Rolfe (UW), Murat Maga (SCRI)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category SlicerMorph
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerMorph/SlicerMorph/master/SlicerMorph_Color.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description This extension enables retrieval, visualization, measurement and annotation of high-resolution specimen data from volumetric scans (CTs and MRs) or 3D surface scans.
-
-# Space separated list of urls
-screenshoturls https://na-mic.github.io/ProjectWeek/PW30_2019_GranCanaria/Projects/SlicerMorphGeometricMorphometricToolset/SM_screen.png https://na-mic.github.io/ProjectWeek/PW30_2019_GranCanaria/Projects/SlicerMorphGeometricMorphometricToolset/SM2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerNetstim.json b/SlicerNetstim.json
new file mode 100644
index 000000000..df48c1d73
--- /dev/null
+++ b/SlicerNetstim.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "SlicerRT",
+ "MarkupsToModel"
+ ],
+ "build_subdirectory": ".",
+ "category": "Netstim",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/netstim/SlicerNetstim.git"
+}
diff --git a/SlicerNetstim.s4ext b/SlicerNetstim.s4ext
deleted file mode 100644
index 1945388b3..000000000
--- a/SlicerNetstim.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/netstim/SlicerNetstim.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerRT MarkupsToModel
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/netstim/SlicerNetstim
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Simon Oxenford (Charite Berlin)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Netstim
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/netstim/SlicerNetstim/master/logo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Netstim modules collection for deep brain stimulation applications
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/netstim/SlicerNetstim/master/LeadOR/Screenshots/Lead-OR_Scene.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerNeuro.json b/SlicerNeuro.json
new file mode 100644
index 000000000..312e28a0f
--- /dev/null
+++ b/SlicerNeuro.json
@@ -0,0 +1,15 @@
+{
+ "build_dependencies": [
+ "UKFTractography",
+ "SwissSkullStripper",
+ "SlicerFreeSurfer",
+ "SlicerDcm2nii",
+ "SlicerDMRI",
+ "HDBrainExtraction",
+ "SlicerWMA"
+ ],
+ "build_subdirectory": ".",
+ "category": "Neuroimaging",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/Slicer/SlicerNeuro"
+}
diff --git a/SlicerNeuro.s4ext b/SlicerNeuro.s4ext
deleted file mode 100644
index a1c540b60..000000000
--- a/SlicerNeuro.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerNeuro
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends UKFTractography SwissSkullStripper SlicerFreeSurfer SlicerDcm2nii SlicerDMRI HDBrainExtraction SlicerWMA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/Slicer/SlicerNeuro
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab (Queen's University))
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Neuroimaging
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/Slicer/SlicerNeuro/main/SlicerNeuro.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides ACPC coordinate transformation tool and installs extensions commonly needed for neuroimaging.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/Slicer/SlicerNeuro/main/Docs/module_acpctransform_1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerNeuroSegmentation.json b/SlicerNeuroSegmentation.json
new file mode 100644
index 000000000..436d5b2e3
--- /dev/null
+++ b/SlicerNeuroSegmentation.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerFreeSurfer"
+ ],
+ "build_subdirectory": ".",
+ "category": "Neuroimaging",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/HOA-2/SlicerNeuroSegmentation.git"
+}
diff --git a/SlicerNeuroSegmentation.s4ext b/SlicerNeuroSegmentation.s4ext
deleted file mode 100644
index 15373845a..000000000
--- a/SlicerNeuroSegmentation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/HOA-2/SlicerNeuroSegmentation.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerFreeSurfer
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/HOA-2/SlicerNeuroSegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Kyle Sunderland (PerkLab, Queen's University), Jarrett Rushmore (Psychiatry Neuroimaging Lab, Brigham and Women's Hospital and Harvard Medical School) Andras Lasso (PerkLab, Queen's University), Sylvain Bouix (Psychiatry Neuroimaging Lab, Brigham and Women's Hospital and Harvard Medical School)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Neuroimaging
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/HOA-2/SlicerNeuroSegmentation/main/SlicerNeuroSegmentation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Extension for performing segmentation of brain MRI images and parcellation of FreeSurfer surfaces in Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/HOA-2/SlicerNeuroSegmentation/main/Images/Screenshots/NeuroParcellation_1.png https://raw.githubusercontent.com/HOA-2/SlicerNeuroSegmentation/main/Images/Screenshots/NeuroSegmentation_1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerOpenAnatomy.json b/SlicerOpenAnatomy.json
new file mode 100644
index 000000000..f64110650
--- /dev/null
+++ b/SlicerOpenAnatomy.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerOpenAnatomy"
+}
diff --git a/SlicerOpenAnatomy.s4ext b/SlicerOpenAnatomy.s4ext
deleted file mode 100644
index 5bf7f81c8..000000000
--- a/SlicerOpenAnatomy.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerOpenAnatomy
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/PerkLab/SlicerOpenAnatomy
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab), Csaba Pinter (PerkLab), Michael Halle (SPL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/PerkLab/SlicerOpenAnatomy/master/SlicerOpenAnatomy.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description 3D Slicer extension for exporting Slicer scenes to use in the OpenAnatomy.org browser
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/PerkLab/SlicerOpenAnatomy/master/OpenAnatomyExport/img/Screenshot01.png https://raw.githubusercontent.com/PerkLab/SlicerOpenAnatomy/master/OpenAnatomyExport/img/Screenshot02.png https://raw.githubusercontent.com/PerkLab/SlicerOpenAnatomy/master/OpenAnatomyExport/img/Screenshot03.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerOpenCV.json b/SlicerOpenCV.json
new file mode 100644
index 000000000..dc7e8648a
--- /dev/null
+++ b/SlicerOpenCV.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Libraries",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/Slicer/SlicerOpenCV.git"
+}
diff --git a/SlicerOpenCV.s4ext b/SlicerOpenCV.s4ext
deleted file mode 100644
index 9e8e1ef47..000000000
--- a/SlicerOpenCV.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/Slicer/SlicerOpenCV.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerOpenCV
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Nicole Aucoin (BWH), Andrey Fedorov (BWH), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Libraries
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SBU-BMI/SlicerOpenCV/master/SlicerOpenCV.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides a wrapper around OpenCV libraries
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerOpenIGTLink.json b/SlicerOpenIGTLink.json
new file mode 100644
index 000000000..64453aa27
--- /dev/null
+++ b/SlicerOpenIGTLink.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/openigtlink/SlicerOpenIGTLink.git"
+}
diff --git a/SlicerOpenIGTLink.s4ext b/SlicerOpenIGTLink.s4ext
deleted file mode 100644
index 66b13910b..000000000
--- a/SlicerOpenIGTLink.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/openigtlink/SlicerOpenIGTLink.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/openigtlink/SlicerOpenIGTLink
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Junichi Tokuda (SPL), Longquan Chen (SPL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/openigtlink/SlicerOpenIGTLink/master/OpenIGTLinkIF.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension adds OpenIGTLink communication interface to 3D Slicer to exchange real-time imaging, tracking, and other data.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/openigtlink/SlicerOpenIGTLink/master/Screenshots/Overview.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerProstate.json b/SlicerProstate.json
new file mode 100644
index 000000000..0f774f232
--- /dev/null
+++ b/SlicerProstate.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerProstate/SlicerProstate.git"
+}
diff --git a/SlicerProstate.s4ext b/SlicerProstate.s4ext
deleted file mode 100644
index 1a3e7e002..000000000
--- a/SlicerProstate.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerProstate/SlicerProstate.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerProstate
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (Brigham and Women's Hospital), Andras Lasso (Queen's University), Alireza Mehrtash (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://wiki.slicer.org/slicerWiki/images/8/87/SlicerProstate_Logo_1.0_128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Work in progress
-
-# One line stating what the module does
-description SlicerProstate extension hosts various modules to facilitate processing and management of prostate image data, utilizing prostate images in image-guided interventions and development of the imaging biomarkers of the prostate cancer.
-
-# Space separated list of urls
-screenshoturls https://wiki.slicer.org/slicerWiki/images/f/ff/DistanceMapBasedRegistration_example1.png https://wiki.slicer.org/slicerWiki/images/3/36/SegmentationSmoothing_example1.png https://wiki.slicer.org/slicerWiki/images/c/c3/QuadEdgeSurfaceMesher_example1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerProstateAblation.json b/SlicerProstateAblation.json
new file mode 100644
index 000000000..879af387a
--- /dev/null
+++ b/SlicerProstateAblation.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox",
+ "ZFrameRegistration"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerProstate/SlicerProstateAblation.git"
+}
diff --git a/SlicerProstateAblation.s4ext b/SlicerProstateAblation.s4ext
deleted file mode 100644
index d887b4f8a..000000000
--- a/SlicerProstateAblation.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerProstate/SlicerProstateAblation.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox ZFrameRegistration
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerProstate/SlicerProstateAblation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Longquan Chen(SPL), Christian Herz(SPL), Junichi Tokuda(SPL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerProstate/SlicerProstateAblation/master/SlicerProstateAblation.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides support for prostate cryoablation.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerProstate/SlicerProstateAblation/master/Screenshots/Slicelet.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerPythonTestRunner.json b/SlicerPythonTestRunner.json
new file mode 100644
index 000000000..8d9d95345
--- /dev/null
+++ b/SlicerPythonTestRunner.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/KitwareMedical/SlicerPythonTestRunner"
+}
diff --git a/SlicerPythonTestRunner.s4ext b/SlicerPythonTestRunner.s4ext
deleted file mode 100644
index 9191c8aa0..000000000
--- a/SlicerPythonTestRunner.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/KitwareMedical/SlicerPythonTestRunner
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerPythonTestRunner
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Thibault Pelletier (Kitware SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/KitwareMedical/SlicerPythonTestRunner/raw/main/SlicerPythonTestRunner.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows to run Slicer's Python tests directly from Slicer by leveraging PyTest and PyTest-json-report librairies. The tests are executed in a new Slicer process to avoid outdated package import problems.
-
-# Space separated list of urls
-screenshoturls https://github.com/KitwareMedical/SlicerPythonTestRunner/raw/main/Screenshots/0.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerRT.json b/SlicerRT.json
new file mode 100644
index 000000000..84b1e5b2a
--- /dev/null
+++ b/SlicerRT.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Radiotherapy",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerRt/SlicerRT.git"
+}
diff --git a/SlicerRT.s4ext b/SlicerRT.s4ext
deleted file mode 100644
index e8163633a..000000000
--- a/SlicerRT.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerRt/SlicerRT.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://slicerrt.org
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Greg Sharp (Massachusetts General Hospital), Kevin Wang (Radiation Medicine Program, Princess Margaret Hospital, University Health Network Toronto)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Radiotherapy
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/2/29/SlicerRT_Logo_3.0_128x128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Release
-
-# One line stating what the module does
-description Toolkit for radiation therapy research. Features include DICOM-RT import/export, dose volume histogram, dose accumulation, external beam planning (TPS), structure comparison, isodose line/surface generation, etc. Version 0.18.0
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/8/87/SlicerRT_0.10_IsocenterShiftingEvaluation.png https://www.slicer.org/slicerWiki/images/e/ef/SlicerRT_0.11_ProstateLoaded_Beams_ThresholdedDose.png https://www.slicer.org/slicerWiki/images/4/40/SlicerRtFundingSources.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerRadiomics.json b/SlicerRadiomics.json
new file mode 100644
index 000000000..1ec1b98d3
--- /dev/null
+++ b/SlicerRadiomics.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/AIM-Harvard/SlicerRadiomics.git"
+}
diff --git a/SlicerRadiomics.s4ext b/SlicerRadiomics.s4ext
deleted file mode 100644
index b4e941735..000000000
--- a/SlicerRadiomics.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/AIM-Harvard/SlicerRadiomics.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://www.slicer.org/wiki/Documentation/Nightly/Extensions/Radiomics
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (SPL), Joost van Griethuysen (NKI), Nicole Aucoin (SPL), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics), Hugo Aerts (DFCI)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/AIM-Harvard/SlicerRadiomics/master/resources/radiomics_icon128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status beta
-
-# One line stating what the module does
-description Radiomics extension provides a 3D Slicer interface to the pyradiomics library. pyradiomics is an open-source python package for the extraction of Radiomics features from medical imaging.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/AIM-Harvard/SlicerRadiomics/master/resources/SlicerRadiomics-lung.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerRegularizedFastMarching.json b/SlicerRegularizedFastMarching.json
new file mode 100644
index 000000000..138470d66
--- /dev/null
+++ b/SlicerRegularizedFastMarching.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/jamesobutler/SlicerRegularizedFastMarching"
+}
diff --git a/SlicerRegularizedFastMarching.s4ext b/SlicerRegularizedFastMarching.s4ext
deleted file mode 100644
index f31c6925a..000000000
--- a/SlicerRegularizedFastMarching.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/jamesobutler/SlicerRegularizedFastMarching
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/jamesobutler/SlicerRegularizedFastMarching#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Aldrick FAURE, Sandra LEBRETON, Laurent RISSER (CNRS, Toulouse Mathematics Institute / 3IA ANITI), Soleakhena KEN (INSERM, Toulouse University Cancer Institute)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/jamesobutler/SlicerRegularizedFastMarching/main/RegularizedFastMarching/Resources/Icons/RegularizedFastMarching.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Tested on various images ; should work well
-
-# One line stating what the module does
-description The RegularizedFastMarching extension in Slicer facilitates efficient semi-automatic segmentation of 3D medical images through the application of regularized fast marching algorithms. Users can manually place seeds or import them from a file, and customize seed labels via CSV files.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/jamesobutler/SlicerRegularizedFastMarching/main/Docs/SlicerRFM_README_Fig3.png https://raw.githubusercontent.com/jamesobutler/SlicerRegularizedFastMarching/main/Docs/SlicerRFM_README_Fig2.png https://raw.githubusercontent.com/jamesobutler/SlicerRegularizedFastMarching/main/Docs/SlicerRFM_README_Fig4.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerThemes.json b/SlicerThemes.json
new file mode 100644
index 000000000..08e12a1d1
--- /dev/null
+++ b/SlicerThemes.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Developer Tools",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/sjh26/SlicerThemes.git"
+}
diff --git a/SlicerThemes.s4ext b/SlicerThemes.s4ext
deleted file mode 100644
index d8d46e548..000000000
--- a/SlicerThemes.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/sjh26/SlicerThemes.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/sjh26/SlicerThemes
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sam Horvath (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Developer Tools
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/sjh26/SlicerThemes/main/SlicerThemes.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status In Development
-
-# One line stating what the module does
-description This extension allows Material based color themes and styling to be applied to 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/sjh26/SlicerThemes/main/Screenshot1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerTissueSegmentation.json b/SlicerTissueSegmentation.json
new file mode 100644
index 000000000..c891878bd
--- /dev/null
+++ b/SlicerTissueSegmentation.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/MarinaSandonis/SlicerTissueSegmentation"
+}
diff --git a/SlicerTissueSegmentation.s4ext b/SlicerTissueSegmentation.s4ext
deleted file mode 100644
index ea6fa703a..000000000
--- a/SlicerTissueSegmentation.s4ext
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/MarinaSandonis/SlicerTissueSegmentation
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/MarinaSandonis/SlicerTissueSegmentation#slicertissuesegmentation
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Marina SandonÃs Fernández (UPNA), Fernando Idoate Saralegui (Mutua Navarra), Rafael Cabeza Laguna (UPNA)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/TissueSegmentation.jpg
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension allows to generate the 2D/3D segmentation of the abdomen and the thigh from MR images.
-
-screenshoturls https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/images/module.png https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/images/inputs.png https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/images/Outputs.png https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/images/abdomen_segmenattion.png https://raw.githubusercontent.com/MarinaSandonis/SlicerTissueSegmentation/main/images/thigh_segmenattion.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerToKiwiExporter.json b/SlicerToKiwiExporter.json
new file mode 100644
index 000000000..c8bb23b44
--- /dev/null
+++ b/SlicerToKiwiExporter.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Exporter",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/jcfr/SlicerToKiwiExporter.git"
+}
diff --git a/SlicerToKiwiExporter.s4ext b/SlicerToKiwiExporter.s4ext
deleted file mode 100644
index 3676ba22e..000000000
--- a/SlicerToKiwiExporter.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/jcfr/SlicerToKiwiExporter.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerToKiwiExporter
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jean-Christophe Fillion-Robin (Kitware), Pat Marion (Kitware), Steve Pieper (Isomics), Atsushi Yamada (Shiga University of Medical Science)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Exporter
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/jcfr/SlicerToKiwiExporter/master/SlicerToKiwiExporterLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description The SlicerToKiwiExporter module provides Slicer user with any easy way to export models into a KiwiViewer scene file.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/9/9e/SlicerToKiwiExporter_Kiwiviewer_8.PNG https://www.slicer.org/slicerWiki/images/a/ab/SlicerToKiwiExporter_Kiwiviewer_9.PNG https://www.slicer.org/slicerWiki/images/9/9a/SlicerToKiwiExporter_SaveDialog_Select-file-format_1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerVMTK.json b/SlicerVMTK.json
new file mode 100644
index 000000000..8b4cdf826
--- /dev/null
+++ b/SlicerVMTK.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "ExtraMarkups"
+ ],
+ "build_subdirectory": "inner-build",
+ "category": "Vascular Modeling Toolkit",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/vmtk/SlicerExtension-VMTK"
+}
diff --git a/SlicerVMTK.s4ext b/SlicerVMTK.s4ext
deleted file mode 100644
index 0f95513ff..000000000
--- a/SlicerVMTK.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/vmtk/SlicerExtension-VMTK
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends ExtraMarkups
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/vmtk/SlicerExtension-VMTK
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Daniel Haehn (Boston Childrens Hospital), Luca Antiga (Orobix), Steve Pieper (Isomics), Jean-Christophe Fillion-Robin (Kitware)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Vascular Modeling Toolkit
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.nitrc.org/project/screenshot.php?group_id=196&screenshot_id=269
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description Vascular Modeling Toolkit for vessel tree segmentation and centerline extraction.
-
-# Space separated list of urls
-screenshoturls https://www.nitrc.org/project/screenshot.php?group_id=196&screenshot_id=126 https://www.nitrc.org/project/screenshot.php?group_id=196&screenshot_id=227 https://www.nitrc.org/project/screenshot.php?group_id=196&screenshot_id=228 https://www.nitrc.org/project/screenshot.php?group_id=196&screenshot_id=229
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerVirtualMouseCursor.json b/SlicerVirtualMouseCursor.json
new file mode 100644
index 000000000..53b8f2abb
--- /dev/null
+++ b/SlicerVirtualMouseCursor.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/KitwareMedical/SlicerVirtualMouseCursor"
+}
diff --git a/SlicerVirtualMouseCursor.s4ext b/SlicerVirtualMouseCursor.s4ext
deleted file mode 100644
index a256f903b..000000000
--- a/SlicerVirtualMouseCursor.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerVirtualMouseCursor
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerVirtualMouseCursor#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Lucas Gandel (Kitware SAS), Laurenn Lam (Kitware SAS), Thomas Galland (Kitware SAS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerVirtualMouseCursor/main/SlicerVirtualCursor.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SlicerVirtualMouseCursor is an extension to replace the usual application mouse pointer with a virtual 3D cursor that is directly rendered in the scene.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/KitwareMedical/SlicerVirtualMouseCursor/main/SlicerVirtualCursorScene.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerVirtualReality.json b/SlicerVirtualReality.json
new file mode 100644
index 000000000..771de2ff6
--- /dev/null
+++ b/SlicerVirtualReality.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Virtual Reality",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/KitwareMedical/SlicerVirtualReality.git"
+}
diff --git a/SlicerVirtualReality.s4ext b/SlicerVirtualReality.s4ext
deleted file mode 100644
index 6a03d30f7..000000000
--- a/SlicerVirtualReality.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/KitwareMedical/SlicerVirtualReality.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory inner-build
-
-# homepage
-homepage https://github.com/KitwareMedical/SlicerVirtualReality
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Jean-Baptiste Vimort (Kitware), Jean-Christophe Fillion-Robin (Kitware), Csaba Pinter (PerkLab, Queen's University), Adam Rankin (VASST Lab, Robarts Research Institute, Western University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Virtual Reality
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/KitwareMedical/SlicerVirtualReality/master/SlicerVirtualReality.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Allows user to interact with a Slicer scene using virtual reality.
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/4/49/SlicerVirtualReality_Screenshot1.png https://www.slicer.org/slicerWiki/images/0/04/SlicerVirtualReality_Screenshot2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SlicerWMA.json b/SlicerWMA.json
new file mode 100644
index 000000000..a5dcfb808
--- /dev/null
+++ b/SlicerWMA.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": "inner-build",
+ "category": "Libraries",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerDMRI/SlicerWMA"
+}
diff --git a/SlicerWMA.s4ext b/SlicerWMA.s4ext
deleted file mode 100644
index d85110583..000000000
--- a/SlicerWMA.s4ext
+++ /dev/null
@@ -1,26 +0,0 @@
-scm git
-scmurl https://github.com/SlicerDMRI/SlicerWMA
-scmrevision master
-
-depends NA
-
-build_subdirectory inner-build
-
-homepage https://github.com/SlicerDMRI/SlicerWMA#readme
-
-contributors Lauren O'Donnell (Brigham & Women's Hospital), Fan Zhang (Brigham & Women's Hospital), Isaiah Norton (Brigham & Women's Hospital)
-
-category Libraries
-
-iconurl https://raw.githubusercontent.com/SlicerDMRI/SlicerWMA/master/SlicerWMA.png
-
-status WIP
-
-# One line stating what the module does
-description SlicerWMA currently provides the WhiteMatterAnalysis (https://github.com/SlicerDMRI/whitematteranalysis) python package and dependencies installed within Slicer's Python environment.
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 0
diff --git a/SoundControl.json b/SoundControl.json
new file mode 100644
index 000000000..475af4e76
--- /dev/null
+++ b/SoundControl.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/SlicerSoundControl"
+}
diff --git a/SoundControl.s4ext b/SoundControl.s4ext
deleted file mode 100644
index b2ae528e3..000000000
--- a/SoundControl.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerSoundControl
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/SlicerSoundControl
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors David Black (Fraunhofer Mevis), Julian Hettig (Uni. Magdeburg), Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerIGT/SlicerSoundControl/raw/master/SoundControl.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Navigate using sound feedback
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerIGT/SlicerSoundControl/raw/master/OpenSoundControl.png https://github.com/SlicerIGT/SlicerSoundControl/raw/master/SoundNavigation.png https://github.com/SlicerIGT/SlicerSoundControl/raw/master/PureData.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Stereotaxia.json b/Stereotaxia.json
new file mode 100644
index 000000000..3e089aea6
--- /dev/null
+++ b/Stereotaxia.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/JBeninca/SlicerStereotaxia"
+}
diff --git a/Stereotaxia.s4ext b/Stereotaxia.s4ext
deleted file mode 100644
index 8d9f134d1..000000000
--- a/Stereotaxia.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/JBeninca/SlicerStereotaxia
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/JBeninca/SlicerStereotaxia#stereotaxia
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Dr. Miguel Ibanez, Dr. Dante Lovey, Dr. Lucas Vera, Dr. Elena Zema, Dr. Jorge Beninca, Marc Jermann (Institute for Medical Engineering and Medical Informatics, FHNW, Muttenz, Switzerland), Dorian Vogel (Institute for Medical Engineering and Medical Informatics, FHNW, Muttenz, Switzerland)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/JBeninca/SlicerStereotaxia/raw/main/Stereotaxia.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Compute stereotactic frame coordinates for neurosurgery planning.
-
-# Space separated list of urls
-screenshoturls https://github.com/JBeninca/SlicerStereotaxia/raw/main/Screenshot.jpg https://github.com/JBeninca/SlicerStereotaxia/raw/main/resources/Images/Screenshot_02_StereotacticTrajectories.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SurfaceFragmentsRegistration.json b/SurfaceFragmentsRegistration.json
new file mode 100644
index 000000000..28ee9f5fd
--- /dev/null
+++ b/SurfaceFragmentsRegistration.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration.git"
+}
diff --git a/SurfaceFragmentsRegistration.s4ext b/SurfaceFragmentsRegistration.s4ext
deleted file mode 100644
index d7ac00d6c..000000000
--- a/SurfaceFragmentsRegistration.s4ext
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration
-
-contributors Sebastian Andreß (LMU Munich)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration/raw/master/SurfaceFragmentsRegistration.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description A polydata/model registration and validation method that finds multiple high accuracy similarity zones on a source model deviating less than a definable threshold from a target model.
-
-# Space separated list of urls
-screenshoturls https://github.com/sebastianandress/Slicer-SurfaceFragmentsRegistration/raw/master/Resources/screenshot1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SurfaceLearner.json b/SurfaceLearner.json
new file mode 100644
index 000000000..d76aa1c0e
--- /dev/null
+++ b/SurfaceLearner.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "SurfaceLearner",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/mturja-vf-ic-bd/SlicerSurfaceLearner"
+}
diff --git a/SurfaceLearner.s4ext b/SurfaceLearner.s4ext
deleted file mode 100644
index baaac606f..000000000
--- a/SurfaceLearner.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager (i.e. svn)
-scm git
-scmurl https://github.com/mturja-vf-ic-bd/SlicerSurfaceLearner
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/mturja-vf-ic-bd/SlicerSurfaceLearner
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Md Asadullah Turja (UNC)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category SurfaceLearner
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/mturja-vf-ic-bd/SlicerSurfaceLearner/main/SlicerSurfaceLearner.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description SurfaceLearner provides a way to apply convolutional neural network based classifiers on surface meshes (e.g. brain surface)
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/mturja-vf-ic-bd/SlicerSurfaceLearner/main/Screenshots/SurfaceLearnerWorkflow.png https://raw.githubusercontent.com/mturja-vf-ic-bd/SlicerSurfaceLearner/main/Screenshots/SurfaceLearnerOverviewImage.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SurfaceMarkup.json b/SurfaceMarkup.json
new file mode 100644
index 000000000..438882209
--- /dev/null
+++ b/SurfaceMarkup.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerHeart/SlicerSurfaceMarkup.git"
+}
diff --git a/SurfaceMarkup.s4ext b/SurfaceMarkup.s4ext
deleted file mode 100644
index e69c32867..000000000
--- a/SurfaceMarkup.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerHeart/SlicerSurfaceMarkup.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerHeart/SlicerSurfaceMarkup/tree/master
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Csaba Pinter (Pixel Medical / Ebatinca), Rafael Palomar (Oslo University Hospital / NTNU), Andras Lasso (PerkLab, Queen's)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerHeart/SlicerSurfaceMarkup/raw/master/SurfaceMarkupLogo_128.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description 3D Slicer extension adding a new markup type for grid based surfaces such as NURBS or Bézier surfaces.
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerHeart/SlicerSurfaceMarkup/raw/master/Screenshots/NURBS.png https://github.com/SlicerHeart/SlicerSurfaceMarkup/raw/master/Screenshots/Bezier.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SurfaceWrapSolidify.json b/SurfaceWrapSolidify.json
new file mode 100644
index 000000000..a756abc3f
--- /dev/null
+++ b/SurfaceWrapSolidify.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify.git"
+}
diff --git a/SurfaceWrapSolidify.s4ext b/SurfaceWrapSolidify.s4ext
deleted file mode 100644
index 66906a54a..000000000
--- a/SurfaceWrapSolidify.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sebastian Andress (LMU Munich)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify/raw/master/SurfaceWrapSolidify.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Beta
-
-# One line stating what the module does
-description A Segment Editor Extension that filters the surface of a segment using a combination of shrinkwrapping and raycasting.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/sebastianandress/Slicer-SurfaceWrapSolidify/master/Resources/Screenshots/screenshot4.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/SwissSkullStripper.json b/SwissSkullStripper.json
new file mode 100644
index 000000000..4f55d62de
--- /dev/null
+++ b/SwissSkullStripper.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/lassoan/SlicerSwissSkullStripper"
+}
diff --git a/SwissSkullStripper.s4ext b/SwissSkullStripper.s4ext
deleted file mode 100644
index 4935aaa00..000000000
--- a/SwissSkullStripper.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerSwissSkullStripper
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerSwissSkullStripper
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Bill Lorensen (Noware), Stefan Bauer (University of Bern), Thomas Fejes (University of Bern), Mauricio Reyes (University of Bern), Arnaud Gelas (Crisalix), Andras Lasso (PerkLab)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/lassoan/SlicerSwissSkullStripper/raw/master/SwissSkullStripper.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status stable
-
-# One line stating what the module does
-description Atlas-driven skull stripping for MR and CT head studies.
-
-# Space separated list of urls
-screenshoturls https://github.com/lassoan/SlicerSwissSkullStripper/raw/master/Docs/SwissSkullStripperResults1.png https://github.com/lassoan/SlicerSwissSkullStripper/raw/master/Docs/SwissSkullStripperPanel.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/T1Mapping.json b/T1Mapping.json
new file mode 100644
index 000000000..4788a1291
--- /dev/null
+++ b/T1Mapping.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/T1Mapping.git"
+}
diff --git a/T1Mapping.s4ext b/T1Mapping.s4ext
deleted file mode 100644
index 836e97ddf..000000000
--- a/T1Mapping.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/T1Mapping.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/T1Mapping
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Xiao Da(MGH)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://slicer.org/slicerWiki/images/3/32/T1_Mapping_Logo_Resized.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description T1 mapping estimates effective tissue parameter maps (T1) from multi-spectral FLASH MRI scans with different flip angles.
-
-# Space separated list of urls
-screenshoturls https://slicer.org/slicerWiki/images/6/68/T1_Mapping_CPP_GUI.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/T1_ECVMapping.json b/T1_ECVMapping.json
new file mode 100644
index 000000000..f84629346
--- /dev/null
+++ b/T1_ECVMapping.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Cardiac",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/RivettiLuciano/SlicerT1_ECVMapping.git"
+}
diff --git a/T1_ECVMapping.s4ext b/T1_ECVMapping.s4ext
deleted file mode 100644
index 3f50a9981..000000000
--- a/T1_ECVMapping.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/RivettiLuciano/SlicerT1_ECVMapping.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/RivettiLuciano/SlicerT1_ECVMapping
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Luciano Rivetti (FUESMEN), Daniel Fino (FUESMEN-FADESA), Marcela Niela (FUESMEN-FADESA)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Cardiac
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.github.com/RivettiLuciano/SlicerT1_ECVMapping/master/T1_ECVMapping.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This module takes advantage of the properties of the Look Locker sequence to calculate the Native and Post-contrast cardiac T1 Mapping. This also allows the creation of the ECV Map using both Mappings.
-
-# Space separated list of urls
-screenshoturls https://github.com/RivettiLuciano/SlicerT1_ECVMapping/blob/master/Screen%20shots/Module%20panel.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/T2mapping.json b/T2mapping.json
new file mode 100644
index 000000000..b0db33294
--- /dev/null
+++ b/T2mapping.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Quantification",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/gattia/Slicer-T2mapping"
+}
diff --git a/T2mapping.s4ext b/T2mapping.s4ext
deleted file mode 100644
index 1423a5d76..000000000
--- a/T2mapping.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/gattia/Slicer-T2mapping
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://github.com/gattia/Slicer-T2mapping#readme
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Anthony Gatti (McMaster/NeuralSeg Ltd.)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Quantification
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/gattia/Slicer-T2mapping/master/T2mapping/Resources/Icons/T2mapping.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Calculations work. Im sure improvements to Slicer related code could be made.
-
-# One line stating what the module does
-description T2mapping creates a T2 Map from an inputed 4D multi-echo MRI.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/gattia/Slicer-T2mapping/master/Screenshots/1_Module_and_multi_echo_t2_image.png https://raw.githubusercontent.com/gattia/Slicer-T2mapping/master/Screenshots/2_Module_create_new_volume_t2.png https://raw.githubusercontent.com/gattia/Slicer-T2mapping/master/Screenshots/3_Example_resulting_t2_map_r2_threshold_0.7_t2_upper_threshold_100.png https://raw.githubusercontent.com/gattia/Slicer-T2mapping/master/Screenshots/4_Example_resulting_R2_map_r2_threshold_0.7_t2_upper_threshold_100.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TCIABrowser.json b/TCIABrowser.json
new file mode 100644
index 000000000..38597a043
--- /dev/null
+++ b/TCIABrowser.json
@@ -0,0 +1,10 @@
+{
+ "build_dependencies": [
+ "QuantitativeReporting",
+ "SlicerRT"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/QIICR/TCIABrowser.git"
+}
diff --git a/TCIABrowser.s4ext b/TCIABrowser.s4ext
deleted file mode 100644
index c3ad803fd..000000000
--- a/TCIABrowser.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/QIICR/TCIABrowser.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends QuantitativeReporting SlicerRT
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/QIICR/TCIABrowser/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Alireza Mehrtash(SPL and BWH), Andrey Fedorov (SPL and BWH), Adam Li (GU), Justin Kirby (FNLCR)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/QIICR/TCIABrowser/master/TCIABrowser/Resources/Icons/TCIABrowser.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description A Module to connect to the TCIA archive, browse the collections, patients and studies and download DICOM files to 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/QIICR/TCIABrowser/master/TCIABrowser/Resources/Screenshot/Screenshot_2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TITAN.json b/TITAN.json
new file mode 100644
index 000000000..ce2197dfe
--- /dev/null
+++ b/TITAN.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Analysis",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerMicro/Slicer-TITAN"
+}
diff --git a/TITAN.s4ext b/TITAN.s4ext
deleted file mode 100644
index 9431399eb..000000000
--- a/TITAN.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerMicro/Slicer-TITAN
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerMicro/Slicer-TITAN
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Sindhura Thirumal (Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Analysis
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/sindhurathiru/SlicerTITAN/master/HypModuleCode/Resources/Icons/logo%20v2.PNG
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description TITAN is responsible for the pre-processing and analysis tasks of imaging mass cytometry (IMC) data. It performs visualization, segmentation, and various analyses functions on IMC data.
-
-# Space separated list of urls
-screenshoturls https://user-images.githubusercontent.com/21988487/125518905-0ca9aeb4-a904-415d-80f1-e5afa04cd938.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TOMAAT.json b/TOMAAT.json
new file mode 100644
index 000000000..ee4fa85c4
--- /dev/null
+++ b/TOMAAT.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/faustomilletari/TOMAAT-Slicer.git"
+}
diff --git a/TOMAAT.s4ext b/TOMAAT.s4ext
deleted file mode 100644
index 64afbd1fa..000000000
--- a/TOMAAT.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/faustomilletari/TOMAAT-Slicer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/faustomilletari/TOMAAT-Slicer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Fausto Milletari
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/faustomilletari/TOMAAT-Slicer/master/TOMAAT/Resources/Icons/TOMAAT.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Segmentation of volumetric data via Deep learning based methods in the cloud
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TomoSAM.json b/TomoSAM.json
new file mode 100644
index 000000000..ccea4bf28
--- /dev/null
+++ b/TomoSAM.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/fsemerar/SlicerTomoSAM.git"
+}
diff --git a/TomoSAM.s4ext b/TomoSAM.s4ext
deleted file mode 100644
index 720d5a361..000000000
--- a/TomoSAM.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/fsemerar/SlicerTomoSAM.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/fsemerar/SlicerTomoSAM
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Federico Semeraro (NASA), Alexandre Quintart (NASA), Sergio Fraile Izquierdo (NASA), Joseph Ferguson (Stanford University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/fsemerar/SlicerTomoSAM/main/TomoSAM/Resources/Media/tomosam_logo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description TomoSAM helps with the segmentation of 3D data from tomography or other imaging techniques using the Segment Anything Model (SAM).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/fsemerar/SlicerTomoSAM/main/TomoSAM/Resources/Media/tomosam_screenshot_1.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TorchIO.json b/TorchIO.json
new file mode 100644
index 000000000..e3691eee6
--- /dev/null
+++ b/TorchIO.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Utilities",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/fepegar/SlicerTorchIO.git"
+}
diff --git a/TorchIO.s4ext b/TorchIO.s4ext
deleted file mode 100644
index ff015dcb5..000000000
--- a/TorchIO.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/fepegar/SlicerTorchIO.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://torchio.readthedocs.io/interfaces/slicer.html
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Fernando Pérez-GarcÃa (University College London and King's College London)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Utilities
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/fepegar/SlicerTorchIO/master/TorchIOTransforms/Resources/Icons/TorchIOTransforms.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description TorchIO is a Python package containing a set of tools to efficiently read, preprocess, sample, augment, and write 3D medical images in deep learning applications written in PyTorch, including intensity and spatial transforms for data augmentation and preprocessing. Transforms include typical computer vision operations such as random affine transformations and also domain-specific ones such as simulation of intensity artifacts due to MRI magnetic field inhomogeneity or k-space motion artifacts.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/fepegar/SlicerTorchIO/master/Screenshots/TorchIO.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TotalSegmentator.json b/TotalSegmentator.json
new file mode 100644
index 000000000..42d5259d0
--- /dev/null
+++ b/TotalSegmentator.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "PyTorch"
+ ],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/lassoan/SlicerTotalSegmentator"
+}
diff --git a/TotalSegmentator.s4ext b/TotalSegmentator.s4ext
deleted file mode 100644
index f26dbeb64..000000000
--- a/TotalSegmentator.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/lassoan/SlicerTotalSegmentator
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends PyTorch
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/lassoan/SlicerTotalSegmentator
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/lassoan/SlicerTotalSegmentator/main/TotalSegmentator.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Fully automatic whole-body CT segmentation of 104 structures, using TotalSegmentator AI model.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/lassoan/SlicerTotalSegmentator/main/Screenshot01.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/TrackingErrorInspector.json b/TrackingErrorInspector.json
new file mode 100644
index 000000000..b8a79397d
--- /dev/null
+++ b/TrackingErrorInspector.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerIGT/SlicerTrackingErrorInspector"
+}
diff --git a/TrackingErrorInspector.s4ext b/TrackingErrorInspector.s4ext
deleted file mode 100644
index c4a04e934..000000000
--- a/TrackingErrorInspector.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerIGT/SlicerTrackingErrorInspector
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerIGT/SlicerTrackingErrorInspector
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Vinyas Harish, Aidan Baksh, Andras Lasso (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/SlicerIGT/SlicerTrackingErrorInspector/raw/master/TrackingErrorInspector.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Slicer modules for evaluating pose tracking error using a ground truth pose tracker
-
-# Space separated list of urls
-screenshoturls https://github.com/SlicerIGT/SlicerTrackingErrorInspector/raw/master/TrackingSetup.png https://github.com/SlicerIGT/SlicerTrackingErrorInspector/raw/master/CleanAndDistortedFields.jpg
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/UHFMRTools.json b/UHFMRTools.json
new file mode 100644
index 000000000..61b46d2f2
--- /dev/null
+++ b/UHFMRTools.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Filtering",
+ "scm_revision": "trunk",
+ "scm_url": "https://github.com/harellab/SlicerUHFMRTools"
+}
diff --git a/UHFMRTools.s4ext b/UHFMRTools.s4ext
deleted file mode 100644
index 47f79e67d..000000000
--- a/UHFMRTools.s4ext
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/harellab/SlicerUHFMRTools
-scmrevision trunk
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/harellab/SlicerUHFMRTools
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Henry Braun (CMRR, UMN), Sam Brenny (CMRR, UMN)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Filtering
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/harellab/SlicerUHFMRTools/trunk/ExtensionIcon.png
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides tools for working with ultra-high field (UHF) MRI images and is intended to provide post-acquisition processing.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/harellab/SlicerUHFMRTools/trunk/doc/AdditionalModulePaths.png https://raw.githubusercontent.com/harellab/SlicerUHFMRTools/trunk/doc/FavoriteModules.png https://raw.githubusercontent.com/harellab/SlicerUHFMRTools/trunk/doc/ModuleResult.png https://raw.githubusercontent.com/harellab/SlicerUHFMRTools/trunk/doc/ModuleWorkflow.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/UKFTractography.json b/UKFTractography.json
new file mode 100644
index 000000000..259355d0c
--- /dev/null
+++ b/UKFTractography.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Tractography",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/pnlbwh/ukftractography.git"
+}
diff --git a/UKFTractography.s4ext b/UKFTractography.s4ext
deleted file mode 100644
index 7dd74e30f..000000000
--- a/UKFTractography.s4ext
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/pnlbwh/ukftractography.git
-
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is .)
-build_subdirectory .
-
-# homepage
-homepage https://www.nitrc.org/projects/ukftractography/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Yogesh Rathi (yogesh@bwh.harvard.edu), Stefan Lienhard, Yinpeng Li, Martin Styner, Ipek Oguz, Yundi Shi, Christian Baumgartner, Ryan Eckbo, Hans Johnson, Kent Williams, Peter Savadjiev, Carl-Fredrik Westin.
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Tractography
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/pnlbwh/ukftractography/raw/master/UKF_icon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status Alpha
-
-# One line stating what the module does
-description This extension provides a module for tracing fibers in a DWI Volume using the multiple tensor unscented Kalman Filter methology.
The development of this module was supported by NIH grants R01 MH097979 (PI Rathi), R01 MH092862 (PIs Westin and Verma), U01 NS083223 (PI Westin), R01 MH074794 (PI Westin) and P41 EB015902 (PI Kikinis).
-
-# Space separated list of urls
-screenshoturls
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/Ultrasound.json b/Ultrasound.json
new file mode 100644
index 000000000..e016f734b
--- /dev/null
+++ b/Ultrasound.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Ultrasound",
+ "scm_revision": "main",
+ "scm_url": "https://github.com/SlicerUltrasound/SlicerUltrasound.git"
+}
diff --git a/Ultrasound.s4ext b/Ultrasound.s4ext
deleted file mode 100644
index 6f99f5bc7..000000000
--- a/Ultrasound.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerUltrasound/SlicerUltrasound.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerUltrasound/SlicerUltrasound
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Tamas Ungi (Queen's University), Tina Kapur (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Ultrasound
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerUltrasound/SlicerUltrasound/main/Ultrasound.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status test
-
-# One line stating what the module does
-description Modules for ultrasound data processing, including anonymization, conversion between data formats and imaging modes, and annotations.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerUltrasound/SlicerUltrasound/main/Screenshots/2024-04-14_AnonymizeUltrasound.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/VASSTAlgorithms.json b/VASSTAlgorithms.json
new file mode 100644
index 000000000..c89693830
--- /dev/null
+++ b/VASSTAlgorithms.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Registration",
+ "scm_revision": "4.11",
+ "scm_url": "https://github.com/VASST/VASSTAlgorithms.git"
+}
diff --git a/VASSTAlgorithms.s4ext b/VASSTAlgorithms.s4ext
deleted file mode 100644
index 2f3dc5e73..000000000
--- a/VASSTAlgorithms.s4ext
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/VASST/VASSTAlgorithms.git
-scmrevision 4.11
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/VASST/VASSTAlgorithms
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Adam Rankin (Robarts Research Institute), Elvis Chen (Robarts Research Institute)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Registration
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://github.com/VASST/VASSTAlgorithms/raw/master/VASSTAlgorithms.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status stable
-
-# One line stating what the module does
-description This extension contains logic modules for registration algorithms.
-
-# Space separated list of urls
-screenshoturls https://github.com/VASST/VASSTAlgorithms/blob/master/VASSTAlgorithms.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/VolumeClip.json b/VolumeClip.json
new file mode 100644
index 000000000..bef687cdc
--- /dev/null
+++ b/VolumeClip.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Segmentation",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/PerkLab/SlicerVolumeClip.git"
+}
diff --git a/VolumeClip.s4ext b/VolumeClip.s4ext
deleted file mode 100644
index a8922cef1..000000000
--- a/VolumeClip.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/PerkLab/SlicerVolumeClip.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/VolumeClip
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andras Lasso, Matt Lougheed (PerkLab, Queen's University)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Segmentation
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://www.slicer.org/slicerWiki/images/c/c2/VolumeClipLogo.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description Clip volumes with surface models and ROI boxes
-
-# Space separated list of urls
-screenshoturls https://www.slicer.org/slicerWiki/images/4/4c/VolumeClipScreenshot1.png https://www.slicer.org/slicerWiki/images/5/57/VolumeClipScreenshot2.png https://www.slicer.org/slicerWiki/images/1/1a/VolumeClipScreenshot3.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/XNATSlicer.json b/XNATSlicer.json
new file mode 100644
index 000000000..8534a0e8f
--- /dev/null
+++ b/XNATSlicer.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Remote",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/NrgXnat/XNATSlicer.git"
+}
diff --git a/XNATSlicer.s4ext b/XNATSlicer.s4ext
deleted file mode 100644
index 5915f2ed7..000000000
--- a/XNATSlicer.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-# Commmit (8-25-14)
-
-# This is source code manager
-scm git
-scmurl https://github.com/NrgXnat/XNATSlicer.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/XNATSlicer
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Rick Herrick (Washington University in St. Louis), Sunil Kumar (Moka Creative LLC, Washington University in St. Louis), Dan Marcus (Washington University in St. Louis), Steve Pieper (Isomics)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Remote
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.github.com/NrgXnat/XNATSlicer/master/XNATSlicer/Resources/Icons/XNATSlicer-MarketIcon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand beind?
-status
-
-# One line stating what the module does
-description Secure GUI-based IO with any XNAT server.
-
-# Space separated list of urls
-screenshoturls https://raw.github.com/NrgXnat/XNATSlicer/master/XNATSlicer/Resources/Images/UserDesc_MainPanel.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/ZFrameRegistration.json b/ZFrameRegistration.json
new file mode 100644
index 000000000..4f59b66fc
--- /dev/null
+++ b/ZFrameRegistration.json
@@ -0,0 +1,9 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox"
+ ],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerProstate/SlicerZFrameRegistration.git"
+}
diff --git a/ZFrameRegistration.s4ext b/ZFrameRegistration.s4ext
deleted file mode 100644
index 312cddc27..000000000
--- a/ZFrameRegistration.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerProstate/SlicerZFrameRegistration.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerProstate/SlicerZFrameRegistration
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Junichi Tokuda (SPL), Christian Herz (SPL), Simon Di Maio (SPL), Longquan Chen (SPL), Andrey Fedorov (SPL)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category IGT
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerProstate/SlicerZFrameRegistration/master/ZFrameRegistration.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status
-
-# One line stating what the module does
-description This extension provides support for procedures with ZFrame Registration
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerProstate/SlicerZFrameRegistration/master/Screenshots/1.png https://raw.githubusercontent.com/SlicerProstate/SlicerZFrameRegistration/master/Screenshots/2.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/flywheel_connect.json b/flywheel_connect.json
new file mode 100644
index 000000000..ecbb8dd97
--- /dev/null
+++ b/flywheel_connect.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "main",
+ "scm_url": "https://gitlab.com/flywheel-io/scientific-solutions/app/slicer_flywheel_connect.git"
+}
diff --git a/flywheel_connect.s4ext b/flywheel_connect.s4ext
deleted file mode 100644
index 38ecebd2b..000000000
--- a/flywheel_connect.s4ext
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://gitlab.com/flywheel-io/scientific-solutions/app/slicer_flywheel_connect.git
-scmrevision main
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://gitlab.com/flywheel-io/scientific-solutions/app/slicer_flywheel_connect/
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Joshua Jacob (Flywheel Exchange Inc)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://gitlab.com/flywheel-io/scientific-solutions/app/slicer_flywheel_connect/-/raw/main/Images/favicon.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status production
-
-# One line stating what the module does
-description This extension allows for downloading files from Flywheel to Slicer and uploading Slicer outputs back into Flywheel. Flywheel is a comprehensive data management solutions for life sciences and imaging research (https://flywheel.io/).
-
-# Space separated list of urls
-screenshoturls https://gitlab.com/flywheel-io/scientific-solutions/app/slicer_flywheel_connect/-/raw/main/Images/TreeD_Slicer.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/iGyne.json b/iGyne.json
new file mode 100644
index 000000000..bae48f522
--- /dev/null
+++ b/iGyne.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "IGT",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/gpernelle/iGyne.git"
+}
diff --git a/iGyne.s4ext b/iGyne.s4ext
deleted file mode 100644
index 72b5ce8c5..000000000
--- a/iGyne.s4ext
+++ /dev/null
@@ -1,13 +0,0 @@
-build_subdirectory .
-category IGT
-contributors Guillaume Pernelle, Alireza Mehrtash, Lauren Barber, Nabgha Fahrat, Jan Egger, Tobias Penzkofer, Sandy Wells, Sam Song, Xiaojun Chen, Yi Gao, Antonio Damato, Tina Kapur, Akila Viswanathan
-depends NA
-description iGyne: It is an open source software for MR-Guided Interstitial Gynecologic Brachytherapy. It enables on-time processing of the intra-operative MRI data via a DICOM connection to the scanner followed by a multi-stage registration of CAD models of the template and the obturator to the patient images. This allows the virtual placement of interstitial needles during the intervention, as well as the detection/labeling of needles in MR images
-enabled 1
-homepage https://github.com/gpernelle/iGyne
-iconurl https://raw.github.com/gpernelle/iGyne/master/iGyne.png
-scm git
-scmrevision master
-scmurl https://github.com/gpernelle/iGyne.git
-screenshoturls https://raw.githubusercontent.com/gpernelle/iGyne/master/LabelingResults.png
-status
diff --git a/mpReview.json b/mpReview.json
new file mode 100644
index 000000000..7ce3c52a3
--- /dev/null
+++ b/mpReview.json
@@ -0,0 +1,11 @@
+{
+ "build_dependencies": [
+ "SlicerDevelopmentToolbox",
+ "QuantitativeReporting",
+ "DICOMwebBrowser"
+ ],
+ "build_subdirectory": ".",
+ "category": "Informatics",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/SlicerProstate/mpReview.git"
+}
diff --git a/mpReview.s4ext b/mpReview.s4ext
deleted file mode 100644
index a697a7f5d..000000000
--- a/mpReview.s4ext
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# First token of each non-comment line is the keyword and the rest of the line
-# (including spaces) is the value.
-# - the value can be blank
-#
-
-# This is source code manager
-scm git
-scmurl https://github.com/SlicerProstate/mpReview.git
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends SlicerDevelopmentToolbox QuantitativeReporting DICOMwebBrowser
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://github.com/SlicerProstate/mpReview
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-# For example: Jane Roe (Superware), John Doe (Lab1, Nowhere), Joe Bloggs (Noware)
-contributors Andrey Fedorov (Brigham and Women's Hospital), Deepa Krishnaswamy (Brigham and Women's Hospital), Andras Lasso (Queen's University), Alireza Mehrtash (Brigham and Women's Hospital)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Informatics
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/SlicerProstate/mpReview/master/Resources/Icons/mpReview.png
-
-# Give people an idea what to expect from this code
-# - Is it just a test or something you stand behind?
-status Work in progress
-
-# One line stating what the module does
-description The Multiparametric Image Review (mpReview) extension facilitates review and annotation (segmentation) of multi-parametric imaging datasets.
The driving use case for the development of this module was review and segmentation of the regions of interest in prostate cancer multiparametric MRI.
This work is done as part of the Quantitative Imaging Network (QIN) and Informatics Technology for Cancer Research (ITCR) initiatives of the National Cancer Institute, and is funded by the National Institutes of Health, National Cancer Institute through the grant U24 CA180918 (PIs Kikinis & Fedorov) and U01 CA151261 (PI Fennessy).
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/SlicerProstate/mpReview/master/Resources/Icons/mpReview_screenshot.PNG
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
diff --git a/slicerPRISMRendering.json b/slicerPRISMRendering.json
new file mode 100644
index 000000000..98bcffce2
--- /dev/null
+++ b/slicerPRISMRendering.json
@@ -0,0 +1,7 @@
+{
+ "build_dependencies": [],
+ "build_subdirectory": ".",
+ "category": "Rendering",
+ "scm_revision": "master",
+ "scm_url": "https://github.com/ETS-vis-interactive/SlicerPRISMRendering"
+}
diff --git a/slicerPRISMRendering.s4ext b/slicerPRISMRendering.s4ext
deleted file mode 100644
index 798fca15c..000000000
--- a/slicerPRISMRendering.s4ext
+++ /dev/null
@@ -1,36 +0,0 @@
-# This is source code manager
-scm git
-scmurl https://github.com/ETS-vis-interactive/SlicerPRISMRendering
-scmrevision master
-
-# list dependencies
-# - These should be names of other modules that have .s4ext files
-# - The dependencies will be built first
-depends NA
-
-# Inner build directory (default is ".")
-build_subdirectory .
-
-# homepage
-homepage https://githubcomets-vis-interactiveslicerprismrendering.readthedocs.io
-
-# Firstname1 Lastname1 ([SubOrg1, ]Org1), Firstname2 Lastname2 ([SubOrg2, ]Org2)
-contributors Tiphaine Richard (ETS), Simon Drouin (ETS), Camille Hascoët (ETS)
-
-# Match category in the xml description of the module (where it shows up in Modules menu)
-category Rendering
-
-# url to icon (png, size 128x128 pixels)
-iconurl https://raw.githubusercontent.com/ETS-vis-interactive/SlicerPRISMRendering/master/PRISMRendering/Resources/Icons/PRISMRendering.png
-
-# Give people an idea what to expect from this code
-status beta
-
-# One line stating what the module does
-description This module is an implementation of the PRISM customizable volume rendering framework in 3D Slicer.
-
-# Space separated list of urls
-screenshoturls https://raw.githubusercontent.com/ETS-vis-interactive/SlicerPRISMRendering/master/docs/source/images/screenshotSlicerPRISMRendering.png
-
-# 0 or 1: Define if the extension should be enabled after its installation.
-enabled 1
From d68c8e556e8a4aaa1ea2beefe165eb0774be1f8a Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 12 Mar 2024 15:12:08 -0400
Subject: [PATCH 2/7] CI: Update workflows and templates to expect json files
Update GitHub and CircleCI settings to check for json files.
Update `check_description_files` CLI to parse json files:
* Remove `parse_s4ext` and introduce `parse_json` function along with
`ExtensionParseError` exception.
* Update list of supported URL schemes. Only `https` and `git` are supported
* Remove obsolete `check_scm_notlocal` check
---
.circleci/config.yml | 2 +-
.github/PULL_REQUEST_TEMPLATE.md | 4 +-
scripts/check_description_files.py | 90 ++++++++++++++++--------------
scripts/check_filenames.sh | 2 +-
4 files changed, 51 insertions(+), 47 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index d48d60ae3..0f78df282 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -19,7 +19,7 @@ jobs:
name: Check description files
command: |
pip install joblib retry
- python ./scripts/check_description_files.py --check-urls-reachable --check-dependencies . $(find . -maxdepth 1 -name "*.s4ext")
+ python ./scripts/check_description_files.py --check-urls-reachable --check-dependencies . $(find . -maxdepth 1 -name "*.json")
workflows:
version: 2
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index ff104e783..ce8067fb5 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,7 +1,7 @@
# New extension
@@ -25,7 +25,7 @@ Thank you for contributing to 3D Slicer!
- [ ] Tutorial: step-by-step description of at least the most typical use case, include a few screenshots, provide download links to sample input data set
- [ ] Publication: link to publication and/or to PubMed reference (if available)
- [ ] License: We suggest you use a permissive license that includes patent and contribution clauses. This will help protect developers and ensure the code remains freely available. We suggest you use the [Slicer License](https://github.com/Slicer/Slicer/blob/main/License.txt) or the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). Always mention in your README file the license you have chosen. If you choose a different license, explain why to the extension maintainers. Depending on the license we may not be able to host your work. Read [here](https://opensource.guide/legal/#which-open-source-license-is-appropriate-for-my-project) to learn more about licenses.
- - [ ] Content of submitted s4ext file is consistent with the top-level CMakeLists.txt file in the repository (description, URLs, dependencies, etc. are the same)
+ - [ ] Content of submitted json file is consistent with the top-level CMakeLists.txt file in the repository (dependencies, etc. are the same)
- Hide unused features in the repository to reduce noise/irrelevant information:
- [ ] Click `Settings` and in repository settings uncheck `Wiki`, `Projects`, and `Discussions` (if they are currently not used)
- [ ] Click the settings icon next to `About` in the top-right corner of the repository main page and uncheck `Releases` and `Packages` (if they are currently not used)
diff --git a/scripts/check_description_files.py b/scripts/check_description_files.py
index eef7117db..7543ea444 100644
--- a/scripts/check_description_files.py
+++ b/scripts/check_description_files.py
@@ -5,6 +5,7 @@
"""
import argparse
+import json
import os
import sys
import textwrap
@@ -32,6 +33,17 @@
) from None
+class ExtensionParseError(RuntimeError):
+ """Exception raised when a particular extension description file failed to be parsed.
+ """
+ def __init__(self, extension_name, details):
+ self.extension_name = extension_name
+ self.details = details
+
+ def __str__(self):
+ return self.details
+
+
class ExtensionCheckError(RuntimeError):
"""Exception raised when a particular extension check failed.
"""
@@ -87,20 +99,21 @@ def wrapped(*args, **kwargs):
return dec
-def parse_s4ext(ext_file_path):
+def parse_json(ext_file_path):
"""Parse a Slicer extension description file.
- :param ext_file_path: Path to a Slicer extension description file.
+ :param ext_file_path: Path to a Slicer extension description file (.json).
:return: Dictionary of extension metadata.
"""
- 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
+ with open(ext_file_path) as input_file:
+ try:
+ return json.load(input_file)
+ except json.JSONDecodeError as exc:
+ extension_name = os.path.splitext(os.path.basename(ext_file_path))[0]
+ raise ExtensionParseError(
+ extension_name,
+ textwrap.dedent("""
+ Failed to parse '%s': %s
+ """ % (ext_file_path, exc)))
@require_metadata_key("category")
@@ -163,29 +176,20 @@ def check_scmurl_syntax(extension_name, metadata):
if "://" not in metadata["scmurl"]:
raise ExtensionCheckError(extension_name, check_name, "scmurl do not match scheme://host/path")
- supported_schemes = ["git", "https", "svn"]
+ supported_schemes = ["git", "https"]
scheme = urlparse.urlsplit(metadata["scmurl"]).scheme
if scheme not in supported_schemes:
raise ExtensionCheckError(
extension_name, check_name,
"scmurl scheme is '%s' but it should by any of %s" % (scheme, supported_schemes))
-@require_metadata_key("scm")
-def check_scm_notlocal(extension_name, metadata):
- check_name = "check_scm_notlocal"
- if metadata["scm"] == "local":
- raise ExtensionCheckError(extension_name, check_name, "scm cannot be local")
@require_metadata_key("scmurl")
-@require_metadata_key("scm")
def check_git_repository_name(extension_name, metadata):
"""See https://www.slicer.org/wiki/Documentation/Nightly/Developers/FAQ#Should_the_name_of_the_source_repository_match_the_name_of_the_extension_.3F
"""
check_name = "check_git_repository_name"
- if metadata["scm"] != "git":
- return
-
repo_name = os.path.splitext(urlparse.urlsplit(metadata["scmurl"]).path.split("/")[-1])[0]
if repo_name in REPOSITORY_NAME_CHECK_EXCEPTIONS:
@@ -209,20 +213,21 @@ def check_dependencies(directory):
available_extensions = []
for filename in os.listdir(directory):
f = os.path.join(directory, filename)
- if not os.path.isfile(f):
+ if not os.path.isfile(f) or not filename.endswith(".json"):
continue
extension_name, extension = os.path.splitext(os.path.basename(filename))
- if extension != ".s4ext":
+ if extension != ".json":
+ continue
+ try:
+ extension_description = parse_json(f)
+ except ExtensionParseError as exc:
+ print(exc)
continue
available_extensions.append(extension_name)
- extension_description = parse_s4ext(f)
if 'depends' not in extension_description:
continue
- dependencies = extension_description['depends'].split(' ')
+ dependencies = extension_description['depends']
for dependency in dependencies:
- if dependency == 'NA':
- # special value, just a placeholder that must be ignored
- continue
if dependency in required_extensions:
required_extensions[dependency].append(extension_name)
else:
@@ -246,7 +251,7 @@ def main():
"--check-urls-reachable", action="store_true",
help="Check homepage, iconurl and screenshoturls are reachable. Disabled by default.")
parser.add_argument("-d", "--check-dependencies", help="Check all extension dsecription files in the provided folder.")
- parser.add_argument("/path/to/description.s4ext", nargs='*')
+ parser.add_argument("/path/to/extension_name.json", nargs='*')
args = parser.parse_args()
checks = []
@@ -254,14 +259,8 @@ def main():
if not checks:
checks = [
(check_category, {}),
- (check_contributors, {}),
- (check_description, {}),
(check_git_repository_name, {}),
- (check_homepage, {"check_url_reachable": args.check_urls_reachable}),
- (check_iconurl, {"check_url_reachable": args.check_urls_reachable}),
(check_scmurl_syntax, {}),
- (check_scm_notlocal, {}),
- (check_screenshoturls, {"check_url_reachable": args.check_urls_reachable}),
]
def _check_extension(file_path, verbose=False):
@@ -272,17 +271,22 @@ def _check_extension(file_path, verbose=False):
failures = []
- metadata = parse_s4ext(file_path)
- for check, check_kwargs in checks:
- try:
- check(extension_name, metadata, **check_kwargs)
- except ExtensionCheckError as exc:
- failures.append(str(exc))
+ try:
+ metadata = parse_json(file_path)
+ except ExtensionParseError as exc:
+ failures.append(str(exc))
+
+ if not failures:
+ for check, check_kwargs in checks:
+ try:
+ check(extension_name, metadata, **check_kwargs)
+ except ExtensionCheckError as exc:
+ failures.append(str(exc))
# Keep track extension errors removing duplicates
return extension_name, list(set(failures))
- file_paths = getattr(args, "/path/to/description.s4ext")
+ file_paths = getattr(args, "/path/to/extension_name.json")
with parallel_backend("threading", n_jobs=6):
jobs = Parallel(verbose=False)(
delayed(_check_extension)(file_path, verbose=args.check_urls_reachable)
@@ -294,7 +298,7 @@ def _check_extension(file_path, verbose=False):
for extension_name, failures in jobs:
if failures:
total_failure_count += len(failures)
- print("%s.s4ext" % extension_name)
+ print("%s.json" % extension_name)
for failure in set(failures):
print(" %s" % failure)
diff --git a/scripts/check_filenames.sh b/scripts/check_filenames.sh
index 4169a0fdf..f27120a56 100755
--- a/scripts/check_filenames.sh
+++ b/scripts/check_filenames.sh
@@ -23,7 +23,7 @@ unexpected_files=$(find . -mindepth 1 \( -type d \( \
-name .pre-commit-config.yaml -o \
-name .git-blame-ignore-revs -o \
-name README.md -o \
- -name "*.s4ext" \
+ -name "*.json" \
\) \) -prune -o -print)
for unexpected_file in $unexpected_files; do
From e64a3507d737acb7d49998916d5804fa731255de Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 23 Apr 2024 00:59:16 -0400
Subject: [PATCH 3/7] CI: Simplify test script removing unused checks
---
.circleci/config.yml | 2 +-
scripts/check_description_files.py | 89 +-----------------------------
2 files changed, 2 insertions(+), 89 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 0f78df282..840a2a0c1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -19,7 +19,7 @@ jobs:
name: Check description files
command: |
pip install joblib retry
- python ./scripts/check_description_files.py --check-urls-reachable --check-dependencies . $(find . -maxdepth 1 -name "*.json")
+ python ./scripts/check_description_files.py --check-dependencies . $(find . -maxdepth 1 -name "*.json")
workflows:
version: 2
diff --git a/scripts/check_description_files.py b/scripts/check_description_files.py
index 7543ea444..ccf2de63d 100644
--- a/scripts/check_description_files.py
+++ b/scripts/check_description_files.py
@@ -13,8 +13,6 @@
import urllib.parse as urlparse
from functools import wraps
-from http.client import HTTPException
-from socket import timeout as SocketTimeout
try:
from joblib import Parallel, delayed, parallel_backend
@@ -24,14 +22,6 @@
"consider installing it running 'pip install joblib'"
) from None
-try:
- from retry import retry
-except ImportError:
- raise SystemExit(
- "retry not available: "
- "consider installing it running 'pip install retry'"
- ) from None
-
class ExtensionParseError(RuntimeError):
"""Exception raised when a particular extension description file failed to be parsed.
@@ -56,32 +46,6 @@ def __str__(self):
return self.details
-def check_url(url, timeout=3):
-
- @retry(TimeoutError, tries=3, delay=1, jitter=1, max_delay=3)
- def _check_url():
- opener = urllib.request.build_opener()
- opener.addheaders = [("User-agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0")]
- return opener.open(url, timeout=timeout).getcode(), None
- try:
- return _check_url()
- except urllib.request.HTTPError as exc:
- return exc.code, str(exc)
- except (TimeoutError, urllib.request.URLError, SocketTimeout) as exc:
- return -1, str(exc)
- except HTTPException as exc:
- return -2, str(exc)
-
-
-def check_metadata_url(extension_name, metadata_key, url):
- check_name = "check_metadata_url"
-
- code, error = check_url(url)
- if code != 200:
- msg = f"{metadata_key} is '{url}': {error}"
- raise ExtensionCheckError(extension_name, check_name, msg)
-
-
def require_metadata_key(metadata_key, value_required=True):
check_name = "require_metadata_key"
@@ -121,54 +85,6 @@ def check_category(*_unused_args):
pass
-@require_metadata_key("contributors")
-def check_contributors(*_unused_args):
- pass
-
-
-@require_metadata_key("description")
-def check_description(*_unused_args):
- pass
-
-
-@require_metadata_key("homepage")
-def check_homepage(extension_name, metadata, check_url_reachable=False):
- check_name = "check_homepage"
- homepage = metadata["homepage"]
- if not homepage.startswith("https://"):
- msg = f"homepage is `{homepage}` but it does not start with https"
- raise ExtensionCheckError(extension_name, check_name, msg)
-
- if check_url_reachable:
- check_metadata_url(extension_name, "homepage", homepage)
-
-
-@require_metadata_key("iconurl")
-def check_iconurl(extension_name, metadata, check_url_reachable=False):
- check_name = "check_iconurl"
- iconurl = metadata["iconurl"]
- if not iconurl.startswith("https://"):
- msg = f"iconurl is '{iconurl}' but it does not start with https"
- raise ExtensionCheckError(extension_name, check_name, msg)
-
- if check_url_reachable:
- check_metadata_url(extension_name, "iconurl", iconurl)
-
-
-@require_metadata_key("screenshoturls", value_required=False)
-def check_screenshoturls(extension_name, metadata, check_url_reachable=False):
- check_name = "check_screenshoturls"
- if metadata["screenshoturls"] is None:
- return
- for index, screenshoturl in enumerate(metadata["screenshoturls"].split(" ")):
- if not screenshoturl.startswith("https://"):
- msg = f"screenshoturl[{index}] is `{screenshoturl}` but it does not start with https"
- raise ExtensionCheckError(extension_name, check_name, msg)
-
- if check_url_reachable:
- check_metadata_url(extension_name, f"screenshoturl[{index}]", screenshoturl)
-
-
@require_metadata_key("scmurl")
def check_scmurl_syntax(extension_name, metadata):
check_name = "check_scmurl_syntax"
@@ -247,9 +163,6 @@ def check_dependencies(directory):
def main():
parser = argparse.ArgumentParser(
description='Validate extension description files.')
- parser.add_argument(
- "--check-urls-reachable", action="store_true",
- help="Check homepage, iconurl and screenshoturls are reachable. Disabled by default.")
parser.add_argument("-d", "--check-dependencies", help="Check all extension dsecription files in the provided folder.")
parser.add_argument("/path/to/extension_name.json", nargs='*')
args = parser.parse_args()
@@ -289,7 +202,7 @@ def _check_extension(file_path, verbose=False):
file_paths = getattr(args, "/path/to/extension_name.json")
with parallel_backend("threading", n_jobs=6):
jobs = Parallel(verbose=False)(
- delayed(_check_extension)(file_path, verbose=args.check_urls_reachable)
+ delayed(_check_extension)(file_path)
for file_path in file_paths
)
From d5a6233191d1186d0fbb146b87e2804dc867cafe Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 23 Apr 2024 00:46:51 -0400
Subject: [PATCH 4/7] ENH: Update .json files to reference schema
A script like the following was used. Note that "pre-commit run -a" was
also executed to reformat the json files afterward.
```
import json
import sys
from pathlib import Path
extensions_index_dir = Path("/home/jcfr/Projects/ExtensionsIndex")
json_filepaths = list(extensions_index_dir.glob("*.json"))
print(f"Found {len(json_filepaths)} extension files (.json)")
for index, filepath in enumerate(json_filepaths):
with open(filepath) as fileContents:
metadata = json.load(fileContents)
metadata["$schema"] = "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#"
with open(extensions_index_dir / filepath, 'w') as fileContents:
fileContents.write(json.dumps(metadata, sort_keys=True, indent=2))
fileContents.write("\n")
```
---
ABLTemporalBoneSegmentation.json | 5 ++---
AblationPlanner.json | 5 ++---
AirwaySegmentation.json | 1 +
AnglePlanesExtension.json | 1 +
AnomalousFiltersExtension.json | 1 +
ArduinoController.json | 1 +
AstmPhantomTest.json | 5 ++---
Auto3dgm.json | 1 +
AutomatedDentalTools.json | 6 ++----
BigImage.json | 1 +
BoneReconstructionPlanner.json | 7 ++-----
BoneTextureExtension.json | 1 +
BoneThicknessMapping.json | 1 +
BrainVolumeRefinement.json | 1 +
BreastImplantAnalyzer.json | 1 +
BreastUltrasoundAnalysis.json | 5 ++---
Breast_DCEMRI_FTV.json | 1 +
CMFreg.json | 1 +
CarreraSlice.json | 1 +
ChangeTracker.json | 1 +
Chest_Imaging_Platform.json | 1 +
CleverSeg.json | 1 +
ColocZStats.json | 1 +
ConnectToSupervisely.json | 1 +
CurveMaker.json | 1 +
DCMQI.json | 1 +
DICOMwebBrowser.json | 1 +
DRRGenerator.json | 1 +
DSCMRIAnalysis.json | 1 +
DatabaseInteractor.json | 1 +
DebuggingTools.json | 1 +
DentalSegmentator.json | 5 ++---
DeveloperToolsForExtensions.json | 1 +
DiffusionQC.json | 5 ++---
EasyClip.json | 1 +
ErodeDilateLabel.json | 1 +
ExtraMarkups.json | 1 +
FiducialsToModelDistance.json | 1 +
FilmDosimetryAnalysis.json | 5 ++---
FlywheelCaseIterator.json | 5 ++---
GelDosimetryAnalysis.json | 5 ++---
GeodesicSlicer.json | 1 +
GyroGuide.json | 1 +
HDBrainExtraction.json | 5 ++---
IDCBrowser.json | 5 ++---
ImageAugmenter.json | 1 +
ImageCompare.json | 1 +
ImageMaker.json | 1 +
IntensitySegmenter.json | 1 +
KidneyStoneCalculator.json | 1 +
LanguagePacks.json | 1 +
LungCTAnalyzer.json | 1 +
MEMOS.json | 5 ++---
MHubRunner.json | 1 +
MONAIAuto3DSeg.json | 5 ++---
MONAILabel.json | 1 +
MONAIViz.json | 5 ++---
MRUSLandmarking.json | 1 +
MUST-segmenter.json | 5 ++---
MarkupsToModel.json | 1 +
MatlabBridge.json | 5 ++---
MedialSkeleton.json | 1 +
MeshStatisticsExtension.json | 5 ++---
MeshToLabelMap.json | 1 +
ModelClip.json | 1 +
ModelCropper.json | 1 +
ModelToModelDistance.json | 1 +
NNUNet.json | 6 ++----
NeedleFinder.json | 1 +
NvidiaAIAssistedAnnotation.json | 1 +
OpenDose3D.json | 5 ++---
OrthodonticAnalysis.json | 1 +
OsteotomyPlanner.json | 1 +
PBNRR.json | 1 +
PET-IndiC.json | 1 +
PETCPhantom.json | 1 +
PETDICOMExtension.json | 1 +
PETLiverUptakeMeasurement.json | 5 ++---
PETTumorSegmentation.json | 1 +
ParallelProcessing.json | 1 +
PathReconstruction.json | 7 ++-----
PedicleScrewSimulator.json | 1 +
PercutaneousApproachAnalysis.json | 1 +
PerkTutor.json | 1 +
PetSpectAnalysis.json | 1 +
PickAndPaintExtension.json | 1 +
Pipelines.json | 1 +
PkModeling.json | 1 +
PortPlacement.json | 1 +
PyTorch.json | 1 +
Q3DC.json | 5 ++---
QuantitativeReporting.json | 1 +
RVXLiverSegmentation.json | 1 +
RVXVesselnessFilters.json | 1 +
RawImageGuess.json | 1 +
RegistrationQA.json | 5 ++---
ResectionPlanner.json | 5 ++---
SNRMeasurement.json | 1 +
SPHARM-PDM.json | 5 ++---
Sandbox.json | 1 +
ScatteredTransform.json | 1 +
Scoliosis.json | 1 +
SegmentEditorExtraEffects.json | 5 ++---
SegmentMesher.json | 1 +
SegmentRegistration.json | 6 ++----
SegmentWithSAM.json | 5 ++---
SegmentationAidedRegistration.json | 1 +
SegmentationReview.json | 1 +
SequenceRegistration.json | 5 ++---
ShapePopulationViewer.json | 1 +
ShapeRegressionExtension.json | 1 +
ShapeVariationAnalyzer.json | 5 ++---
SkeletalRepresentation.json | 1 +
SkinMouldGenerator.json | 1 +
SkullStripper.json | 1 +
SlicerAIGT.json | 6 ++----
SlicerANTs.json | 1 +
SlicerAutoscoperM.json | 6 ++----
SlicerAutoscroll.json | 1 +
SlicerBatchAnonymize.json | 1 +
SlicerBiomech.json | 5 ++---
SlicerCBCTToothSegmentation.json | 1 +
SlicerCMF.json | 1 +
SlicerCaseIterator.json | 5 ++---
SlicerCervicalSpine.json | 5 ++---
SlicerCochlea.json | 5 ++---
SlicerConda.json | 1 +
SlicerDMRI.json | 5 ++---
SlicerDcm2nii.json | 1 +
SlicerDensityLungSegmentation.json | 1 +
SlicerDentalModelSeg.json | 1 +
SlicerDevelopmentToolbox.json | 1 +
SlicerElastix.json | 1 +
SlicerFab.json | 1 +
SlicerFreeSurfer.json | 1 +
SlicerHeart.json | 5 ++---
SlicerIGSIO.json | 1 +
SlicerIGT.json | 5 ++---
SlicerITKUltrasound.json | 1 +
SlicerJupyter.json | 1 +
SlicerLayoutButtons.json | 5 ++---
SlicerLiver.json | 1 +
SlicerLookingGlass.json | 1 +
SlicerMarkupConstraints.json | 1 +
SlicerMorph.json | 5 ++---
SlicerNetstim.json | 6 ++----
SlicerNeuro.json | 1 +
SlicerNeuroSegmentation.json | 5 ++---
SlicerOpenAnatomy.json | 1 +
SlicerOpenCV.json | 1 +
SlicerOpenIGTLink.json | 1 +
SlicerProstate.json | 1 +
SlicerProstateAblation.json | 6 ++----
SlicerPythonTestRunner.json | 1 +
SlicerRT.json | 1 +
SlicerRadiomics.json | 1 +
SlicerRegularizedFastMarching.json | 1 +
SlicerThemes.json | 1 +
SlicerTissueSegmentation.json | 1 +
SlicerToKiwiExporter.json | 1 +
SlicerVMTK.json | 5 ++---
SlicerVirtualMouseCursor.json | 1 +
SlicerVirtualReality.json | 1 +
SlicerWMA.json | 1 +
SoundControl.json | 1 +
Stereotaxia.json | 1 +
SurfaceFragmentsRegistration.json | 1 +
SurfaceLearner.json | 1 +
SurfaceMarkup.json | 1 +
SurfaceWrapSolidify.json | 1 +
SwissSkullStripper.json | 1 +
T1Mapping.json | 1 +
T1_ECVMapping.json | 1 +
T2mapping.json | 1 +
TCIABrowser.json | 6 ++----
TITAN.json | 1 +
TOMAAT.json | 1 +
TomoSAM.json | 5 ++---
TorchIO.json | 5 ++---
TotalSegmentator.json | 5 ++---
TrackingErrorInspector.json | 1 +
UHFMRTools.json | 1 +
UKFTractography.json | 1 +
Ultrasound.json | 1 +
VASSTAlgorithms.json | 1 +
VolumeClip.json | 1 +
XNATSlicer.json | 1 +
ZFrameRegistration.json | 5 ++---
flywheel_connect.json | 1 +
iGyne.json | 1 +
mpReview.json | 1 +
slicerPRISMRendering.json | 1 +
192 files changed, 244 insertions(+), 168 deletions(-)
diff --git a/ABLTemporalBoneSegmentation.json b/ABLTemporalBoneSegmentation.json
index 13a5ed332..afcb161d0 100644
--- a/ABLTemporalBoneSegmentation.json
+++ b/ABLTemporalBoneSegmentation.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerElastix"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerElastix"],
"build_subdirectory": "inner-build",
"category": "Otolaryngology",
"scm_revision": "master",
diff --git a/AblationPlanner.json b/AblationPlanner.json
index b248f9871..8c15118a7 100644
--- a/AblationPlanner.json
+++ b/AblationPlanner.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "ModelToModelDistance"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["ModelToModelDistance"],
"build_subdirectory": ".",
"category": "Quantification",
"scm_revision": "main",
diff --git a/AirwaySegmentation.json b/AirwaySegmentation.json
index 2c69da79b..a0fa7993b 100644
--- a/AirwaySegmentation.json
+++ b/AirwaySegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/AnglePlanesExtension.json b/AnglePlanesExtension.json
index f5cc906bb..80577d261 100644
--- a/AnglePlanesExtension.json
+++ b/AnglePlanesExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Analysis",
diff --git a/AnomalousFiltersExtension.json b/AnomalousFiltersExtension.json
index 98abf083f..d6c1e0b6f 100644
--- a/AnomalousFiltersExtension.json
+++ b/AnomalousFiltersExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Filtering",
diff --git a/ArduinoController.json b/ArduinoController.json
index 40202f885..e958c9ad0 100644
--- a/ArduinoController.json
+++ b/ArduinoController.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/AstmPhantomTest.json b/AstmPhantomTest.json
index 168f40541..faa059cd5 100644
--- a/AstmPhantomTest.json
+++ b/AstmPhantomTest.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerOpenIGTLink"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerOpenIGTLink"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/Auto3dgm.json b/Auto3dgm.json
index 4d1915a00..29986316d 100644
--- a/Auto3dgm.json
+++ b/Auto3dgm.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Auto3dgm",
diff --git a/AutomatedDentalTools.json b/AutomatedDentalTools.json
index 3c60f32c3..6d24fbb47 100644
--- a/AutomatedDentalTools.json
+++ b/AutomatedDentalTools.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "SlicerDentalModelSeg",
- "SlicerConda"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDentalModelSeg", "SlicerConda"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/BigImage.json b/BigImage.json
index 69486aa54..025d2fc42 100644
--- a/BigImage.json
+++ b/BigImage.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "BigImage",
diff --git a/BoneReconstructionPlanner.json b/BoneReconstructionPlanner.json
index 7ea4def43..5dbea2d97 100644
--- a/BoneReconstructionPlanner.json
+++ b/BoneReconstructionPlanner.json
@@ -1,9 +1,6 @@
{
- "build_dependencies": [
- "SurfaceWrapSolidify",
- "MarkupsToModel",
- "Sandbox"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SurfaceWrapSolidify", "MarkupsToModel", "Sandbox"],
"build_subdirectory": ".",
"category": "Planning",
"scm_revision": "main",
diff --git a/BoneTextureExtension.json b/BoneTextureExtension.json
index ecab9d650..096ecf735 100644
--- a/BoneTextureExtension.json
+++ b/BoneTextureExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Quantification",
diff --git a/BoneThicknessMapping.json b/BoneThicknessMapping.json
index e44b89e73..dc49ad06b 100644
--- a/BoneThicknessMapping.json
+++ b/BoneThicknessMapping.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Analysis",
diff --git a/BrainVolumeRefinement.json b/BrainVolumeRefinement.json
index ac47f0005..f51195caa 100644
--- a/BrainVolumeRefinement.json
+++ b/BrainVolumeRefinement.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/BreastImplantAnalyzer.json b/BreastImplantAnalyzer.json
index 1d002a4f4..c459c0a3b 100644
--- a/BreastImplantAnalyzer.json
+++ b/BreastImplantAnalyzer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/BreastUltrasoundAnalysis.json b/BreastUltrasoundAnalysis.json
index c4270ac5c..518faa877 100644
--- a/BreastUltrasoundAnalysis.json
+++ b/BreastUltrasoundAnalysis.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Utilities",
"scm_revision": "master",
diff --git a/Breast_DCEMRI_FTV.json b/Breast_DCEMRI_FTV.json
index 23b904a7f..fce1923ef 100644
--- a/Breast_DCEMRI_FTV.json
+++ b/Breast_DCEMRI_FTV.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "FTV Segmentation",
diff --git a/CMFreg.json b/CMFreg.json
index 71d54ab06..c99ef8a32 100644
--- a/CMFreg.json
+++ b/CMFreg.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Registration",
diff --git a/CarreraSlice.json b/CarreraSlice.json
index 1e83a9ad2..cdcd12737 100644
--- a/CarreraSlice.json
+++ b/CarreraSlice.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/ChangeTracker.json b/ChangeTracker.json
index 0f2ec29d9..2ac2d7201 100644
--- a/ChangeTracker.json
+++ b/ChangeTracker.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Wizards",
diff --git a/Chest_Imaging_Platform.json b/Chest_Imaging_Platform.json
index 4b3366dfe..4de35d84f 100644
--- a/Chest_Imaging_Platform.json
+++ b/Chest_Imaging_Platform.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Chest Imaging Platform",
diff --git a/CleverSeg.json b/CleverSeg.json
index eaaafdab7..952532ee8 100644
--- a/CleverSeg.json
+++ b/CleverSeg.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/ColocZStats.json b/ColocZStats.json
index 629104e7e..e8d9a1e15 100644
--- a/ColocZStats.json
+++ b/ColocZStats.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/ConnectToSupervisely.json b/ConnectToSupervisely.json
index e2b4a2153..40fba96f3 100644
--- a/ConnectToSupervisely.json
+++ b/ConnectToSupervisely.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Supervisely",
diff --git a/CurveMaker.json b/CurveMaker.json
index 83538dd48..7dfb74098 100644
--- a/CurveMaker.json
+++ b/CurveMaker.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/DCMQI.json b/DCMQI.json
index 5533546e8..514b4a34e 100644
--- a/DCMQI.json
+++ b/DCMQI.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "dcmqi-build",
"category": "DICOM",
diff --git a/DICOMwebBrowser.json b/DICOMwebBrowser.json
index 78e3a21d9..610d4d2a2 100644
--- a/DICOMwebBrowser.json
+++ b/DICOMwebBrowser.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/DRRGenerator.json b/DRRGenerator.json
index 24e29a7a7..1ed566e3f 100644
--- a/DRRGenerator.json
+++ b/DRRGenerator.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Filtering",
diff --git a/DSCMRIAnalysis.json b/DSCMRIAnalysis.json
index eb28c52b6..6f55c6632 100644
--- a/DSCMRIAnalysis.json
+++ b/DSCMRIAnalysis.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/DatabaseInteractor.json b/DatabaseInteractor.json
index 142862ad6..db8e73897 100644
--- a/DatabaseInteractor.json
+++ b/DatabaseInteractor.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Web System Tools",
diff --git a/DebuggingTools.json b/DebuggingTools.json
index f9c616507..cc9cf66d8 100644
--- a/DebuggingTools.json
+++ b/DebuggingTools.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/DentalSegmentator.json b/DentalSegmentator.json
index 6de192f05..eb8d13e91 100644
--- a/DentalSegmentator.json
+++ b/DentalSegmentator.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "NNUNet"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["NNUNet"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/DeveloperToolsForExtensions.json b/DeveloperToolsForExtensions.json
index 2c9d2b09e..88c8a71fb 100644
--- a/DeveloperToolsForExtensions.json
+++ b/DeveloperToolsForExtensions.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/DiffusionQC.json b/DiffusionQC.json
index b9db1947f..12b356d76 100644
--- a/DiffusionQC.json
+++ b/DiffusionQC.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerDMRI"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDMRI"],
"build_subdirectory": ".",
"category": "Diffusion",
"scm_revision": "master",
diff --git a/EasyClip.json b/EasyClip.json
index 7fcdf2518..d44d0394e 100644
--- a/EasyClip.json
+++ b/EasyClip.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Analysis",
diff --git a/ErodeDilateLabel.json b/ErodeDilateLabel.json
index 4d936abdd..0d7f8e1f2 100644
--- a/ErodeDilateLabel.json
+++ b/ErodeDilateLabel.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Filtering.Morphology",
diff --git a/ExtraMarkups.json b/ExtraMarkups.json
index 6dc468a70..a5b7e235c 100644
--- a/ExtraMarkups.json
+++ b/ExtraMarkups.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/FiducialsToModelDistance.json b/FiducialsToModelDistance.json
index 9a19f91f8..fe8ed3a98 100644
--- a/FiducialsToModelDistance.json
+++ b/FiducialsToModelDistance.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/FilmDosimetryAnalysis.json b/FilmDosimetryAnalysis.json
index 6af6ef5ca..11ae2401e 100644
--- a/FilmDosimetryAnalysis.json
+++ b/FilmDosimetryAnalysis.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRT"],
"build_subdirectory": ".",
"category": "Radiotherapy",
"scm_revision": "master",
diff --git a/FlywheelCaseIterator.json b/FlywheelCaseIterator.json
index a8dc65ebe..cd8a404b8 100644
--- a/FlywheelCaseIterator.json
+++ b/FlywheelCaseIterator.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerDevelopmentToolbox"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDevelopmentToolbox"],
"build_subdirectory": ".",
"category": "Informatics",
"scm_revision": "main",
diff --git a/GelDosimetryAnalysis.json b/GelDosimetryAnalysis.json
index c685cabf2..defb4cba8 100644
--- a/GelDosimetryAnalysis.json
+++ b/GelDosimetryAnalysis.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRT"],
"build_subdirectory": ".",
"category": "Radiotherapy",
"scm_revision": "master",
diff --git a/GeodesicSlicer.json b/GeodesicSlicer.json
index 146aef518..71a34b97a 100644
--- a/GeodesicSlicer.json
+++ b/GeodesicSlicer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/GyroGuide.json b/GyroGuide.json
index 4eda0f1a1..27ee0e05d 100644
--- a/GyroGuide.json
+++ b/GyroGuide.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/HDBrainExtraction.json b/HDBrainExtraction.json
index ef9b51ea1..c1492cabe 100644
--- a/HDBrainExtraction.json
+++ b/HDBrainExtraction.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/IDCBrowser.json b/IDCBrowser.json
index cf25ba6cb..ca48349ec 100644
--- a/IDCBrowser.json
+++ b/IDCBrowser.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "QuantitativeReporting"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["QuantitativeReporting"],
"build_subdirectory": ".",
"category": "Informatics",
"scm_revision": "main",
diff --git a/ImageAugmenter.json b/ImageAugmenter.json
index c9ef33006..1256ec1fd 100644
--- a/ImageAugmenter.json
+++ b/ImageAugmenter.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/ImageCompare.json b/ImageCompare.json
index 5c3d9d123..3d27222aa 100644
--- a/ImageCompare.json
+++ b/ImageCompare.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/ImageMaker.json b/ImageMaker.json
index 83a09ee02..cbed2ed66 100644
--- a/ImageMaker.json
+++ b/ImageMaker.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/IntensitySegmenter.json b/IntensitySegmenter.json
index b8e1d940a..ba29b7782 100644
--- a/IntensitySegmenter.json
+++ b/IntensitySegmenter.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/KidneyStoneCalculator.json b/KidneyStoneCalculator.json
index 4ec4e2cf9..f935a91dc 100644
--- a/KidneyStoneCalculator.json
+++ b/KidneyStoneCalculator.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/LanguagePacks.json b/LanguagePacks.json
index 591dabc91..d7c5db12c 100644
--- a/LanguagePacks.json
+++ b/LanguagePacks.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/LungCTAnalyzer.json b/LungCTAnalyzer.json
index ce0641607..68837a8c4 100644
--- a/LungCTAnalyzer.json
+++ b/LungCTAnalyzer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"PyTorch",
"SegmentEditorExtraEffects",
diff --git a/MEMOS.json b/MEMOS.json
index 0596453ab..156a718d0 100644
--- a/MEMOS.json
+++ b/MEMOS.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/MHubRunner.json b/MHubRunner.json
index bbdc0ac88..f76033c82 100644
--- a/MHubRunner.json
+++ b/MHubRunner.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Examples",
diff --git a/MONAIAuto3DSeg.json b/MONAIAuto3DSeg.json
index 36a1456e0..3960b83fe 100644
--- a/MONAIAuto3DSeg.json
+++ b/MONAIAuto3DSeg.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/MONAILabel.json b/MONAILabel.json
index 04a9a6c16..93f72cc0e 100644
--- a/MONAILabel.json
+++ b/MONAILabel.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Active Learning",
diff --git a/MONAIViz.json b/MONAIViz.json
index 18dbf16ff..ec3294c33 100644
--- a/MONAIViz.json
+++ b/MONAIViz.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Developer Tools",
"scm_revision": "main",
diff --git a/MRUSLandmarking.json b/MRUSLandmarking.json
index 8aeacfe0b..a303c0730 100644
--- a/MRUSLandmarking.json
+++ b/MRUSLandmarking.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/MUST-segmenter.json b/MUST-segmenter.json
index f8902e6ac..704894d20 100644
--- a/MUST-segmenter.json
+++ b/MUST-segmenter.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerRadiomics"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRadiomics"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "master",
diff --git a/MarkupsToModel.json b/MarkupsToModel.json
index db7700df7..c417adde5 100644
--- a/MarkupsToModel.json
+++ b/MarkupsToModel.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/MatlabBridge.json b/MatlabBridge.json
index 330d1fd2a..c9d27da07 100644
--- a/MatlabBridge.json
+++ b/MatlabBridge.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerOpenIGTLink"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerOpenIGTLink"],
"build_subdirectory": ".",
"category": "Developer Tools",
"scm_revision": "master",
diff --git a/MedialSkeleton.json b/MedialSkeleton.json
index ab43c8790..a0d03b33e 100644
--- a/MedialSkeleton.json
+++ b/MedialSkeleton.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Shape Analysis",
diff --git a/MeshStatisticsExtension.json b/MeshStatisticsExtension.json
index caa30f407..ea120c24c 100644
--- a/MeshStatisticsExtension.json
+++ b/MeshStatisticsExtension.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "ModelToModelDistance"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["ModelToModelDistance"],
"build_subdirectory": ".",
"category": "Shape Analysis",
"scm_revision": "master",
diff --git a/MeshToLabelMap.json b/MeshToLabelMap.json
index 2fee23caa..bb5af6b51 100644
--- a/MeshToLabelMap.json
+++ b/MeshToLabelMap.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Analysis",
diff --git a/ModelClip.json b/ModelClip.json
index 05cb34ffa..f21ec2ebc 100644
--- a/ModelClip.json
+++ b/ModelClip.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Surface Models",
diff --git a/ModelCropper.json b/ModelCropper.json
index 08984e94f..a606718d3 100644
--- a/ModelCropper.json
+++ b/ModelCropper.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Surface Models",
diff --git a/ModelToModelDistance.json b/ModelToModelDistance.json
index 9b1d56ee1..1b24ff226 100644
--- a/ModelToModelDistance.json
+++ b/ModelToModelDistance.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/NNUNet.json b/NNUNet.json
index c7e95f2e0..e042cac46 100644
--- a/NNUNet.json
+++ b/NNUNet.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "PyTorch",
- "SlicerPythonTestRunner"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch", "SlicerPythonTestRunner"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/NeedleFinder.json b/NeedleFinder.json
index 3365d5c70..e3538ecc9 100644
--- a/NeedleFinder.json
+++ b/NeedleFinder.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/NvidiaAIAssistedAnnotation.json b/NvidiaAIAssistedAnnotation.json
index cdeed4fcb..e4803100f 100644
--- a/NvidiaAIAssistedAnnotation.json
+++ b/NvidiaAIAssistedAnnotation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/OpenDose3D.json b/OpenDose3D.json
index 889024005..762788c62 100644
--- a/OpenDose3D.json
+++ b/OpenDose3D.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerElastix"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerElastix"],
"build_subdirectory": ".",
"category": "Radiotherapy",
"scm_revision": "master-stable",
diff --git a/OrthodonticAnalysis.json b/OrthodonticAnalysis.json
index cda9feaf2..b4f7a5407 100644
--- a/OrthodonticAnalysis.json
+++ b/OrthodonticAnalysis.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Orthodontics",
diff --git a/OsteotomyPlanner.json b/OsteotomyPlanner.json
index b33d31863..f4f9edd6a 100644
--- a/OsteotomyPlanner.json
+++ b/OsteotomyPlanner.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Osteotomy Planning",
diff --git a/PBNRR.json b/PBNRR.json
index 73ece13a7..5da418ca9 100644
--- a/PBNRR.json
+++ b/PBNRR.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Registration",
diff --git a/PET-IndiC.json b/PET-IndiC.json
index 8e4363184..4814d687c 100644
--- a/PET-IndiC.json
+++ b/PET-IndiC.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/PETCPhantom.json b/PETCPhantom.json
index c3f5c9bd6..72bc508c7 100644
--- a/PETCPhantom.json
+++ b/PETCPhantom.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/PETDICOMExtension.json b/PETDICOMExtension.json
index 3d6240fa7..0c26089ac 100644
--- a/PETDICOMExtension.json
+++ b/PETDICOMExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Converters",
diff --git a/PETLiverUptakeMeasurement.json b/PETLiverUptakeMeasurement.json
index b4ed149e1..c6fbba1c8 100644
--- a/PETLiverUptakeMeasurement.json
+++ b/PETLiverUptakeMeasurement.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "DCMQI"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["DCMQI"],
"build_subdirectory": ".",
"category": "Quantification",
"scm_revision": "master",
diff --git a/PETTumorSegmentation.json b/PETTumorSegmentation.json
index 268d4337d..9cc4d12b3 100644
--- a/PETTumorSegmentation.json
+++ b/PETTumorSegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/ParallelProcessing.json b/ParallelProcessing.json
index 7a50b82af..7d728d9b0 100644
--- a/ParallelProcessing.json
+++ b/ParallelProcessing.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/PathReconstruction.json b/PathReconstruction.json
index 75baf5ccd..7b836c57e 100644
--- a/PathReconstruction.json
+++ b/PathReconstruction.json
@@ -1,9 +1,6 @@
{
- "build_dependencies": [
- "MarkupsToModel",
- "SlicerIGT",
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["MarkupsToModel", "SlicerIGT", "SlicerRT"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/PedicleScrewSimulator.json b/PedicleScrewSimulator.json
index ed4206d98..8ae5d29f5 100644
--- a/PedicleScrewSimulator.json
+++ b/PedicleScrewSimulator.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Training",
diff --git a/PercutaneousApproachAnalysis.json b/PercutaneousApproachAnalysis.json
index 415e380d2..4ccd4beef 100644
--- a/PercutaneousApproachAnalysis.json
+++ b/PercutaneousApproachAnalysis.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/PerkTutor.json b/PerkTutor.json
index 31a626ce9..a61ea6cba 100644
--- a/PerkTutor.json
+++ b/PerkTutor.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Training",
diff --git a/PetSpectAnalysis.json b/PetSpectAnalysis.json
index bb5ccda8b..759cfccc6 100644
--- a/PetSpectAnalysis.json
+++ b/PetSpectAnalysis.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Nuclear Medicine",
diff --git a/PickAndPaintExtension.json b/PickAndPaintExtension.json
index a9cdbba8c..38fd4d56e 100644
--- a/PickAndPaintExtension.json
+++ b/PickAndPaintExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Analysis",
diff --git a/Pipelines.json b/Pipelines.json
index bd982b0ac..2e6b46823 100644
--- a/Pipelines.json
+++ b/Pipelines.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Pipelines",
diff --git a/PkModeling.json b/PkModeling.json
index 82666a4f5..5be04c101 100644
--- a/PkModeling.json
+++ b/PkModeling.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "pkmodeling-build",
"category": "Quantification",
diff --git a/PortPlacement.json b/PortPlacement.json
index d8a226657..bfc3e0ff5 100644
--- a/PortPlacement.json
+++ b/PortPlacement.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "IGT",
diff --git a/PyTorch.json b/PyTorch.json
index 864f82309..f3ffebc9e 100644
--- a/PyTorch.json
+++ b/PyTorch.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/Q3DC.json b/Q3DC.json
index 13ac96aff..1a8fa3d59 100644
--- a/Q3DC.json
+++ b/Q3DC.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerMarkupConstraints"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerMarkupConstraints"],
"build_subdirectory": ".",
"category": "Shape Analysis",
"scm_revision": "master",
diff --git a/QuantitativeReporting.json b/QuantitativeReporting.json
index 399735ce9..7f44fbcc2 100644
--- a/QuantitativeReporting.json
+++ b/QuantitativeReporting.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"SlicerDevelopmentToolbox",
"DCMQI",
diff --git a/RVXLiverSegmentation.json b/RVXLiverSegmentation.json
index eb4f12c4c..25d6a6088 100644
--- a/RVXLiverSegmentation.json
+++ b/RVXLiverSegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"SlicerVMTK",
"MarkupsToModel",
diff --git a/RVXVesselnessFilters.json b/RVXVesselnessFilters.json
index 4544c2489..0c21067de 100644
--- a/RVXVesselnessFilters.json
+++ b/RVXVesselnessFilters.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Filtering.Vesselness",
diff --git a/RawImageGuess.json b/RawImageGuess.json
index 9423eaafd..953651cf1 100644
--- a/RawImageGuess.json
+++ b/RawImageGuess.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/RegistrationQA.json b/RegistrationQA.json
index 92477b6dd..1c845cbf4 100644
--- a/RegistrationQA.json
+++ b/RegistrationQA.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRT"],
"build_subdirectory": ".",
"category": "Registration",
"scm_revision": "master",
diff --git a/ResectionPlanner.json b/ResectionPlanner.json
index 79b5e7a50..f98ebb355 100644
--- a/ResectionPlanner.json
+++ b/ResectionPlanner.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRT"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/SNRMeasurement.json b/SNRMeasurement.json
index d78085c5b..6044eea41 100644
--- a/SNRMeasurement.json
+++ b/SNRMeasurement.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/SPHARM-PDM.json b/SPHARM-PDM.json
index 49cc297af..d662c83bd 100644
--- a/SPHARM-PDM.json
+++ b/SPHARM-PDM.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "MeshToLabelMap"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["MeshToLabelMap"],
"build_subdirectory": "SPHARM-PDM-build",
"category": "SPHARM",
"scm_revision": "master",
diff --git a/Sandbox.json b/Sandbox.json
index 93af35b5a..38fd10c11 100644
--- a/Sandbox.json
+++ b/Sandbox.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Examples",
diff --git a/ScatteredTransform.json b/ScatteredTransform.json
index 8346358f5..bb4584a53 100644
--- a/ScatteredTransform.json
+++ b/ScatteredTransform.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Registration",
diff --git a/Scoliosis.json b/Scoliosis.json
index 0caec382d..cbec9e674 100644
--- a/Scoliosis.json
+++ b/Scoliosis.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/SegmentEditorExtraEffects.json b/SegmentEditorExtraEffects.json
index dcdb57fb2..21baf7002 100644
--- a/SegmentEditorExtraEffects.json
+++ b/SegmentEditorExtraEffects.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "MarkupsToModel"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["MarkupsToModel"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "master",
diff --git a/SegmentMesher.json b/SegmentMesher.json
index 4ef077574..52a73f370 100644
--- a/SegmentMesher.json
+++ b/SegmentMesher.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Segmentation",
diff --git a/SegmentRegistration.json b/SegmentRegistration.json
index 86d02581f..7b012d99f 100644
--- a/SegmentRegistration.json
+++ b/SegmentRegistration.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "SlicerProstate",
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerProstate", "SlicerRT"],
"build_subdirectory": ".",
"category": "Registration",
"scm_revision": "master",
diff --git a/SegmentWithSAM.json b/SegmentWithSAM.json
index 074043cf3..e1be836e7 100644
--- a/SegmentWithSAM.json
+++ b/SegmentWithSAM.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/SegmentationAidedRegistration.json b/SegmentationAidedRegistration.json
index 6c04e3c67..6447456d6 100644
--- a/SegmentationAidedRegistration.json
+++ b/SegmentationAidedRegistration.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Registration",
diff --git a/SegmentationReview.json b/SegmentationReview.json
index 619d52ce3..ba21127c8 100644
--- a/SegmentationReview.json
+++ b/SegmentationReview.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SequenceRegistration.json b/SequenceRegistration.json
index 6c3200c4b..911d15155 100644
--- a/SequenceRegistration.json
+++ b/SequenceRegistration.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerElastix"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerElastix"],
"build_subdirectory": ".",
"category": "Sequences",
"scm_revision": "master",
diff --git a/ShapePopulationViewer.json b/ShapePopulationViewer.json
index 4fb99559c..5f4acee82 100644
--- a/ShapePopulationViewer.json
+++ b/ShapePopulationViewer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Shape Visualization",
diff --git a/ShapeRegressionExtension.json b/ShapeRegressionExtension.json
index 2bf0db797..2f3e9d155 100644
--- a/ShapeRegressionExtension.json
+++ b/ShapeRegressionExtension.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "ShapeRegressionExtension-build",
"category": "Shape Regression",
diff --git a/ShapeVariationAnalyzer.json b/ShapeVariationAnalyzer.json
index 05bee6f9d..d9059fd9b 100644
--- a/ShapeVariationAnalyzer.json
+++ b/ShapeVariationAnalyzer.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "ShapePopulationViewer"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["ShapePopulationViewer"],
"build_subdirectory": "inner-build",
"category": "Quantification",
"scm_revision": "master",
diff --git a/SkeletalRepresentation.json b/SkeletalRepresentation.json
index c2dc004c3..7a3b712b1 100644
--- a/SkeletalRepresentation.json
+++ b/SkeletalRepresentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Shape Analysis",
diff --git a/SkinMouldGenerator.json b/SkinMouldGenerator.json
index 43e162aaa..3b86c87c4 100644
--- a/SkinMouldGenerator.json
+++ b/SkinMouldGenerator.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Radiotherapy",
diff --git a/SkullStripper.json b/SkullStripper.json
index 070dda905..82a72cbd8 100644
--- a/SkullStripper.json
+++ b/SkullStripper.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerAIGT.json b/SlicerAIGT.json
index 5372a1f0b..99d1b66d4 100644
--- a/SlicerAIGT.json
+++ b/SlicerAIGT.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "SlicerOpenIGTLink",
- "SlicerIGT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerOpenIGTLink", "SlicerIGT"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/SlicerANTs.json b/SlicerANTs.json
index a697116cb..4b69c45f9 100644
--- a/SlicerANTs.json
+++ b/SlicerANTs.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Registration",
diff --git a/SlicerAutoscoperM.json b/SlicerAutoscoperM.json
index 179e0a6fe..9dd18e272 100644
--- a/SlicerAutoscoperM.json
+++ b/SlicerAutoscoperM.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "Sandbox",
- "SegmentEditorExtraEffects"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["Sandbox", "SegmentEditorExtraEffects"],
"build_subdirectory": "inner-build",
"category": "Tracking",
"scm_revision": "main",
diff --git a/SlicerAutoscroll.json b/SlicerAutoscroll.json
index 729803d07..29a58de30 100644
--- a/SlicerAutoscroll.json
+++ b/SlicerAutoscroll.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerBatchAnonymize.json b/SlicerBatchAnonymize.json
index c8f93d2fb..525b31321 100644
--- a/SlicerBatchAnonymize.json
+++ b/SlicerBatchAnonymize.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "DSCI",
diff --git a/SlicerBiomech.json b/SlicerBiomech.json
index e3a7407f6..bd7635439 100644
--- a/SlicerBiomech.json
+++ b/SlicerBiomech.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerMorph"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerMorph"],
"build_subdirectory": ".",
"category": "Quantification",
"scm_revision": "main",
diff --git a/SlicerCBCTToothSegmentation.json b/SlicerCBCTToothSegmentation.json
index 03dfb7632..b131221a1 100644
--- a/SlicerCBCTToothSegmentation.json
+++ b/SlicerCBCTToothSegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerCMF.json b/SlicerCMF.json
index 689e77027..1f463d876 100644
--- a/SlicerCMF.json
+++ b/SlicerCMF.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"AnglePlanesExtension",
"BoneTextureExtension",
diff --git a/SlicerCaseIterator.json b/SlicerCaseIterator.json
index 93cc206fd..1ba756605 100644
--- a/SlicerCaseIterator.json
+++ b/SlicerCaseIterator.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerDevelopmentToolbox"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDevelopmentToolbox"],
"build_subdirectory": ".",
"category": "Utilities",
"scm_revision": "master",
diff --git a/SlicerCervicalSpine.json b/SlicerCervicalSpine.json
index cf64f37bc..a2ac5148d 100644
--- a/SlicerCervicalSpine.json
+++ b/SlicerCervicalSpine.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerCochlea"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerCochlea"],
"build_subdirectory": ".",
"category": "VisSimTools",
"scm_revision": "master",
diff --git a/SlicerCochlea.json b/SlicerCochlea.json
index fa12cd317..07ad3cd9c 100644
--- a/SlicerCochlea.json
+++ b/SlicerCochlea.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerElastix"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerElastix"],
"build_subdirectory": ".",
"category": "VisSimTools",
"scm_revision": "master",
diff --git a/SlicerConda.json b/SlicerConda.json
index ddf3eabe9..4cd914583 100644
--- a/SlicerConda.json
+++ b/SlicerConda.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Conda",
diff --git a/SlicerDMRI.json b/SlicerDMRI.json
index a1e674922..94c9bcef3 100644
--- a/SlicerDMRI.json
+++ b/SlicerDMRI.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "UKFTractography"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["UKFTractography"],
"build_subdirectory": "inner-build",
"category": "Diffusion",
"scm_revision": "master",
diff --git a/SlicerDcm2nii.json b/SlicerDcm2nii.json
index f61496be8..0c9f62b0c 100644
--- a/SlicerDcm2nii.json
+++ b/SlicerDcm2nii.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Diffusion",
diff --git a/SlicerDensityLungSegmentation.json b/SlicerDensityLungSegmentation.json
index cffc14f1b..5a6568942 100644
--- a/SlicerDensityLungSegmentation.json
+++ b/SlicerDensityLungSegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerDentalModelSeg.json b/SlicerDentalModelSeg.json
index 99e1bdc0b..61ea025b5 100644
--- a/SlicerDentalModelSeg.json
+++ b/SlicerDentalModelSeg.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerDevelopmentToolbox.json b/SlicerDevelopmentToolbox.json
index 2434b6d8d..2f00be82f 100644
--- a/SlicerDevelopmentToolbox.json
+++ b/SlicerDevelopmentToolbox.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/SlicerElastix.json b/SlicerElastix.json
index 2b1d79bf8..7713663a3 100644
--- a/SlicerElastix.json
+++ b/SlicerElastix.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Registration",
diff --git a/SlicerFab.json b/SlicerFab.json
index 4c3cb43f1..33b834f82 100644
--- a/SlicerFab.json
+++ b/SlicerFab.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Printing",
diff --git a/SlicerFreeSurfer.json b/SlicerFreeSurfer.json
index c87660adf..f61ee62b4 100644
--- a/SlicerFreeSurfer.json
+++ b/SlicerFreeSurfer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Neuroimaging",
diff --git a/SlicerHeart.json b/SlicerHeart.json
index b880ae328..d7a15c242 100644
--- a/SlicerHeart.json
+++ b/SlicerHeart.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerIGT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerIGT"],
"build_subdirectory": "inner-build",
"category": "Cardiac",
"scm_revision": "master",
diff --git a/SlicerIGSIO.json b/SlicerIGSIO.json
index e74e056b1..aad2000d3 100644
--- a/SlicerIGSIO.json
+++ b/SlicerIGSIO.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "IGT",
diff --git a/SlicerIGT.json b/SlicerIGT.json
index 622d33092..664974115 100644
--- a/SlicerIGT.json
+++ b/SlicerIGT.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerIGSIO"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerIGSIO"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/SlicerITKUltrasound.json b/SlicerITKUltrasound.json
index 28ba10e12..d3cea522d 100644
--- a/SlicerITKUltrasound.json
+++ b/SlicerITKUltrasound.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "SlicerITKUltrasound-build",
"category": "Filtering",
diff --git a/SlicerJupyter.json b/SlicerJupyter.json
index 92179290a..159bf0b3e 100644
--- a/SlicerJupyter.json
+++ b/SlicerJupyter.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Developer Tools",
diff --git a/SlicerLayoutButtons.json b/SlicerLayoutButtons.json
index 767c5e92d..770aef467 100644
--- a/SlicerLayoutButtons.json
+++ b/SlicerLayoutButtons.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerDevelopmentToolbox"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDevelopmentToolbox"],
"build_subdirectory": ".",
"category": "Informatics",
"scm_revision": "master",
diff --git a/SlicerLiver.json b/SlicerLiver.json
index c490eed1b..1d216a961 100644
--- a/SlicerLiver.json
+++ b/SlicerLiver.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"SlicerVMTK",
"SegmentEditorExtraEffects",
diff --git a/SlicerLookingGlass.json b/SlicerLookingGlass.json
index 410c6beea..e92cfdfaa 100644
--- a/SlicerLookingGlass.json
+++ b/SlicerLookingGlass.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Holographic Display",
diff --git a/SlicerMarkupConstraints.json b/SlicerMarkupConstraints.json
index 5227122d2..265e58e77 100644
--- a/SlicerMarkupConstraints.json
+++ b/SlicerMarkupConstraints.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/SlicerMorph.json b/SlicerMorph.json
index 4d7d811b0..f46033d26 100644
--- a/SlicerMorph.json
+++ b/SlicerMorph.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SegmentEditorExtraEffects"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SegmentEditorExtraEffects"],
"build_subdirectory": ".",
"category": "SlicerMorph",
"scm_revision": "master",
diff --git a/SlicerNetstim.json b/SlicerNetstim.json
index df48c1d73..57dcf7c13 100644
--- a/SlicerNetstim.json
+++ b/SlicerNetstim.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "SlicerRT",
- "MarkupsToModel"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerRT", "MarkupsToModel"],
"build_subdirectory": ".",
"category": "Netstim",
"scm_revision": "master",
diff --git a/SlicerNeuro.json b/SlicerNeuro.json
index 312e28a0f..1b6fa56cd 100644
--- a/SlicerNeuro.json
+++ b/SlicerNeuro.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"UKFTractography",
"SwissSkullStripper",
diff --git a/SlicerNeuroSegmentation.json b/SlicerNeuroSegmentation.json
index 436d5b2e3..e86fc7419 100644
--- a/SlicerNeuroSegmentation.json
+++ b/SlicerNeuroSegmentation.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerFreeSurfer"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerFreeSurfer"],
"build_subdirectory": ".",
"category": "Neuroimaging",
"scm_revision": "main",
diff --git a/SlicerOpenAnatomy.json b/SlicerOpenAnatomy.json
index f64110650..0f3603d86 100644
--- a/SlicerOpenAnatomy.json
+++ b/SlicerOpenAnatomy.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerOpenCV.json b/SlicerOpenCV.json
index dc7e8648a..ba61bcc3b 100644
--- a/SlicerOpenCV.json
+++ b/SlicerOpenCV.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Libraries",
diff --git a/SlicerOpenIGTLink.json b/SlicerOpenIGTLink.json
index 64453aa27..f1abdc239 100644
--- a/SlicerOpenIGTLink.json
+++ b/SlicerOpenIGTLink.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "IGT",
diff --git a/SlicerProstate.json b/SlicerProstate.json
index 0f774f232..00679512c 100644
--- a/SlicerProstate.json
+++ b/SlicerProstate.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/SlicerProstateAblation.json b/SlicerProstateAblation.json
index 879af387a..00b490379 100644
--- a/SlicerProstateAblation.json
+++ b/SlicerProstateAblation.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "SlicerDevelopmentToolbox",
- "ZFrameRegistration"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDevelopmentToolbox", "ZFrameRegistration"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/SlicerPythonTestRunner.json b/SlicerPythonTestRunner.json
index 8d9d95345..33fd10f66 100644
--- a/SlicerPythonTestRunner.json
+++ b/SlicerPythonTestRunner.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/SlicerRT.json b/SlicerRT.json
index 84b1e5b2a..1d724c7ef 100644
--- a/SlicerRT.json
+++ b/SlicerRT.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Radiotherapy",
diff --git a/SlicerRadiomics.json b/SlicerRadiomics.json
index 1ec1b98d3..87a9784aa 100644
--- a/SlicerRadiomics.json
+++ b/SlicerRadiomics.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Informatics",
diff --git a/SlicerRegularizedFastMarching.json b/SlicerRegularizedFastMarching.json
index 138470d66..c0cca7864 100644
--- a/SlicerRegularizedFastMarching.json
+++ b/SlicerRegularizedFastMarching.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerThemes.json b/SlicerThemes.json
index 08e12a1d1..9ef035c06 100644
--- a/SlicerThemes.json
+++ b/SlicerThemes.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Developer Tools",
diff --git a/SlicerTissueSegmentation.json b/SlicerTissueSegmentation.json
index c891878bd..8d7c128cd 100644
--- a/SlicerTissueSegmentation.json
+++ b/SlicerTissueSegmentation.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SlicerToKiwiExporter.json b/SlicerToKiwiExporter.json
index c8bb23b44..074f28c0e 100644
--- a/SlicerToKiwiExporter.json
+++ b/SlicerToKiwiExporter.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Exporter",
diff --git a/SlicerVMTK.json b/SlicerVMTK.json
index 8b4cdf826..0b8b4323d 100644
--- a/SlicerVMTK.json
+++ b/SlicerVMTK.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "ExtraMarkups"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["ExtraMarkups"],
"build_subdirectory": "inner-build",
"category": "Vascular Modeling Toolkit",
"scm_revision": "master",
diff --git a/SlicerVirtualMouseCursor.json b/SlicerVirtualMouseCursor.json
index 53b8f2abb..409870ff1 100644
--- a/SlicerVirtualMouseCursor.json
+++ b/SlicerVirtualMouseCursor.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Utilities",
diff --git a/SlicerVirtualReality.json b/SlicerVirtualReality.json
index 771de2ff6..5caec940f 100644
--- a/SlicerVirtualReality.json
+++ b/SlicerVirtualReality.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Virtual Reality",
diff --git a/SlicerWMA.json b/SlicerWMA.json
index a5dcfb808..a9ee81b95 100644
--- a/SlicerWMA.json
+++ b/SlicerWMA.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": "inner-build",
"category": "Libraries",
diff --git a/SoundControl.json b/SoundControl.json
index 475af4e76..efc085f66 100644
--- a/SoundControl.json
+++ b/SoundControl.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/Stereotaxia.json b/Stereotaxia.json
index 3e089aea6..be1a99671 100644
--- a/Stereotaxia.json
+++ b/Stereotaxia.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/SurfaceFragmentsRegistration.json b/SurfaceFragmentsRegistration.json
index 28ee9f5fd..3420a8758 100644
--- a/SurfaceFragmentsRegistration.json
+++ b/SurfaceFragmentsRegistration.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Registration",
diff --git a/SurfaceLearner.json b/SurfaceLearner.json
index d76aa1c0e..0b57ec832 100644
--- a/SurfaceLearner.json
+++ b/SurfaceLearner.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "SurfaceLearner",
diff --git a/SurfaceMarkup.json b/SurfaceMarkup.json
index 438882209..80ea933a9 100644
--- a/SurfaceMarkup.json
+++ b/SurfaceMarkup.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/SurfaceWrapSolidify.json b/SurfaceWrapSolidify.json
index a756abc3f..aa26c0823 100644
--- a/SurfaceWrapSolidify.json
+++ b/SurfaceWrapSolidify.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/SwissSkullStripper.json b/SwissSkullStripper.json
index 4f55d62de..a94f001f3 100644
--- a/SwissSkullStripper.json
+++ b/SwissSkullStripper.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/T1Mapping.json b/T1Mapping.json
index 4788a1291..11945ba40 100644
--- a/T1Mapping.json
+++ b/T1Mapping.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/T1_ECVMapping.json b/T1_ECVMapping.json
index f84629346..69e596e99 100644
--- a/T1_ECVMapping.json
+++ b/T1_ECVMapping.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Cardiac",
diff --git a/T2mapping.json b/T2mapping.json
index b0db33294..e5db67329 100644
--- a/T2mapping.json
+++ b/T2mapping.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Quantification",
diff --git a/TCIABrowser.json b/TCIABrowser.json
index 38597a043..bc1e1d4ec 100644
--- a/TCIABrowser.json
+++ b/TCIABrowser.json
@@ -1,8 +1,6 @@
{
- "build_dependencies": [
- "QuantitativeReporting",
- "SlicerRT"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["QuantitativeReporting", "SlicerRT"],
"build_subdirectory": ".",
"category": "Informatics",
"scm_revision": "master",
diff --git a/TITAN.json b/TITAN.json
index ce2197dfe..5a32354aa 100644
--- a/TITAN.json
+++ b/TITAN.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Analysis",
diff --git a/TOMAAT.json b/TOMAAT.json
index ee4fa85c4..3e54c941e 100644
--- a/TOMAAT.json
+++ b/TOMAAT.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/TomoSAM.json b/TomoSAM.json
index ccea4bf28..57b19d623 100644
--- a/TomoSAM.json
+++ b/TomoSAM.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/TorchIO.json b/TorchIO.json
index e3691eee6..987335b04 100644
--- a/TorchIO.json
+++ b/TorchIO.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Utilities",
"scm_revision": "main",
diff --git a/TotalSegmentator.json b/TotalSegmentator.json
index 42d5259d0..916c608d6 100644
--- a/TotalSegmentator.json
+++ b/TotalSegmentator.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "PyTorch"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["PyTorch"],
"build_subdirectory": ".",
"category": "Segmentation",
"scm_revision": "main",
diff --git a/TrackingErrorInspector.json b/TrackingErrorInspector.json
index b8a79397d..a8d20e58b 100644
--- a/TrackingErrorInspector.json
+++ b/TrackingErrorInspector.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/UHFMRTools.json b/UHFMRTools.json
index 61b46d2f2..b7b8f1503 100644
--- a/UHFMRTools.json
+++ b/UHFMRTools.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Filtering",
diff --git a/UKFTractography.json b/UKFTractography.json
index 259355d0c..9c94413ac 100644
--- a/UKFTractography.json
+++ b/UKFTractography.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Tractography",
diff --git a/Ultrasound.json b/Ultrasound.json
index e016f734b..442b06fac 100644
--- a/Ultrasound.json
+++ b/Ultrasound.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Ultrasound",
diff --git a/VASSTAlgorithms.json b/VASSTAlgorithms.json
index c89693830..3e1f91d1a 100644
--- a/VASSTAlgorithms.json
+++ b/VASSTAlgorithms.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Registration",
diff --git a/VolumeClip.json b/VolumeClip.json
index bef687cdc..844608941 100644
--- a/VolumeClip.json
+++ b/VolumeClip.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Segmentation",
diff --git a/XNATSlicer.json b/XNATSlicer.json
index 8534a0e8f..a921e3885 100644
--- a/XNATSlicer.json
+++ b/XNATSlicer.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Remote",
diff --git a/ZFrameRegistration.json b/ZFrameRegistration.json
index 4f59b66fc..f9fdede2f 100644
--- a/ZFrameRegistration.json
+++ b/ZFrameRegistration.json
@@ -1,7 +1,6 @@
{
- "build_dependencies": [
- "SlicerDevelopmentToolbox"
- ],
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "build_dependencies": ["SlicerDevelopmentToolbox"],
"build_subdirectory": ".",
"category": "IGT",
"scm_revision": "master",
diff --git a/flywheel_connect.json b/flywheel_connect.json
index ecbb8dd97..09c5f220b 100644
--- a/flywheel_connect.json
+++ b/flywheel_connect.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Informatics",
diff --git a/iGyne.json b/iGyne.json
index bae48f522..f4ae14a8b 100644
--- a/iGyne.json
+++ b/iGyne.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "IGT",
diff --git a/mpReview.json b/mpReview.json
index 7ce3c52a3..3432ed44f 100644
--- a/mpReview.json
+++ b/mpReview.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [
"SlicerDevelopmentToolbox",
"QuantitativeReporting",
diff --git a/slicerPRISMRendering.json b/slicerPRISMRendering.json
index 98bcffce2..f47570534 100644
--- a/slicerPRISMRendering.json
+++ b/slicerPRISMRendering.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
"build_dependencies": [],
"build_subdirectory": ".",
"category": "Rendering",
From 80e05b4f0cc97a74e3697c44cda07adcc20f0b87 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 23 Apr 2024 17:18:42 -0400
Subject: [PATCH 5/7] CI: Fix check renaming "scmurl" to "scm_url"
---
scripts/check_description_files.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/scripts/check_description_files.py b/scripts/check_description_files.py
index ccf2de63d..7bcd7d612 100644
--- a/scripts/check_description_files.py
+++ b/scripts/check_description_files.py
@@ -85,28 +85,28 @@ def check_category(*_unused_args):
pass
-@require_metadata_key("scmurl")
-def check_scmurl_syntax(extension_name, metadata):
- check_name = "check_scmurl_syntax"
+@require_metadata_key("scm_url")
+def check_scm_url_syntax(extension_name, metadata):
+ check_name = "check_scm_url_syntax"
- if "://" not in metadata["scmurl"]:
- raise ExtensionCheckError(extension_name, check_name, "scmurl do not match scheme://host/path")
+ if "://" not in metadata["scm_url"]:
+ raise ExtensionCheckError(extension_name, check_name, "scm_url do not match scheme://host/path")
supported_schemes = ["git", "https"]
- scheme = urlparse.urlsplit(metadata["scmurl"]).scheme
+ scheme = urlparse.urlsplit(metadata["scm_url"]).scheme
if scheme not in supported_schemes:
raise ExtensionCheckError(
extension_name, check_name,
- "scmurl scheme is '%s' but it should by any of %s" % (scheme, supported_schemes))
+ "scm_url scheme is '%s' but it should by any of %s" % (scheme, supported_schemes))
-@require_metadata_key("scmurl")
+@require_metadata_key("scm_url")
def check_git_repository_name(extension_name, metadata):
"""See https://www.slicer.org/wiki/Documentation/Nightly/Developers/FAQ#Should_the_name_of_the_source_repository_match_the_name_of_the_extension_.3F
"""
check_name = "check_git_repository_name"
- repo_name = os.path.splitext(urlparse.urlsplit(metadata["scmurl"]).path.split("/")[-1])[0]
+ repo_name = os.path.splitext(urlparse.urlsplit(metadata["scm_url"]).path.split("/")[-1])[0]
if repo_name in REPOSITORY_NAME_CHECK_EXCEPTIONS:
return
@@ -173,7 +173,7 @@ def main():
checks = [
(check_category, {}),
(check_git_repository_name, {}),
- (check_scmurl_syntax, {}),
+ (check_scm_url_syntax, {}),
]
def _check_extension(file_path, verbose=False):
From 2a00294aaeaf564ea9943ed91583014eb504d722 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 19 Mar 2024 17:31:20 -0400
Subject: [PATCH 6/7] CI: Validate json files against schema
---
.pre-commit-config.yaml | 7 +++
...extension-catalog-entry-schema-v1.0.0.json | 58 +++++++++++++++++++
scripts/check_filenames.sh | 1 +
3 files changed, 66 insertions(+)
create mode 100644 schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 48ccbcaca..4297256db 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -28,5 +28,12 @@ repos:
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: "0.28.0"
hooks:
+ - id: check-jsonschema
+ files: ^[^/]*\.json$
+ args:
+ [
+ "--schemafile",
+ "schemas/slicer-extension-catalog-entry-schema-v1.0.0.json",
+ ]
- id: check-dependabot
- id: check-github-workflows
diff --git a/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json b/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
new file mode 100644
index 000000000..472f7c523
--- /dev/null
+++ b/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
@@ -0,0 +1,58 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
+ "type": "object",
+ "title": "3D Slicer extensions catalog entry schema",
+ "description": "Schema for storing information about a 3D Slicer extension to allow it to be listed in the extension catalog.",
+ "required": ["$schema", "category", "scm_url"],
+ "additionalProperties": false,
+ "properties": {
+ "$schema": {
+ "$id": "#schema",
+ "type": "string",
+ "title": "Schema",
+ "description": "URL of versioned schema."
+ },
+ "category": {
+ "$id": "#category",
+ "type": "string",
+ "title": "Category used to organize the extension in the extension catalog."
+ },
+ "scm_url": {
+ "$id": "#scm_url",
+ "type": "string",
+ "title": "Filename or URL of the repository."
+ },
+ "scm_revision": {
+ "$id": "#scm_revision",
+ "type": "string",
+ "title": "Hash, branch or tag name to identify the revision within the repository."
+ },
+ "scm_type": {
+ "$id": "#scm_type",
+ "type": "string",
+ "title": "Type of revision control system.",
+ "enum": ["git", "local"],
+ "default": "git"
+ },
+ "build_dependencies": {
+ "$id": "#build_dependencies",
+ "type": "array",
+ "title": "List of extensions required to build this extension.",
+ "additionalItems": false,
+ "items": { "type": "string" }
+ },
+ "build_subdirectory": {
+ "$id": "#build_subdirectory",
+ "type": "string",
+ "title": "Name of the inner build directory in case of superbuild based extension.",
+ "default": "."
+ },
+ "enabled": {
+ "$id": "#enabled",
+ "type": "boolean",
+ "title": "Specify if the extension should be enabled after its installation.",
+ "default": true
+ }
+ }
+}
diff --git a/scripts/check_filenames.sh b/scripts/check_filenames.sh
index f27120a56..494286a94 100755
--- a/scripts/check_filenames.sh
+++ b/scripts/check_filenames.sh
@@ -18,6 +18,7 @@ unexpected_files=$(find . -mindepth 1 \( -type d \( \
-path ./.github -o \
-path ./.git -o \
-path ./ARCHIVE -o \
+ -path ./schemas -o \
-path ./scripts \
\) -o -type f \( \
-name .pre-commit-config.yaml -o \
From 0b4f9cd571c792fbe4f00d983947ef81b4f923f2 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin
Date: Tue, 23 Apr 2024 22:50:35 -0400
Subject: [PATCH 7/7] CI: Validate json files downloading schema
---
.pre-commit-config.yaml | 2 +-
...extension-catalog-entry-schema-v1.0.0.json | 58 -------------------
scripts/check_filenames.sh | 1 -
3 files changed, 1 insertion(+), 60 deletions(-)
delete mode 100644 schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 4297256db..dc247471c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -33,7 +33,7 @@ repos:
args:
[
"--schemafile",
- "schemas/slicer-extension-catalog-entry-schema-v1.0.0.json",
+ "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json",
]
- id: check-dependabot
- id: check-github-workflows
diff --git a/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json b/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
deleted file mode 100644
index 472f7c523..000000000
--- a/schemas/slicer-extension-catalog-entry-schema-v1.0.0.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema",
- "$id": "https://raw.githubusercontent.com/Slicer/Slicer/main/Schemas/slicer-extension-catalog-entry-schema-v1.0.0.json#",
- "type": "object",
- "title": "3D Slicer extensions catalog entry schema",
- "description": "Schema for storing information about a 3D Slicer extension to allow it to be listed in the extension catalog.",
- "required": ["$schema", "category", "scm_url"],
- "additionalProperties": false,
- "properties": {
- "$schema": {
- "$id": "#schema",
- "type": "string",
- "title": "Schema",
- "description": "URL of versioned schema."
- },
- "category": {
- "$id": "#category",
- "type": "string",
- "title": "Category used to organize the extension in the extension catalog."
- },
- "scm_url": {
- "$id": "#scm_url",
- "type": "string",
- "title": "Filename or URL of the repository."
- },
- "scm_revision": {
- "$id": "#scm_revision",
- "type": "string",
- "title": "Hash, branch or tag name to identify the revision within the repository."
- },
- "scm_type": {
- "$id": "#scm_type",
- "type": "string",
- "title": "Type of revision control system.",
- "enum": ["git", "local"],
- "default": "git"
- },
- "build_dependencies": {
- "$id": "#build_dependencies",
- "type": "array",
- "title": "List of extensions required to build this extension.",
- "additionalItems": false,
- "items": { "type": "string" }
- },
- "build_subdirectory": {
- "$id": "#build_subdirectory",
- "type": "string",
- "title": "Name of the inner build directory in case of superbuild based extension.",
- "default": "."
- },
- "enabled": {
- "$id": "#enabled",
- "type": "boolean",
- "title": "Specify if the extension should be enabled after its installation.",
- "default": true
- }
- }
-}
diff --git a/scripts/check_filenames.sh b/scripts/check_filenames.sh
index 494286a94..f27120a56 100755
--- a/scripts/check_filenames.sh
+++ b/scripts/check_filenames.sh
@@ -18,7 +18,6 @@ unexpected_files=$(find . -mindepth 1 \( -type d \( \
-path ./.github -o \
-path ./.git -o \
-path ./ARCHIVE -o \
- -path ./schemas -o \
-path ./scripts \
\) -o -type f \( \
-name .pre-commit-config.yaml -o \