34 | | - Maven |
35 | | - Continous integration |
36 | | - Docker |
37 | | - VCS (!GitHub) |
| 34 | * Use a 'modern' '''build automation tool''' and provide a build descriptor that does not rely on a highly specific context, i.e. make sure that your software can be built 'out of the box' if feasible, or provide instructions to prepare the environment for building the tool otherwise. [http://maven.apache.org/ Apache Maven] is used most commonly (for Java) within CLARIN. Other options are [https://en.wikipedia.org/wiki/Gradle Gradle] |
| 35 | * Make sure that all '''dependencies''' are available, either via public repositories or via additional repositories defined in your build descriptor. |
| 36 | * Test your build regularly, ideally on a daily basis or with every commit/push, i.e. attempt to implement '''continuous integration'''. Generally applicable tools that can be used for this are, among others, [https://travis-ci.org Travis] and [https://jenkins.io/ Jenkins]. |
| 37 | * Consider distributing your application as a [https://docker.com/ Docker] image. The Docker website has [https://docs.docker.com/engine/getstarted/step_four/ instructions and more information]. |
| 38 | * Make '''all sources available''' that are needed to build your software. Use the [https://trac.clarin.eu CLARIN SVN] or !GitHub (you can join [https://github.com/clarin-eric CLARIN's organisation]. |