Software Repository - Selected Repositories

Selected Repositories

The following table lists a few languages with repositories for contributed software. The "Autochecks" column describes the routine checks done.

Very few people have the ability to test their software under multiple operating-systems with different versions of the core code and with other contributed packages they may use. For R, the Comprehensive R Archive Network (CRAN) runs tests routinely. To see how this is valuable, suppose Sally contributes a package A. Sally only runs the current version of the software under one version of Microsoft Windows, and has only tested it in that environment. At more or less regular intervals, CRAN tests Sally's contribution under a dozen combinations of operating systems and versions of the core R language software. If one of them generates an error, she gets that error message. With luck, that error message may suffice to allow her to fix the error, even if she cannot replicate it with the hardware and software she has. Next, suppose John contributes to the repository a package B that uses a package A. Package B passes all the tests and is made available to users. Later, Sally submits an improved version of A, which unfortunately, breaks B. The autochecks make it possible to provide information to John so he can fix the problem.

This example exposes both a strength and a weakness in the R contributed-package system: CRAN supports this kind of automated testing of contributed packages, but packages contributed to CRAN need not specify the versions of other contributed packages that they use. Procedures for requesting specific versions of packages exist, but contributors might not use those procedures.

Beyond this, a repository such as CRAN running regular checks of contributed packages actually provides an extensive if ad hoc test suite for development versions of the core language. If Sally (in the example above) gets an error message she does not understand or thinks is inappropriate, especially from a development version of the language, she can (and often does with R) ask the core development-team for the language for help. In this way, the repository can contribute to improving the quality of the core language software.

Language / purpose Package Development Process Repository How to install Collaborative development platform Autochecks
C++ Boost
Haskell Common Architecture for Building Applications and Libraries (CABAL) Hackage
Java Maven
Node.js NPM
Perl CPAN
PHP PEAR PECL
Python PyPI Python Package Manager
R R CMD check process CRAN install.packages R-Forge Roughly weekly on 12 platforms or combinations of different version of R (devel, prerel, patched, release) with up to 7 different operating systems (different versions of Linux, Windows, and Mac).
Bioconductor BiocLite.R
Ruby RubyGems Ruby Application Archive RubyForge
TeX, LaTeX CTAN

(Parts of this table were copied from .)

Read more about this topic:  Software Repository

Famous quotes containing the words selected and/or repositories:

    There is no reason why parents who work hard at a job to support a family, who nurture children during the hours at home, and who have searched for and selected the best [daycare] arrangement possible for their children need to feel anxious and guilty. It almost seems as if our culture wants parents to experience these negative feelings.
    Gwen Morgan (20th century)

    There is a relation between the hours of our life and the centuries of time. As the air I breathe is drawn from the great repositories of nature, as the light on my book is yielded by a star a hundred millions of miles distant, as the poise of my body depends on the equilibrium of centrifugal and centripetal forces, so the hours should be instructed by the ages and the ages explained by the hours.
    Ralph Waldo Emerson (1803–1882)