# Extension versioning

**URL:** <https://discourse.slicer.org/t/extension-versioning/32215>\
**Category:** Development\
**Tags:** extensions\
**Created:** [October 13, 2023, 5:06pm UTC](https://discourse.slicer.org/t/extension-versioning/32215 "2023-10-13T17:06:26Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jhlegarreta](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jhlegarreta/32/66542_2.png) [@jhlegarreta](https://discourse.slicer.org/u/jhlegarreta)\
**Post date:** [October 13, 2023, 5:06pm UTC](https://discourse.slicer.org/t/extension-versioning/32215/1 "2023-10-13T17:06:26Z")

</div>

Hi,  
I am using 3D Slicer 5.2.2, and have a number of extensions installed, including SlicerDMRI:  
[GitHub - SlicerDMRI/SlicerDMRI: Diffusion MRI analysis and visualization in 3D Slicer open source medical imaging platform.](https://github.com/SlicerDMRI/SlicerDMRI)

According to the ExtensionManager in 3D Slicer, the SlicerDMRI version I have is [6207e52](https://github.com/SlicerDMRI/SlicerDMRI/tree/6207e526b549a1fc73bcd106704972bc0f9f3fb2) (2023-02-23). The repository at issue only contains an [old tag](https://github.com/SlicerDMRI/SlicerDMRI/tags).

As far as I know, for CMake-based projects, the version is usually hosted in a `*.cmake` (e.g. [`SlicerVersion.cmake`](https://github.com/Slicer/Slicer/blob/93ee298abb3d091899f2c887b8907009f076e00d/CMake/SlicerVersion.cmake)) file.

I am wondering how stable versions for extensions should be dealt with or are installed or picked by the Extension Manager.

Thanks.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [October 13, 2023, 6:13pm UTC](https://discourse.slicer.org/t/extension-versioning/32215/2 "2023-10-13T18:13:44Z")

</div>

The [ExtensionsIndex repository](https://github.com/Slicer/ExtensionsIndex/) stores what version of an extension (tag, branch, or hash) should be used for each Slicer version (in scm\* fields in the .s4ext files).

For example, version of each extension that should be used with Slicer-5.4 are specified in this branch: [GitHub - Slicer/ExtensionsIndex at 5.4](https://github.com/Slicer/ExtensionsIndex/tree/5.4)

---

<div class="post-metadata">

**Author:** ![jhlegarreta](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jhlegarreta/32/66542_2.png) [@jhlegarreta](https://discourse.slicer.org/u/jhlegarreta)\
**Post date:** [October 13, 2023, 6:58pm UTC](https://discourse.slicer.org/t/extension-versioning/32215/3 "2023-10-13T18:58:59Z")

</div>

OK, thanks for info Andras.

---

<div class="post-metadata">

**Author:** ![MyrtleDunlap](https://avatars.discourse-cdn.com/v4/letter/m/b5ac83/32.png) [@MyrtleDunlap](https://discourse.slicer.org/u/MyrtleDunlap)\
**Post date:** [November 6, 2023, 1:56pm UTC](https://discourse.slicer.org/t/extension-versioning/32215/4 "2023-11-06T13:56:12Z")

</div>

In 3D Slicer, extension versions are managed through the Extension Manager, which ensures you have the latest stable version. The version you mentioned, 6207e52, corresponds to a release or update from the repository.

---

<div class="post-metadata">

**Author:** ![jhlegarreta](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jhlegarreta/32/66542_2.png) [@jhlegarreta](https://discourse.slicer.org/u/jhlegarreta)\
**Post date:** [November 6, 2023, 2:19pm UTC](https://discourse.slicer.org/t/extension-versioning/32215/5 "2023-11-06T14:19:32Z")

</div>

> [@MyrtleDunlap](#):
>
> corresponds to a release or update from the repository.

It is a simple commit. If you look at the tags and/or releases of the repository you’ll realize about the relevance of the question.

> [@MyrtleDunlap](#):
>
> In 3D Slicer, extension versions are managed through the Extension Manager, which ensures you have the latest stable version.

I only had a quick look at the extension index repository, and saw that there is a non-negligible amount of extensions that specify a non-tagged version for their `scmrevision`, which potentially implies that these are not necessarily stable.
