Publicação
A Language-Based Version Control System for Python
| 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 |