View Issue Details

IDProjectCategoryView StatusLast Update
0002941Slicer4Core: Documentation and Wikipublic2013-08-27 11:37
Reporterjcfr Assigned Tojcfr  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002941: Walk-thru documentation that clearly shows new developers step-by-step instructions to create and publish extensions
Description

From Arie:

Hi Jc,

You have asked suggestions to improve the page… well, I think the best suggestion is to write another page. For Windows user like me (not a programmer) that don’t know nothing about Linux, svn, git, servers, and using forks for food only, this tutorial is totally useless. I need step by step instruction, which button to press, and what link to follow. This wiki is so overwhelmed with options that too much info = zero info.
There is no order that everybody should follow, and there are too many hyperlinks with contradicting instructions. Most important, when you do what seems to be the right thing to do (based on what is written), it is unclear if you do the right thing, because you don’t know what to expect.
Okay, let’s be more specific:
1) I have Slicer compiled from the source code

2) I have my module SobolevSegmenter which I’ve created using ModuleWizard for CLI, and updated the xml and cxx files accordingly to my algorithm.

3) I’ve compiled the module outside the Slicer tree, and to my surprise now I have fully working (in Slicer) module on my local machine.

4) From now on everything is unclear. I’m sitting already for two weeks reading all kind of irrelevant and misleading information. Most of this information leads to the following page: https://github.com/Slicer/ExtensionsIndex#extensions-server [^] … (“Build, test, package and distribute extensions” on the page that you’ve sent me). I’m really sorry, but this page cannot be understood by mere mortals.

a. 1.Extension belongs to Category 1 or Category 2 as described in Slicer requirements … the link is dead, but I’ve found another link instead: http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Extensions/CatalogPolicies [^] . Is that a statement? If this is a statement, it should not appear in the step-by-step instructions. Should I decide in which category I want to put my extension? Where should I update this decision (if I need to)?

b. 2.Set up an account on the extension server and obtain an API key This one is fine, now I have an account and able to create API keys, though I don’t know what are they, and why I need them.

c. 3.Extension has been built and tested on the following platform: Linux, MacOSX and Windows. You could for example do anExperimentalUpload and make sure the extension can be installed successfully. See manual build Again, this seems to be a statement, and thus it is unclear, it sounds like I have to test it on different OS’s before I send it to you. Next it says: “You could for example do an ExperimentalUpload…” How? Do I really need that to proceed? Why “for example”, are there other options? Okay, let’s suppose that I need that, and I hope to find what is ExperimentalUpload inside the manual build link (let’s go there):

                                                           i. Well, after some theory on CMake options (my knowledge on CMake is limited to choosing source and destination directories in the GUI, and pressing Configure), it says: “The following examples are specific to unix-like platforms and can easily be adapted for windows”, which I translate to English as “between super-hard to impossible in Windows”. From there it goes really fast to some Slicer trunk directories and uploaded to server files…but STOP, I haven’t uploaded nothing yet, I don’t have any SlicerExtensionCustomIndex files, what are you talking about? I’ve tried to copy automatically created s4ext file from my locally built directory to some other directory, and followed the instructions in the examples, and of course I’ve got errors in compilation, because this s4ext file knows nothing about my extension, and I don’t see where my cxx file appear in all these examples. What should I do?

                                                         ii. CDash stuff is even more horrifying, so I’ll leave it for now.

d. 4.Fork ExtensionIndex, I guess, I have to push “Fork” button on the current page, right? Now I have my own spoon, though I don’t understand what for. Basically, I see the same page, but it says: anry123/ExtensionsIndex at the top of the page (anry123 is my user name).

e. 5.Clone your fork, then create a topic named add-<ExtensionName>. That one worked, and created a long list of s4ext files in my local directory(chosen randomly)

f. 6. Commit your description file. Commit title should be Add <ExtensionName> extension and the content should provide details about the extension. What is “commit”? How to do that? Where do I put the title and content? Which button to press and where?

g. 7.Push the topic to your fork, then click on "Pull Request" button displayed on your github fork. Slicer folks will be automatically notified. Again, what is “push” and how to do it?

h. 8.That's it ! This one I understand perfectly well J This “wonderful” page ends with the links on how to install my own servers…I hope that I don’t need that.

I’ve looked really hard, in all tutorials, and still haven’t found at which stage, where, how, and what should I upload? I have only 2 files that I’ve edited: cxx, and xml, everything else was created automatically by your soft and MS Visual Studio. This is truly pity that I have to go through such a hell only to submit these 2 files.

Best,
Arie

Tagshelp-wanted

Activities

jcfr

jcfr

2013-02-13 13:45

administrator   ~0007926

From Sunil:

If may…perhaps the module wizard link could be the first link under the line, “To publish extensions, developers should consider reading the following pages” in the extensions doc? I think it’ll achieve two things that way: one, it establishes the requirement of creating a skeleton; two, it provides a segue into the “Bundle module(s) into a Slicer extension” portion.

jcfr

jcfr

2013-02-14 09:53

administrator   ~0007930

Hi Sunil,

Thanks again for proposing your help in improving the documentation :) This is greatly appreciated.

Here are the steps I envision:

1) Create an account on the wiki: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/StartHere#New_community_member_checklist

2) Update wiki to include information that are currently available on the github README files.

3) Update README file to point back to the wiki. This will allow people having bookmarked the existing documentation to know what is going one.

Let's make sure to comment on this issue so that we can discuss/review the progress.

Thanks,
Jc

user349

2013-02-14 10:14

  ~0007931

Modifications+additions to steps outlined in the page: https://github.com/Slicer/ExtensionsIndex#contributing

Suggestions -- demarcated by '#' -- for the following steps:

  1. Commit your description file. Commit title should be Add <ExtensionName> extension and the content should provide details about the extension.

    Have a code example here like in Step 5.

  2. Push the topic to your fork

    Other half of the step to step 8.

    Have a code example as well.

  3. Then click on "Pull Request" button displayed on your github fork. Slicer folks will be automatically notified.

    This is the second half of step 7.

    Screenshots are critical here, especially if we have to pull from the "Add-<ExtentionName>" branch.

jcfr

jcfr

2013-06-13 20:29

administrator   ~0008764

Documentation has been updated.

Let me know what you think.

See:

http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers

http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/StartHere

http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Tutorials/BuildTestPackageDistributeExtensions

https://github.com/Slicer/ExtensionsIndex#readme

jcfr

jcfr

2013-07-30 12:51

administrator   ~0009287

The documentation has been updated before summer project week. See http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Tutorials/BuildTestPackageDistributeExtensions

Issue History

Date Modified Username Field Change
2013-02-12 06:43 jcfr New Issue
2013-02-12 06:43 jcfr Status new => assigned
2013-02-12 06:43 jcfr Assigned To => jcfr
2013-02-12 06:43 jcfr Target Version => Slicer 4.3.0
2013-02-12 06:56 jcfr Description Updated
2013-02-13 13:45 jcfr Note Added: 0007926
2013-02-14 09:48 jcfr Tag Attached: I-want-to-contribute
2013-02-14 09:53 jcfr Note Added: 0007930
2013-02-14 10:14 user349 Note Added: 0007931
2013-06-13 20:29 jcfr Note Added: 0008764
2013-06-13 20:29 jcfr Status assigned => feedback
2013-07-30 12:51 jcfr Note Added: 0009287
2013-07-30 12:51 jcfr Status feedback => resolved
2013-07-30 12:51 jcfr Fixed in Version => Slicer 4.3.0
2013-07-30 12:51 jcfr Resolution open => fixed
2013-08-27 11:37 jcfr Status resolved => closed
2014-05-12 23:20 jcfr Tag Renamed I-want-to-contribute => help-wanted
2016-06-20 14:15 jcfr Category Core: Documentation & Wiki => Core: Documentation and Wiki