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

ENH: New extension: Slicer_ASLtoolkit #2104

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

Conversation

acsenrafilho
Copy link
Contributor

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)

@acsenrafilho
Copy link
Contributor Author

@lassoan could you please evaluate this PR as well?

@lassoan
Copy link
Contributor

lassoan commented Nov 16, 2024

There is no CLI modules, so you cannot ask the user about installing a Python package. It is OK to install without asking, like this:

try:
    from asltk.asldata import ASLData
    from asltk.reconstruction import CBFMapping
    from asltk.utils import load_image, save_image
except ModuleNotFoundError:
    import slicer.util
    slicer.util.pip_install("asltk")
    from asltk.asldata import ASLData
    from asltk.reconstruction import CBFMapping
    from asltk.utils import load_image, save_image

I could not try to actually use any of the modules, because I could not find any tutorial with testing data.

@lassoan lassoan added the Status: Awaiting Response ⏳ Waiting for a response/more information label Nov 16, 2024
@acsenrafilho
Copy link
Contributor Author

Great, @lassoan
Thanks for the advice. I did not know that, for extensions without CLI, it is ok to install the python package directly.
I have changed the code lines in the main branch
Link to ASL sample

BTW, I have also added a small data test zip file here to assist with a (brief) testing.
I will also add this example test data to the documentation, which will be publicly available to users and developers.

@acsenrafilho
Copy link
Contributor Author

@lassoan , just to say that I have updated the extension documentation to give a quick dataset tutorial to assist for further testing.
See more details in the section Quick tutorial in the documentation

I already included the How to install section assuming that (soon) this extension will be live at Slicer Extension Manager (finger crossed 🤞 )

I hope that this will be useful for the general community. Any thoughts are very welcome!

BTW, thank you very much for all the help!

@lassoan lassoan removed the Status: Awaiting Response ⏳ Waiting for a response/more information label Dec 2, 2024
@lassoan
Copy link
Contributor

lassoan commented Dec 10, 2024

Thank you for your patience. Have you tried if slicer.util.messageBox actually works in Python CLI modules? I would expect it to fail. It is because that GUI CLI modules are not meant to provide any interactivity or GUI (other than the GUI that is automatically generated from the .xml file). If there is any message that you want to display to the user then print it to the standard output or standard error. If there is an error then exit with a non-zero exit code.

@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.

2 participants