@inproceedings{4ed4eebd1bc64fd4bcdf0ab1a086b433,
title = "Semantic Versioning for Python Programs",
abstract = "We propose a language-based approach to software versioning. Unlike the traditional approach of mainstream version control systems, where each evolution step is represented by a textual diff, we treat versions as programming elements. Each evolution step, merge operation, and version relationship, is represented explicitly in the program. This provides compile time guarantees for safety code reuse from previous versions, as well as forward and backwards compatibility between versions, allowing clients to use newly introduced code without needing to refactor their program. By lifting the versioning to the language level, we pave the way for tools that interact with software repositories to have more insight regarding the evolution of the software semantics.",
keywords = "Software evolution, type theory",
author = "Lu{\'i}s Carvalho",
note = "Publisher Copyright: {\textcopyright} 2023 Owner/Author.; 38th ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH 2023 ; Conference date: 22-10-2023 Through 27-10-2023",
year = "2023",
month = oct,
day = "22",
doi = "10.1145/3618305.3623589",
language = "English",
isbn = "979-8-4007-0384-3",
series = "SPLASH: Systems, Programming, and Applications",
publisher = "ACM - Association for Computing Machinery",
pages = "13--15",
editor = "Vasconcelos, {Vasco Thudichum}",
booktitle = "SPLASH 2023",
address = "United States",
}