License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.ICLP.2017.6
URN: urn:nbn:de:0030-drops-84568
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2018/8456/
Hanus, Michael
Semantic Versioning Checking in a Declarative Package Manager
Abstract
Semantic versioning is a principle to associate version numbers to
different software releases in a meaningful manner. The correct use
of version numbers is important in software package systems where
packages depend on other packages with specific releases. When
patch or minor version numbers are incremented, the API is unchanged
or extended, respectively, but the semantics of the operations
should not be affected (apart from bug fixes). Although many
software package management systems assumes this principle, they do
not check it or perform only simple syntactic signature checks. In
this paper we show that more substantive and fully automatic checks
are possible for declarative languages. We extend a package manager
for the functional logic language Curry with features to check the
semantic equivalence of two different versions of a software
package. For this purpose, we combine CurryCheck, a tool for
automated property testing, with program analysis techniques in
order to ensure the termination of the checker even in case of
possibly non-terminating operations defined in some package. As a
result, we obtain a software package manager which checks semantic
versioning and, thus, supports a reliable and also
specification-based development of software packages.
BibTeX - Entry
@InProceedings{hanus:OASIcs:2018:8456,
author = {Michael Hanus},
title = {{Semantic Versioning Checking in a Declarative Package Manager}},
booktitle = {Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)},
pages = {6:1--6:16},
series = {OpenAccess Series in Informatics (OASIcs)},
ISBN = {978-3-95977-058-3},
ISSN = {2190-6807},
year = {2018},
volume = {58},
editor = {Ricardo Rocha and Tran Cao Son and Christopher Mears and Neda Saeedloei},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2018/8456},
URN = {urn:nbn:de:0030-drops-84568},
doi = {10.4230/OASIcs.ICLP.2017.6},
annote = {Keywords: functional logic programming, semantic versioning, program testing}
}
Keywords: |
|
functional logic programming, semantic versioning, program testing |
Collection: |
|
Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017) |
Issue Date: |
|
2018 |
Date of publication: |
|
14.02.2018 |