Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-11337

Make example code in user guide testable

    Details

    • Type: Umbrella
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.0
    • Component/s: Documentation
    • Labels:
      None

      Description

      The example code in the user guide is embedded in the markdown and hence it is not easy to test. It would be nice to automatically test them. This JIRA is to discuss options to automate example code testing and see what we can do in Spark 1.6.

      One option I propose is to move actual example code to spark/examples and test compilation in Jenkins builds. Then in the markdown, we can reference part of the code to show in the user guide. This requires adding a Jekyll tag that is similar to https://github.com/jekyll/jekyll/blob/master/lib/jekyll/tags/include.rb, e.g., called include_example.

      {% include_example scala/org/apache/spark/examples/ml/KMeansExample.scala %}
      

      Jekyll will find `examples/src/main/scala/org/apache/spark/examples/ml/KMeansExample.scala` and pick code blocks marked "example" and put them under `

      {% highlight %}

      ` in the markdown. We can discuss the syntax for marker comments.

      Sub-tasks are created to move example code from user guide to `examples/`.

      self-check list for contributors in this JIRA

      • Be sure to match Scala/Java/Python code style guide. If unsure of a code style, please refer to other merged example code under examples/.
      • Remove useless imports
      • It's better to have a side-effect operation at the end of each example code, usually it's a
        print(...)
      • Make sure the code example is runnable without error.
      • After finishing code migration, use
        cd docs; SKIP_API=1 jekyll serve

        the check the webpage at http://127.0.0.1:4000 to see whether the generated html looks good.

        Attachments

          Issue Links

          There are no Sub-Tasks for this issue.

            Activity

              People

              • Assignee:
                yinxusen Xusen Yin
                Reporter:
                mengxr Xiangrui Meng
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: