Publicação

A Language-Based Version Control System for Python

Ver documento

Detalhes bibliográficos
Resumo:We extend prior work on a language-based approach to versioned software development to support versioned programs with mutable state and evolving method interfaces. Unlike the traditional approach of mainstream version control systems, where a textual diff represents each evolution step, we treat versions as programming elements. Each evolution step, merge operation, and version relationship is represented explicitly in a multifaceted code representation. This provides static guarantees for safe code reuse from previous versions and forward and backwards compatibility between versions, allowing clients to use newly introduced code without needing to refactor their program manually. By lifting versioning to the language level, we pave the way for tools that interact with software repositories to have more insight into a system’s behavior evolution. We instantiate our work in the Python programming language and demonstrate its applicability regarding common evolution and refactoring patterns found in different versions of popular Python packages.
Autores principais:Carvalho, Luís
Outros Autores:Seco, João Costa
Assunto:Software evolution type theory Software
Ano:2024
País:Portugal
Tipo de documento:documento de conferência
Tipo de acesso:acesso aberto
Instituição associada:Universidade Nova de Lisboa
Idioma:inglês
Origem:Repositório Institucional da UNL
_version_ 1868984191395299329
author Carvalho, Luís
author2 Seco, João Costa
author2_role author
author_facet Carvalho, Luís
Seco, João Costa
author_role author
contributor_name_str_mv Faculdade de Ciências e Tecnologia (FCT)
NOVALincs
DI - Departamento de Informática
RUN
country_str PT
creators_json_txt [{\"Person.name\":\"Carvalho, Luís\"},{\"Person.name\":\"Seco, João Costa\"}]
datacite.contributors.contributor.contributorName.fl_str_mv Faculdade de Ciências e Tecnologia (FCT)
NOVALincs
DI - Departamento de Informática
RUN
datacite.creators.creator.creatorName.fl_str_mv Carvalho, Luís
Seco, João Costa
datacite.date.Accepted.fl_str_mv 2024-09-01T00:00:00Z
datacite.date.available.fl_str_mv 2025-03-06T22:58:28Z
datacite.date.embargoed.fl_str_mv 2025-03-06T22:58:28Z
datacite.rights.fl_str_mv http://purl.org/coar/access_right/c_abf2
datacite.subjects.subject.fl_str_mv Software evolution
type theory
Software
datacite.titles.title.fl_str_mv A Language-Based Version Control System for Python
dc.contributor.none.fl_str_mv Faculdade de Ciências e Tecnologia (FCT)
NOVALincs
DI - Departamento de Informática
RUN
dc.creator.none.fl_str_mv Carvalho, Luís
Seco, João Costa
dc.date.Accepted.fl_str_mv 2024-09-01T00:00:00Z
dc.date.available.fl_str_mv 2025-03-06T22:58:28Z
dc.date.embargoed.fl_str_mv 2025-03-06T22:58:28Z
dc.format.none.fl_str_mv application/pdf
dc.identifier.none.fl_str_mv http://hdl.handle.net/10362/180231
dc.language.none.fl_str_mv eng
dc.publisher.none.fl_str_mv Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
dc.rights.none.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.subject.none.fl_str_mv Software evolution
type theory
Software
dc.title.fl_str_mv A Language-Based Version Control System for Python
dc.type.none.fl_str_mv http://purl.org/coar/resource_type/c_c94f
description We extend prior work on a language-based approach to versioned software development to support versioned programs with mutable state and evolving method interfaces. Unlike the traditional approach of mainstream version control systems, where a textual diff represents each evolution step, we treat versions as programming elements. Each evolution step, merge operation, and version relationship is represented explicitly in a multifaceted code representation. This provides static guarantees for safe code reuse from previous versions and forward and backwards compatibility between versions, allowing clients to use newly introduced code without needing to refactor their program manually. By lifting versioning to the language level, we pave the way for tools that interact with software repositories to have more insight into a system’s behavior evolution. We instantiate our work in the Python programming language and demonstrate its applicability regarding common evolution and refactoring patterns found in different versions of popular Python packages.
dirty 0
eu_rights_str_mv openAccess
format conferenceObject
fulltext.url.fl_str_mv https://run.unl.pt/bitstreams/15b4e4ac-9e0f-4bba-89c7-c06f42db03fd/download
id run_bbb4e7678d0632b7bb5fac705a3fcd2f
identifier.url.fl_str_mv http://hdl.handle.net/10362/180231
inst_facet_str urn:organizationAcronym:unl{{{_:::_}}}Universidade Nova de Lisboa
instacron_str unl
institution Universidade Nova de Lisboa
instname_str Universidade Nova de Lisboa
language eng
network_acronym_str run
network_name_str Repositório Institucional da UNL
oai_identifier_str oai:run.unl.pt:10362/180231
organization_str_mv urn:organizationAcronym:unl
person_str_mv Carvalho, Luís
Seco, João Costa
publishDate 2024
publisher.none.fl_str_mv Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
repo_facet_str urn:repositoryAcronym:run{{{_:::_}}}Repositório Institucional da UNL
reponame_str Repositório Institucional da UNL
repository_id_str urn:repositoryAcronym:run
service_str_mv urn:repositoryAcronym:run
spelling engSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl PublishingenWe extend prior work on a language-based approach to versioned software development to support versioned programs with mutable state and evolving method interfaces. Unlike the traditional approach of mainstream version control systems, where a textual diff represents each evolution step, we treat versions as programming elements. Each evolution step, merge operation, and version relationship is represented explicitly in a multifaceted code representation. This provides static guarantees for safe code reuse from previous versions and forward and backwards compatibility between versions, allowing clients to use newly introduced code without needing to refactor their program manually. By lifting versioning to the language level, we pave the way for tools that interact with software repositories to have more insight into a system’s behavior evolution. We instantiate our work in the Python programming language and demonstrate its applicability regarding common evolution and refactoring patterns found in different versions of popular Python packages.application/pdfenA Language-Based Version Control System for PythonCarvalho, LuísSeco, João CostaFaculdade de Ciências e Tecnologia (FCT)NOVALincsDI - Departamento de InformáticaHostingInstitutionOrganizationalRUNe-mailmailto:run@unl.ptrun@unl.ptISBNIsPartOf9783959773416ISSNIsPartOf1868-8969URNIsPartOfPURE: 107303023URNIsPartOfPURE UUID: 3fede8c0-dcc9-4fd0-9f86-ca60550eb970URNIsPartOfScopus: 85205020144DOIIsPartOf10.4230/LIPIcs.ECOOP.2024.92025-03-06T22:58:28Z2024-092024-09-01T00:00:00ZHandlehttp://hdl.handle.net/10362/180231http://purl.org/coar/access_right/c_abf2open accessSoftware evolutiontype theorySoftware933557 bytesother research producthttp://purl.org/coar/resource_type/c_c94fconference objecthttp://purl.org/coar/access_right/c_abf2application/pdffulltexthttps://run.unl.pt/bitstreams/15b4e4ac-9e0f-4bba-89c7-c06f42db03fd/download
spellingShingle A Language-Based Version Control System for Python
Carvalho, Luís
Software evolution
type theory
Software
status SINGLETON
subject.fl_str_mv Software evolution
type theory
Software
title A Language-Based Version Control System for Python
title_full A Language-Based Version Control System for Python
title_fullStr A Language-Based Version Control System for Python
title_full_unstemmed A Language-Based Version Control System for Python
title_short A Language-Based Version Control System for Python
title_sort A Language-Based Version Control System for Python
topic Software evolution
type theory
Software
topic_facet Software evolution
type theory
Software
url http://hdl.handle.net/10362/180231
visible 1