Version 4, last updated by dpp at 20 Jan 00:18 UTC

Sometimes when you post a question or a suspected defect to the Lift mailing list, someone may ask you to put together an example of the problem.

In this case, an example means a fully running application that everyone can use to see/test the problem.

The best way to create an example of the problem is:

  • Create a new Lift project
  • Write just enough code to demonstrate the issue you’re posting about
  • Make sure that the application runs via either Maven or Simple Build Tool (sbt). If you’re using a version of sbt other than 0.7.x, please include the sbt binaries in the project and make sure you include the exact command line that one needs to type to execute the app)
  • Make sure that the application has no dependencies on your database or other systems (it has to run stand-alone)
  • Make a detailed description of both the command line steps to follow to run the example and the sequence in the browser, what you expect to see and what you actually see.
  • Create public GitHub 1 project and put your runnable code in the GitHub project
  • Make sure to add a .gitignore 2 file so pulling from your project does not take a long time. (sbt 0.7.x sample )
  • Post the link to your newly created GitHub project on the Lift mailing list

Okay, so why all the work on your part? Well, in the case of non-trivial issues, someone has to take the time to put together a running example of the problem, and it might as well be you as you’re asking for other peoples’ time to address the issue. It also has to run using a build tool that is likely to be installed on a Lift committer’s machine (no, not all of us have Ruby or Python installed).

We look forward to helping you address your issues.

Thanks!

1 David Whittaker explained, why to use a versioning repository popular in the Lift community: “While grabbing your source from DropBox was not a big deal, it’s nice to be able to fork the repo and then push my fixes back so you can see exactly what I did to get it to compile.” See discussion Lift%2C Squeryl and relationships.

2 .gitignore :

lib_managed
project/boot
project/build/target
target