Changes between Version 5 and Version 6 of SoftwareDevelopment/ProjectGuidelines


Ignore:
Timestamp:
10/06/16 13:20:44 (8 years ago)
Author:
Twan Goosen
Comment:

Portability

Legend:

Unmodified
Added
Removed
Modified
  • SoftwareDevelopment/ProjectGuidelines

    v5 v6  
    44
    55== Documentation ==
    6 
    76* Make sure that a '''description of the requirements''' of the developed software is available. This will often be part of the project description, but this description may not always be sufficiently descriptive. Ideally, '''functional and technical design documents''' are prepared and made available.
    87* Provide a '''description of the architecture''' of the software, either in prose or by means of (a) UML diagram(s)
     
    1110* Bundle some basic documentation with your sources 'and' distribution packages. Include at least the following:
    1211 * `README` (brief project description, preferably with pointers to more detailed information)
     12  * If required, include build instructions (ideally these should be very short or even redundant)
    1313 * `INSTALL` (setup and configuration instructions)
    1414 * `LICENSE` (source code licencing information)
     
    3232
    3333== Portability ==
    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].
    3839
    3940= Resources =