Semantic Versioning for Python Programs

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

15 Downloads (Pure)

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.
Original languageEnglish
Title of host publicationSPLASH 2023
Subtitle of host publicationCompanion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity
EditorsVasco Thudichum Vasconcelos
Place of PublicationNew York
PublisherACM - Association for Computing Machinery
Pages13-15
Number of pages3
ISBN (Print)979-8-4007-0384-3
DOIs
Publication statusPublished - 22 Oct 2023
Event38th ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH 2023 - Cascais, Portugal
Duration: 22 Oct 202327 Oct 2023

Publication series

NameSPLASH: Systems, Programming, and Applications
PublisherACM - Association for Computing Machinery

Conference

Conference38th ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH 2023
Country/TerritoryPortugal
CityCascais
Period22/10/2327/10/23

Keywords

  • Software evolution
  • type theory

Fingerprint

Dive into the research topics of 'Semantic Versioning for Python Programs'. Together they form a unique fingerprint.

Cite this