-
Notifications
You must be signed in to change notification settings - Fork 260
[5.8] Add SlicerOpenLIFU #2162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.8] Add SlicerOpenLIFU #2162
Conversation
Thanks for your work on this and interest in contributing. We saw that the license for the code is AGPL, which we interpret as a "non-permissive" license, since it may require people to change the license on other code it's mixed with. So from a Slicer point of view, that would make this a "tier 1" extension. In the future we plan not to display tier 1 extensions by default. I'd encourage you to try revisiting the license in order to collaborate more closely with the rest of the 3D Slicer community. There are many points of possible mutual benefit with projects like NousNav and SlicerTMS, but those collaborations won't be possible if you stick to the AGPL license. Please consider Apache 2.0, BSD, the Slicer License, or another option that would allow collaboration. Also, just a comment on the readme: it would be good to include a definition of LIFU and also links to your company's website to make it easier for people to quickly understand what the project is about. |
The license is a fixed choice by Openwater in this case and not likely to change. We could include a copyleft warning for anyone who tries to mix the extension into their own work. It would be convenient
Good idea. @arhowe00 here is some introductory text we could add:
This link to early access systems may be appropriate to include for now: https://www.openwater.health/early-access-systems |
Made these changes (including fixing the link) and posting a PR to SlicerOpenLIFU. |
Changes have been pushed to main @pieper |
In medical image computing, permissive (MIT, Apache, BSD) licenses are the standard for open-source tools, probably because restrictive licenses practically prevent translating prototypes into clinical use. A restrictive license is acceptable in the Extensions Index, but to increase the impact of this extension and encourage community engagement, a permissive license would be a much better fit. Would you be able to start a discussion with your funder about their open-source strategy and goals? They may find that the extreme AGPL license is not the best choice to achieve those goals. We would be happy to provide more details or participate in meetings if that helps. |
The choice of AGPL seems to be quite deliberate, but it doesn't hurt to ask and I'm not actually sure it's non-negotiable or that nothing has changed since that choice was made. We can reach out and get back to you @lassoan and @pieper. Thanks! |
reminder to add |
We've had some discussions with the folks at Openwater, and in the meantime we have decided to stick with AGPL. They acknowledge the extension will be in a low tier and accept that in the meantime. I've rebased to the 5.8 branch and bumped the version to v0.4.0. I found an interesting post on Vitalik's (one of the funders) website, where he shares some of his opinions on open source... |
Thanks for your efforts @arhowe00. This licensing issue is very unfortunate, because we strive to achieve absolute openness, without restrictions, and we have been very successful so far. This will be the only 3D Slicer extension out of 200+ that has a restrictive license (except two very old, now defunct ones - GeodesicSlicer and TOMAAT), but I guess we have to be open to non-openness, too. I would only ask to add the license restriction note (can be a shortened version of the note in the readme) to the extension's description and I hope that at some point we'll have a chance to talk to the funder and clarify that must be some misunderstanding. @pieper please chime in if you would be OK with this or have more requests. |
Yes, the AGPL issue is a real problem mainly because there's so much potential synergy with other projects (SlicerTMS, NousNav, etc). I'm thinking maybe the best is for OpenWater to just distribute the extension outside of the extension catalog. It's very easy to install pure-python extensions and since it's going to be tier 1 and not visible by default there's not much practical difference. |
Indeed the license is unfortunate. Openwater may change it, but it seems they have a complicated internal discussion going on. Having this be the only extension in the store with a restrictive license will present a strong case for the party in favor of changing it. This is one reason we want to proceed with publishing to the extension index, and allow it to be Tier 1 for now.
This is what we do currently, but it's not so convenient because the distributed extension has to be built against the same Slicer revision+OS into which it's being added. Even though it is pure python, the extension package has metadata that causes it to not install correctly if there is a mismatch of revision number or OS. @arhowe00 we can add the license restriction warning note to the extension description, and then proceed |
See the newly merged description here. I haven't yet bumped the version here to include that bit, which I will once we make the next extension release with the extension description change. Let us know if we are still able to merge into the index, despite the license. |
@lassoan I guess the drag and drop of extension repo zip code (Slicer/Slicer#4610) is not supported yet if someone say downloaded the zip of https://github.com/OpenwaterHealth/SlicerOpenLIFU/archive/refs/tags/v1.4.0.zip? This to avoid developers having to manually publish their own Slicer extension zip bundle to support installing the extension through the "Install from file" option of the extensions manager. I assume integration into the extensions manager here (even though tier 1 and to be hidden) is because it is seen as the "easiest" way for users to get a Slicer extension that only has scripted modules loaded into the Slicer application. |
Please, consider rebasing this branch against the latest Attempt to do so ourselves failed:
|
@arhowe00 @ebrahimebrahim A separate question - Is SlicerOpenLIFU being attempted for integration only into Slicer stable 5.8 extension branch for a reason? Typically all new extensions are first added into the I can't think of an extension right off hand that is only available for Slicer stable, but not available for latest Slicer Preview (aka available on the |
Thank you for pointing this out; I hadn't noticed this was targeting a release branch! Indeed, we really want to target the main branch @arhowe00 |
Good point @jamesobutler . We were sticking to 5.8.1 because we had to have control over the revision for releasing the extension in the previous manner, which we will cease to do after the extension is published on the index. I'm going to push the added tier 1 extension to I am closing this PR. Please see the continuation of this conversation in the PR to merge OpenwaterHealth/SlicerOpenLIFU-ExtensionsIndex:main into Slicer/ExtensionsIndex:main. |
New extension
Tier 1
Any extension that is listed in the Extensions Catalog must fulfill these requirements.
3d-slicer-extension
GitHub topic so that it is listed here. To edit topics, click the settings icon in the right side of "About" section header and enter3d-slicer-extension
in "Topics" and click "Save changes". To learn more about topics, read https://help.github.com/en/articles/about-topicsSettings
and in repository settings uncheckWiki
,Projects
, andDiscussions
(if they are currently not used).About
in the top-right corner of the repository main page and uncheckReleases
andPackages
(if they are currently not used)Tier 3
Community-supported extensions.
Tier 5
Critically important extensions, supported by Slicer core developers. New Slicer Stable Release is released only if all Tier 5 extension packages are successfully created on all supported platforms.
An issue was opened regarding the variable set below in the root
CMakeLists.txt
:where
Screenshots
is supposed to be all lowercase as in the extension repository SlicerOpenLIFU.