Skip to content
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

Add SlicerSPECTRecon extension #2083

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add SlicerSPECTRecon extension #2083

wants to merge 1 commit into from

Conversation

ObedDzik
Copy link

New extension

  • Extension has a reasonable name (not too general, not too narrow, suggests what the extension is for)
  • Repository name is Slicer+ExtensionName
  • Repository is associated with 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 enter 3d-slicer-extension in "Topics" and click "Save changes". To learn more about topics, read https://help.github.com/en/articles/about-topics
  • Extension description summarizes in 1-2 sentences what the extension is usable (should be understandable for non-experts)
  • Any known related patents must be mentioned in the extension description.
  • LICENSE.txt is present in the repository root. MIT (https://choosealicense.com/licenses/mit/) or Apache (https://choosealicense.com/licenses/apache-2.0/) license is recommended. If source code license is more restrictive for users than MIT, BSD, Apache, or 3D Slicer license then the name of the used license must be mentioned in the extension description.
  • Extension URL and revision (scmurl, scmrevision) is correct, consider using a branch name (main, release, ...) instead of a specific git hash to avoid re-submitting pull request whenever the extension is updated
  • Extension icon URL is correct (do not use the icon's webpage but the raw data download URL that you get from the download button - it should look something like this: https://raw.githubusercontent.com/user/repo/main/SomeIcon.png)
  • Screenshot URLs (screenshoturls) are correct, contains at least one
  • Homepage URL points to valid webpage containing the following:
    • Extension name
    • Short description: 1-2 sentences, which summarizes what the extension is usable for
    • At least one nice, informative image, that illustrates what the extension can do. It may be a screenshot.
    • Description of contained modules: at one sentence for each module
    • 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 or the Apache 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 to learn more about licenses.
    • 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)

@lukepolson
Copy link

@lassoan let us know if there's anything you want us to add before merging ☺

@ObedDzik
Copy link
Author

ObedDzik commented Nov 8, 2024

@lassoan hi team, we wanted to know if there is anything else to be done on our part for the successful merging of this extension.

@lukepolson
Copy link

@lassoan @pieper

@lassoan
Copy link
Contributor

lassoan commented Dec 11, 2024

Thank you for your excellent contribution and sorry for the long delay, we had a long backlog of extensions work through.
The extension looks great, there is just one significant issue about how the required Python packages are installed, and a few minor tweaks:

  • Slicer startup after installing the extension appears to be hanging. Most users would force stop Slicer and conclude that the extension is broken. Actually, what's happening is that the extension installs Python packages at startup, which can take several minutes, and by the user aborting the installation the result is some incompletely installed Python packages, which actually do not work. All subsequent Slicer application starts are very slow, too (2-3x longer than usual) because the module spends a lot of time checking these packages and importing them. The solution is to not install any Python packages and refrain from importing any non-trivial packages in the main module .py at the file scope. Installing/importing packages inside functions - when actually needed - is OK. Installing/importing packages at the file scope in additional .py files (e.g., those in the Logic folder) is OK.
  • Fix project name and image URLs in CMakeLists.txt (see Update CMakeLists.txt PyTomography/slicer_spect_recon#36)
  • Change repository name to Slicer, which in this case is SlicerSPECTRecon
  • Rename the module name to SPECTRecon (we don't want each module name to start with Slicer), preferably change the module title to human-readable, such as SPECT reconstruction
  • Make link to the excellent user manual much more visible! I almost gave up on trying the extension when I accidentally noticed a little text mentioning User_Manual.md. It was not even a link that I could click. Make it big and bold and maybe show it at multiple places.
  • User interface section: mention the module name that should be opened, add a link to the user manual
  • It would be nice to have a very simple, basic non-video tutorial (just a few bullet points and screenshots). Having a video tutorial is great for some people, but many people will refuse to watch a 30-minute tutorial. Also, you can ensure that a text-based tutorial is always up-to-date, but it is practically impossible to update video tutorials up-to-date, so they will always be somewhat inaccurate.

@lassoan lassoan added the Status: Awaiting Response ⏳ Waiting for a response/more information label Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Awaiting Response ⏳ Waiting for a response/more information
Development

Successfully merging this pull request may close these issues.

3 participants