Definitely #1.  They serve two completely separate purposes.

I'm glad to see this, as incorrect examples in documentation is a pet
peeve of mine.  :)

-Dennis


On 05/03/2017 09:14 AM, Jiri Holusa wrote:
> Moving this to infinispan-dev.
> 
> I've just issued a PR [1], where I setup the code snippets generation. It was 
> actually pretty easy. I started implementing it for the configuration part of 
> the documentation and I came across following findings/issues.
> 
> There were more votes for option 2 (see the previous mail for detail, in 
> summary using existing testsuite), hence I started with that. Pretty shortly 
> I see following issues:
> * XML configuration - since we want to have the <infinispan> element there in 
> the configuration, I have to do one XML file per one configuration code 
> snippet -> the number of files will grow and will mess up the "normal" 
> testsuite
> * IMHO biggest problem - our testsuite is usually not written in 
> "documentation simplicity". For example, in testsuite we barely (= never) do 
> "EmbeddedCacheManager cacheManager = new DefaultCacheManager("...");", we 
> obtain the cache manager by some helper method. While this is great for 
> testing, you don't want to have this in documentation as it should be simple 
> and straightforward. Another example would be [2]. Look at the programmatic 
> configuration snippets. In the testsuite, we usually don't have that trivial 
> setup, not so comprehensively written somewhere.
> * When you want to introduce a new code snippet, how can you be sure that the 
> snippet is not somewhere in the testsuite already, but written a bit 
> differently? I encountered this right from the beginning, search the test 
> classes and looking for "good enough" code snippet that I could use.
> 
> Together it seems to me that it will mess up the testsuite quite a bit, make 
> the maintenance of documentation harder and will significantly prolong the 
> time needed for writing new documentation. What do you think? How about we 
> went the same way as Hibernate (option 1 in first email) - creating separate 
> documentation testsuite that is as simple as possible, descriptive and 
> straightforward. 
> 
> I don't really care, which option we choose, I will implement it either way, 
> but I wanted to show that there are some pitfalls of the option 2 as well :(
> 
> Cheers,
> Jiri
> 
> [1] https://github.com/infinispan/infinispan/pull/5115
> [2] 
> http://infinispan.org/docs/stable/user_guide/user_guide.html#configuring_caches_programmatically
> 
> 
> 
> ----- Forwarded Message -----
>> From: "Jiri Holusa" <jhol...@redhat.com>
>> To: "infinispan-internal" <infinispan-inter...@redhat.com>
>> Sent: Friday, April 7, 2017 6:33:53 PM
>> Subject: [infinispan-internal] Documentation code snippets
>>
>> Hi everybody,
>>
>> during the documentation review for JDG 7.1 GA, I came across this little
>> thing.
>>
>> Having a good documentation is IMHO crucial for people to like our technology
>> and the key point is having code snippets in the documentation up to date
>> and working. During review of my parts, I found out many and many outdated
>> code snippets, either non-compilable or using deprecated methods. I would
>> like to eliminate this issue in the future, so it would make our
>> documentation better and also remove burden when doing documentation review.
>>
>> I did some research and I found out that Hibernate team (thanks Radim, Sanne
>> for the information) does a very cool thing and that is that the code
>> snippets are taken right from testsuite. This way they know that the code
>> snippet can always compile and also make sure that it's working properly. I
>> would definitely love to see the same in Infinispan.
>>
>> It works extremely simply that you mark by comment in the test the part, you
>> want to include in the documentation, see an example here for the AsciiDoc
>> part [1] and here for the test part [2]. There are two ways of how to
>> organize that:
>> 1) create a separate "documentation testsuite", with as simple as possible
>> test classes - Hibernate team does it this way. Pros: documentation is
>> easily separated. Cons: possible duplication.
>> 2) use existing testsuite, marking the parts in the existing testsuite. Pros:
>> no duplication. Cons: documentation snippets are spread all across the
>> testsuite.
>>
>> I would definitely volunteer to make this happen in Infinispan
>> documentation.
>>
>> What do you guys think about it?
>>
>> Cheers,
>> Jiri
>>
>> [1]
>> https://raw.githubusercontent.com/hibernate/hibernate-validator/master/documentation/src/main/asciidoc/ch03.asciidoc
>> [2]
>> https://github.com/hibernate/hibernate-orm/blob/master/documentation/src/test/java/org/hibernate/userguide/caching/FirstLevelCacheTest.java
>>
>>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to