Jump to content

Package development process

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by DavidMCEddy (talk | contribs) at 23:34, 8 September 2010 (add a reference ~~~~). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Software Package development process is a system for developing software packages. Packages make it easier to reuse and share code, e.g., via a software repository. A formal system for package checking can help expose bugs, thereby potentially making it easier to produce trustworty software (Chambers' prime directive). [1] This in turn can help improve productivity for people who produce and use software.

Discussion

In this context, a package is a collection of functions written for use in a single language such as Python or R, bundled with documentation. For many programming languages, there are software repositories where people share such packages.

For example, a Python package combines documentation, code and initial set up and possibly examples that could be used as unit tests in a single file with a "py" extension.

By contrast, an R package has documentation with examples in files separate from the code, possibly bundled with other material such as sample data sets and introductory vignettes. The source code for an R package is contained in a directory with a "DESCRIPTION" file and subdirectories "man" containing documentation files, "R", with files of code, and perhaps others. [2] A formal package compilation process [3] [4] checks for errors of various types. Examples included in the documentation files are tested and produce error messages if they fail. This can be used as a primitive form of unit testing; more formal unit tests and regression testing can be included in a "tests" subdirectory. This can improve software development productivity by making it easier to find bugs as the code is being developed. In addition, the documentation makes it easier to share code with others. It also makes it easier for a developer to use code written months or even years earlier.

An interesting research question would be to compare the quality of contributions to different [software repository|software repositories] and try to relate that to features of the package development process, i.e., the degree of formality and enforcement of standards for documentation, code, and testing.

See also

References

  1. ^ Chambers, John M. (2008). Software for Data Analysis: Programming with R. Springer. ISBN 0387759352.
  2. ^ Writing R Extensions. {{cite book}}: Cite has empty unknown parameter: |1= (help)
  3. ^ Template:Cite article
  4. ^ Graves, Spencer B.; Dorai-Raj, Sundar. Creating R Packages, Using CRAN, R-Forge, And Local R Archive Networks And Subversion (SVN) Repositories (PDF). {{cite conference}}: Cite has empty unknown parameter: |1= (help)