Hi,
OK, just read the IRC meeting notes and the last posts/threads on the help discussions. Unfortunately the discussion is scattered and I try to catch up/summarize here even for people who are new to the topic. Excuse the length of this post in advance. If the pragma help is interesting to you only then jump to section "D": A. Pharo once lacked a "help system", so I wrote one. It was and still is more oriented towards "end user help" or "browsable manuals" with written text content in form of nestable books. I had no need for the next JavaDoc in Smalltalk with just an API reference - I wanted real help text which gives a big picture overview to people on various topics. The design of HelpSystem is simple and should be easy to understand, we have a HelpBrowser that displays (nestable) HelpTopics. To display something you have to convert it into such a help topic instance. Click on "Help" -> "HelpBrowser" in your Pharo image and have a look at the book "Help on Help" to get more details or try a few examples. B. I think you all agree that a "help system" without content is not very useful. Different people have different ideas and what could be used as "help contents" should be up to you. The HelpSystem itself is not and should not be bound to where and how (format, etc.) the content is stored. You can convert from any source and format into nested HelpTopics. To demonstrate this I once provided an example [1] to query and display the IRC archive. You will also find this example with IRC as one possible external source in the "Help on help" book. So the content could be defined in any format you like and the contents source could be internal or external to the image. You should declare the help contents the way you like. C. When you want to provide help to a user you may find it nice to include and manage the contents directly within the image. Nice - since you can deploy it with your app or unload if it is not needed. There are many solutions here - on squeak-dev it was discussed to use a specific class comment format or store the contents in methods returning an XML string, etc. I expected this discussion since I thought long enough about formats, storage and I didnt want to limit anyone. Therefore HelpSystem is open to any of these solutions - one can implement a custom help builder (see class HelpBuilder) that does the necessary conversion into help topic instances. One of the many possible solution is to use "pragma annotated" classes that hold the contents. Looks like this is getting more attention now again since pragmas are used in various places now (like the settings framework). And yes, I followed the pragma path already. But after initial experiments with pragmas I found it much more convenient to map a tutorial/the help book structure directly to the class hierarchy. This "class to book" mapping is more natural, one can use the usual class browsers and tools to manage the contents (including references, implementors, senders, ...) and you can easily have extensible books/tutorials (which is complicated with pragmas) If you want to follow this "class to book" approach then HelpSystem provides a class called "CustomHelp" that you can subclass and that has all the necessary support (even for editing and saving by using a workspace) - so you can easily implement your help books. Some projects use this already and there is even a Pharocast on how to to this. Through the class CustomHelp in the HelpSystem we have a commonality with SUnit - where you have TestCase as a superclass and implement hook methods. This class "CustomHelp" is the one "under fire" that leads to scathing criticism from Lukas. Maybe it is exactly this commonality with SUnit that makes some of you think HelpSystem forces you to subclass "CustomHelp" or forces you to have a dependency on the help system if you want to declare your help content. => But yet again: nobody has to use the provided "class to book" mapping or subclass "CustomHelp" if you want to define your help contents! Maybe I should not ship HelpSystem with this support class "CustomHelp" as the (currently sole) default but I wanted to at least provide a way to get you started. Still it is an utility class and also categorized as such. I for myself have no problem with this additional class since when subclassed I know that I have a dependency on it's package and I treat the help packages similar to test in SUnit (only loaded when HelpSystem is there, etc.) However the "CustomHelp" approach has pros and cons and you have to decide if it is the right for you: Maybe you like: - easy mapping of classes to books - easy browsing/managing in standard code tools - familarity with SUnit (common superclass) - no "copy/paste" methods as in Metacellos ConfigurationOfXXX Maybe you dislike: - the dependency on the superclass CustomHelp and - therefore the dependency on the help package Typical use case is that you display the help contents in the browser anyway and therefore this dependency may not hurt you. Looks like Lukas has a use-case where he requires his help contents only - but not the help system itself. Similar to a loaded test without any SUnit support in the image... D. As I already said I designed HelpSystem to stay independent from the way the contents is defined. So I'm definitely open to a pragma based solution too. In the long term I would like to see support for different "content definition styles" anyway. Lukas can store his blog posts/help texts the way he likes and without any dependency on HelpSystem. After the discussion in May we all agreed [2] that it is a good direction to check out the pragma/builder approach too and see how far we can go here. I provided an example how one can easily add this "pragma approach" to to the HelpSystem ([3] and [4] for the code) but I left out the builder part since I dont know what Lukas expects here. So no real feedback/adoption so far ... at least it would help if I get an example on how the contents should be defined in an annotated #buildHelpOn: method. However, the pragma approach has pros and cons: Maybe you like: - no dependency on a common superclass or package dependency on a class in HelpSystem - may therefore seem "cleaner" depending on POV Maybe you dislike: - even with pragmas one has an implicit dependency on the builders interface which also has to be stable very early - by using pragmas (loose coupling) you have to deal with the problem that your parent topic may not be there/not be loaded since it can be defined somewhere else in the class hierarchy. E. After the initial release people asked on how to integrate typical "Smalltalk documentation" to include browsable reference documentation (API doc) like class and method comments in the HelpSystem too. This was easy to add since again I just had to write a custom help builder that does the necessary conversion. If you load the "Pharo-Project-Help" you can browse the complete reference on anything that is already documented: Gofer new squeaksource: 'HelpSystem'; package: 'Pharo-Project-Help'; load. HelpBrowser open. In the help browser click on "Pharo" and "API Reference". This is more "reference documentation" and only a "poor" way to easily fill up the help system ;) I would like to see people writing more tutorials/manuals about parts of the system so one could get the big picture, but the idea of Stef [5] to get fully documented classes and methods is also nice. For the reference docu: Maybe you like: - no dependency on anything, just comment your classes and methods as you may know from any other smalltalk system Maybe you dislike: - you dont need the help system, you can look at it in the standard browser - its only a basic API documentation system (compared to JavaDoc and others) ----------------------------------------------------------------------------------------------------------------- And now some comments on IRC/posts I've seen: Lukas on IRC see [6]: >[3:14pm] renggli: HelpSystem is not useable for me and obviously not for anybody else (otherwise >it wouldn't be empty) Lukas, nobody forces you to follow the "define help contents via class to book mapping" approach. If you want a "define help content via pragmas" approach then help moving this issue forward or define your help contents the way you like and implement a custom help builder. For the other point: HelpSystem is not empty - look at an updated core 1.2 and it is already used in many external packages as Laurent already pointed out. [7] Lukas wrote on [8]: >> Couldn't you just add another loop to your script to "unload all help" just >> like unload all tests >Sure, but that means I have to package help text separately. This is >the contrary to what Java, Ruby, Python, Javascript, ... are doing; >keeping code and documention as close together as possible. No - you dont have to package documentation seperately. A class/method comment is still a class/method comment and its packaged with the code. There is no dependency on HelpSystem here - although the HelpBrowser can display it too. You still keep code and documentation close as in any other language. But if you write a "big picture" help manual or tutorial on how things interact it would be good to package it seperately. Either using CustomHelp, pragmas, or ... Lukas wrote on [8]: >I think, the fact that there is no single external package with help >system documentation proves this, no? There are quite a few. Maybe you should look more often on Squeaksource. Again I point to [7] Stef wrote on [9] >Now I was thinking that torsten would reply to this mail but in 1.3 will take a decision because I want a really better help >and documentation inside the right class and package. I still think that we should in minimum have the "code" - "tests" - "help" package triade, where the code package includes the class and method documentation as any Smalltalker is used to. The test package should include unit tests covering the code. And the help package should give a high level overview on how to use the code or tests. If the dependency from "help" packages to "help system" due to the class CustomHelp is a problem then we can easily convert them once we have a good "pragma based" approach in place. Removing packages or classes that are not documented is too hard ... but we should use Lint rules to check the "completeness/basic quality" of package. Similar to checkstyle for Java in Eclipse - if there are problems in a package then you have a different icon for the package and you work until it's clean because it hurts your eyes (see [10] for a screenshot) Hope I could at least bring some light into the whole discussion and I would really like the see if also the pragma approach would move forward. Bye Torsten [1] http://forum.world.st/Preview-Help-System-with-new-model-now-also-for-Squeak-td1695386.html [2] http://forum.world.st/Help-System-td2131748.html [3] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-May/026148.html [4] http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20100505/cc589ac2/attachment-0001.obj [5] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/036952.html [6] http://pastebin.com/Y7MFaddK [7] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037507.html [8] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037485.html [9] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037499.html [10] http://www.ibm.com/developerworks/java/library/j-ap01117/checkstyle-eclipse.jpg -- Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail |
On Mon, Dec 13, 2010 at 02:34:58AM +0100, Torsten Bergmann wrote:
> > If you want to follow this "class to book" approach then HelpSystem provides a class > called "CustomHelp" that you can subclass and that has all the necessary support > (even for editing and saving by using a workspace) - so you can easily implement your > help books. Some projects use this already and there is even a Pharocast on how to > to this. FWIW, I recently put the old Squeak Terse Guide into a subclass of CustomHelp. For me, I was just trying to find a way to make the Terse Guide easily available, and after messing around with loading it into a workspace, it suddenly (d'oh!) occurred to me that I could just load it as a help book, so that is what I did. The important thing for me is that I found class CustomHelp, and that is what I used. It worked fine, so now we have the Terse Guide in a help book. I don't know if this is the ultimate best help system to end all help systems, and I'm all in favor of a pragma based approach, but I have to say that any documentation system that actually gets used is better than even the most perfect documentation system that does not get used, so my hat is off to Torsten for providing a simple, accessible, and usable help system. Dave p.s. You can load the terse guide for Pharo from http://source.squeak.org/Trunk package Help-Squeak-TerseGuide |
In reply to this post by Torsten Bergmann
Thanks Torsten for this detailed view.
I think nothing stop for having the CustomHelp approach (for writing overviews) AND the pragmas approach (to extract documentation from code / tests). Indeed a complete help on a package will surely mix the two. Actually for the Help I write I have some Help books + PackageAPIHelpBuilder.
Another example is ProfStef: with last ConfigurationOfProfStef, all tutorials are automatically available in HelpSystem, thanks to HelpBuilder. You will also find in http://www.squeaksource.com/LaurentLSandbox.html the package API-Help wich build the help of all classes in Pharo (warning: slow, but has been helpful for me several times :) PS:I added the cool IRC example here: http://www.pharocasts.com/2010/09/document-with-helpsystem.html
Laurent
On Mon, Dec 13, 2010 at 2:34 AM, Torsten Bergmann <[hidden email]> wrote: Hi, |
In reply to this post by Torsten Bergmann
I will try to digest that long mail.
Now what I want is that people can type thisMethodForZork: aBuilder <help> aBuilder title: 'About Zork' text: 'here is the help for the Zork' "adapted to the API of Help" or thisMethodForZork <help> or <help:1> or <help: 'About Zork' :1> ^ 'here is the help for the Zork' and that if the help is loaded we can see it in help. Stef On Dec 13, 2010, at 2:34 AM, Torsten Bergmann wrote: > Hi, > > OK, just read the IRC meeting notes and the last posts/threads on the help discussions. > Unfortunately the discussion is scattered and I try to catch up/summarize here > even for people who are new to the topic. Excuse the length of this post in advance. > If the pragma help is interesting to you only then jump to section "D": > > > A. Pharo once lacked a "help system", so I wrote one. It was and still is more oriented > towards "end user help" or "browsable manuals" with written text content in form of > nestable books. I had no need for the next JavaDoc in Smalltalk with just an API reference > - I wanted real help text which gives a big picture overview to people on various topics. > > The design of HelpSystem is simple and should be easy to understand, we have a > HelpBrowser that displays (nestable) HelpTopics. To display something you have to > convert it into such a help topic instance. > > Click on "Help" -> "HelpBrowser" in your Pharo image and have a look at the book > "Help on Help" to get more details or try a few examples. > > > B. I think you all agree that a "help system" without content is not very useful. > Different people have different ideas and what could be used as "help contents" > should be up to you. > > The HelpSystem itself is not and should not be bound to where and how (format, etc.) > the content is stored. You can convert from any source and format into nested HelpTopics. > > To demonstrate this I once provided an example [1] to query and display the IRC archive. > You will also find this example with IRC as one possible external source in the "Help on help" > book. > > So the content could be defined in any format you like and the contents source could be > internal or external to the image. You should declare the help contents the way you like. > > C. When you want to provide help to a user you may find it nice to include and manage > the contents directly within the image. Nice - since you can deploy it with your app or > unload if it is not needed. > > There are many solutions here - on squeak-dev it was discussed to use a specific class > comment format or store the contents in methods returning an XML string, etc. > I expected this discussion since I thought long enough about formats, storage and I > didnt want to limit anyone. > > Therefore HelpSystem is open to any of these solutions - one can implement a custom > help builder (see class HelpBuilder) that does the necessary conversion into help topic > instances. > > One of the many possible solution is to use "pragma annotated" classes that hold the > contents. Looks like this is getting more attention now again since pragmas are used > in various places now (like the settings framework). > > And yes, I followed the pragma path already. But after initial experiments with pragmas > I found it much more convenient to map a tutorial/the help book structure directly to > the class hierarchy. > > This "class to book" mapping is more natural, one can use the usual class browsers and > tools to manage the contents (including references, implementors, senders, ...) > and you can easily have extensible books/tutorials (which is complicated with pragmas) > > If you want to follow this "class to book" approach then HelpSystem provides a class > called "CustomHelp" that you can subclass and that has all the necessary support > (even for editing and saving by using a workspace) - so you can easily implement your > help books. Some projects use this already and there is even a Pharocast on how to > to this. > > Through the class CustomHelp in the HelpSystem we have a commonality with SUnit - > where you have TestCase as a superclass and implement hook methods. > > This class "CustomHelp" is the one "under fire" that leads to scathing criticism from > Lukas. > > Maybe it is exactly this commonality with SUnit that makes some of you think HelpSystem > forces you to subclass "CustomHelp" or forces you to have a dependency on the help system > if you want to declare your help content. > > => But yet again: nobody has to use the provided "class to book" mapping or subclass > "CustomHelp" if you want to define your help contents! > > Maybe I should not ship HelpSystem with this support class "CustomHelp" as the (currently sole) > default but I wanted to at least provide a way to get you started. Still it is an utility class > and also categorized as such. > > I for myself have no problem with this additional class since when subclassed I know that > I have a dependency on it's package and I treat the help packages similar to test > in SUnit (only loaded when HelpSystem is there, etc.) > > However the "CustomHelp" approach has pros and cons and you have to decide if it is the > right for you: > > Maybe you like: - easy mapping of classes to books > - easy browsing/managing in standard code tools > - familarity with SUnit (common superclass) > - no "copy/paste" methods as in Metacellos ConfigurationOfXXX > > Maybe you dislike: - the dependency on the superclass CustomHelp and > - therefore the dependency on the help package > > Typical use case is that you display the help contents in the browser anyway and > therefore this dependency may not hurt you. > > Looks like Lukas has a use-case where he requires his help contents only - but > not the help system itself. Similar to a loaded test without any SUnit support in the image... > > D. As I already said I designed HelpSystem to stay independent from the way the contents is > defined. So I'm definitely open to a pragma based solution too. In the long term I would like to see > support for different "content definition styles" anyway. > > Lukas can store his blog posts/help texts the way he likes and without any dependency on HelpSystem. > > After the discussion in May we all agreed [2] that it is a good direction to check out the > pragma/builder approach too and see how far we can go here. I provided an example how one > can easily add this "pragma approach" to to the HelpSystem ([3] and [4] for the code) but I left > out the builder part since I dont know what Lukas expects here. > > So no real feedback/adoption so far ... at least it would help if I get an example > on how the contents should be defined in an annotated #buildHelpOn: method. > > However, the pragma approach has pros and cons: > > Maybe you like: - no dependency on a common superclass or package dependency on a class in HelpSystem > - may therefore seem "cleaner" depending on POV > > Maybe you dislike: - even with pragmas one has an implicit dependency on the builders interface > which also has to be stable very early > - by using pragmas (loose coupling) you have to deal with the problem that > your parent topic may not be there/not be loaded since it can be defined > somewhere else in the class hierarchy. > > E. After the initial release people asked on how to integrate typical "Smalltalk documentation" > to include browsable reference documentation (API doc) like class and method comments in the > HelpSystem too. This was easy to add since again I just had to write a custom help builder that does the > necessary conversion. > > If you load the "Pharo-Project-Help" you can browse the complete reference on anything that > is already documented: > > > Gofer new > squeaksource: 'HelpSystem'; > package: 'Pharo-Project-Help'; > load. > HelpBrowser open. > > In the help browser click on "Pharo" and "API Reference". This is more "reference documentation" and > only a "poor" way to easily fill up the help system ;) > > I would like to see people writing more tutorials/manuals about parts of the system so one could get the big > picture, but the idea of Stef [5] to get fully documented classes and methods is also nice. For the > reference docu: > > > Maybe you like: - no dependency on anything, just comment your classes and methods > as you may know from any other smalltalk system > > Maybe you dislike: - you dont need the help system, you can look at it in the standard browser > - its only a basic API documentation system (compared to JavaDoc and others) > > ----------------------------------------------------------------------------------------------------------------- > And now some comments on IRC/posts I've seen: > > Lukas on IRC see [6]: >> [3:14pm] renggli: HelpSystem is not useable for me and obviously not for anybody else (otherwise >> it wouldn't be empty) > > Lukas, nobody forces you to follow the "define help contents via class to book mapping" approach. > If you want a "define help content via pragmas" approach then help moving this issue forward or define > your help contents the way you like and implement a custom help builder. > > For the other point: HelpSystem is not empty - look at an updated core 1.2 and it is already > used in many external packages as Laurent already pointed out. [7] > > > Lukas wrote on [8]: >>> Couldn't you just add another loop to your script to "unload all help" just >>> like unload all tests >> Sure, but that means I have to package help text separately. This is >> the contrary to what Java, Ruby, Python, Javascript, ... are doing; >> keeping code and documention as close together as possible. > > No - you dont have to package documentation seperately. A class/method comment is still a > class/method comment and its packaged with the code. There is no dependency on HelpSystem > here - although the HelpBrowser can display it too. > > You still keep code and documentation close as in any other language. > > But if you write a "big picture" help manual or tutorial on how things interact it would > be good to package it seperately. Either using CustomHelp, pragmas, or ... > > > Lukas wrote on [8]: >> I think, the fact that there is no single external package with help >> system documentation proves this, no? > > There are quite a few. Maybe you should look more often on Squeaksource. Again I point to [7] > > > Stef wrote on [9] >> Now I was thinking that torsten would reply to this mail but in 1.3 will take a decision because I want a really better help >> and documentation inside the right class and package. > > I still think that we should in minimum have the "code" - "tests" - "help" package triade, where the code package > includes the class and method documentation as any Smalltalker is used to. The test package should include unit tests > covering the code. And the help package should give a high level overview on how to use the code or tests. > > If the dependency from "help" packages to "help system" due to the class CustomHelp is a problem then > we can easily convert them once we have a good "pragma based" approach in place. > > Removing packages or classes that are not documented is too hard ... but we should use Lint rules to check the > "completeness/basic quality" of package. > > Similar to checkstyle for Java in Eclipse - if there are problems in a package then you have a different icon for > the package and you work until it's clean because it hurts your eyes (see [10] for a screenshot) > > > Hope I could at least bring some light into the whole discussion and I would really like > the see if also the pragma approach would move forward. > > Bye > Torsten > > > [1] http://forum.world.st/Preview-Help-System-with-new-model-now-also-for-Squeak-td1695386.html > [2] http://forum.world.st/Help-System-td2131748.html > [3] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-May/026148.html > [4] http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20100505/cc589ac2/attachment-0001.obj > [5] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/036952.html > [6] http://pastebin.com/Y7MFaddK > [7] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037507.html > [8] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037485.html > [9] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037499.html > [10] http://www.ibm.com/developerworks/java/library/j-ap01117/checkstyle-eclipse.jpg > > > > -- > Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! > Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail > |
In reply to this post by Torsten Bergmann
lukas
can you give a try on that? > After the discussion in May we all agreed [2] that it is a good direction to check out the > pragma/builder approach too and see how far we can go here. I provided an example how one > can easily add this "pragma approach" to to the HelpSystem ([3] and [4] for the code) but I left > out the builder part since I dont know what Lukas expects here. > > So no real feedback/adoption so far ... at least it would help if I get an example > on how the contents should be defined in an annotated #buildHelpOn: method. Stef |
In reply to this post by Torsten Bergmann
Torsten
I would like to give a try to document Soup with pragma and builder. So I will start to write some documentation and after we will need to stabilize and interface for the builder. But I imagine that we need to be able to - create a topic - create a subtopic something like that. > After the discussion in May we all agreed [2] that it is a good direction to check out the > pragma/builder approach too and see how far we can go here. I provided an example how one > can easily add this "pragma approach" to to the HelpSystem ([3] and [4] for the code) but I left > out the builder part since I dont know what Lukas expects here. > > So no real feedback/adoption so far ... at least it would help if I get an example > on how the contents should be defined in an annotated #buildHelpOn: method. > > However, the pragma approach has pros and cons: > > Maybe you like: - no dependency on a common superclass or package dependency on a class in HelpSystem > - may therefore seem "cleaner" depending on POV > > Maybe you dislike: - even with pragmas one has an implicit dependency on the builders interface > which also has to be stable very early > - by using pragmas (loose coupling) you have to deal with the problem that > your parent topic may not be there/not be loaded since it can be defined > somewhere else in the class hierarchy. > > E. After the initial release people asked on how to integrate typical "Smalltalk documentation" > to include browsable reference documentation (API doc) like class and method comments in the > HelpSystem too. This was easy to add since again I just had to write a custom help builder that does the > necessary conversion. > > If you load the "Pharo-Project-Help" you can browse the complete reference on anything that > is already documented: > > > Gofer new > squeaksource: 'HelpSystem'; > package: 'Pharo-Project-Help'; > load. > HelpBrowser open. > > In the help browser click on "Pharo" and "API Reference". This is more "reference documentation" and > only a "poor" way to easily fill up the help system ;) > > I would like to see people writing more tutorials/manuals about parts of the system so one could get the big > picture, but the idea of Stef [5] to get fully documented classes and methods is also nice. For the > reference docu: > > > Maybe you like: - no dependency on anything, just comment your classes and methods > as you may know from any other smalltalk system > > Maybe you dislike: - you dont need the help system, you can look at it in the standard browser > - its only a basic API documentation system (compared to JavaDoc and others) > > ----------------------------------------------------------------------------------------------------------------- > And now some comments on IRC/posts I've seen: > > Lukas on IRC see [6]: >> [3:14pm] renggli: HelpSystem is not useable for me and obviously not for anybody else (otherwise >> it wouldn't be empty) > > Lukas, nobody forces you to follow the "define help contents via class to book mapping" approach. > If you want a "define help content via pragmas" approach then help moving this issue forward or define > your help contents the way you like and implement a custom help builder. > > For the other point: HelpSystem is not empty - look at an updated core 1.2 and it is already > used in many external packages as Laurent already pointed out. [7] > > > Lukas wrote on [8]: >>> Couldn't you just add another loop to your script to "unload all help" just >>> like unload all tests >> Sure, but that means I have to package help text separately. This is >> the contrary to what Java, Ruby, Python, Javascript, ... are doing; >> keeping code and documention as close together as possible. > > No - you dont have to package documentation seperately. A class/method comment is still a > class/method comment and its packaged with the code. There is no dependency on HelpSystem > here - although the HelpBrowser can display it too. > > You still keep code and documentation close as in any other language. > > But if you write a "big picture" help manual or tutorial on how things interact it would > be good to package it seperately. Either using CustomHelp, pragmas, or ... > > > Lukas wrote on [8]: >> I think, the fact that there is no single external package with help >> system documentation proves this, no? > > There are quite a few. Maybe you should look more often on Squeaksource. Again I point to [7] > > > Stef wrote on [9] >> Now I was thinking that torsten would reply to this mail but in 1.3 will take a decision because I want a really better help >> and documentation inside the right class and package. > > I still think that we should in minimum have the "code" - "tests" - "help" package triade, where the code package > includes the class and method documentation as any Smalltalker is used to. The test package should include unit tests > covering the code. And the help package should give a high level overview on how to use the code or tests. > > If the dependency from "help" packages to "help system" due to the class CustomHelp is a problem then > we can easily convert them once we have a good "pragma based" approach in place. > > Removing packages or classes that are not documented is too hard ... but we should use Lint rules to check the > "completeness/basic quality" of package. > > Similar to checkstyle for Java in Eclipse - if there are problems in a package then you have a different icon for > the package and you work until it's clean because it hurts your eyes (see [10] for a screenshot) > > > Hope I could at least bring some light into the whole discussion and I would really like > the see if also the pragma approach would move forward. > > Bye > Torsten > > > [1] http://forum.world.st/Preview-Help-System-with-new-model-now-also-for-Squeak-td1695386.html > [2] http://forum.world.st/Help-System-td2131748.html > [3] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-May/026148.html > [4] http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20100505/cc589ac2/attachment-0001.obj > [5] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/036952.html > [6] http://pastebin.com/Y7MFaddK > [7] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037507.html > [8] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037485.html > [9] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-December/037499.html > [10] http://www.ibm.com/developerworks/java/library/j-ap01117/checkstyle-eclipse.jpg > > > > -- > Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! > Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail > |
In reply to this post by Torsten Bergmann
Hi Torsten
I have a simple question: I'm adding help to soup (which works in 1.1) and I would like to add the help in 1.2 but that I can load the same configuration in 1.1 and 1.2 so I could use <systemHelp> and if the help is not in 1.1 is not there then no help, no problem and if the help is in 1.2 then we get the help Now how <systemHelp> tagged methods work. With settings I can see the api but with Help I do not get it. Of course I could use CustomHelp but I would have to change my config for 1.1 and .... boring Stef |
Free forum by Nabble | Edit this page |