Build conflicts in the wild. Issue 4 (7th March 2022)
- Record Type:
- Journal Article
- Title:
- Build conflicts in the wild. Issue 4 (7th March 2022)
- Main Title:
- Build conflicts in the wild
- Authors:
- Da Silva, Léuson
Borba, Paulo
Pires, Arthur - Abstract:
- Abstract: When collaborating, developers often create and change software artifacts without being fully aware of team members' work. While such independence is essential for increasing development productivity, it might also result in conflicts when integrating developers' contributions. To better understand the conflicts revealed by failures when building integrated code, we investigate their frequency and structure and adopted resolution patterns in 451 open‐source Java projects. To detect such build conflicts, we select merge scenarios from git repositories, parse their Travis build logs, and check whether the build error messages are related to the merged changes. We find and classify 239 build conflicts and their resolution patterns. Most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by another developer. Conflicts caused by renaming are often resolved by updating the missing reference, whereas removed declarations are often reintroduced. Most fix commits are authored by one of the merge scenario contributors. Based on our catalogue of conflict causes, awareness tools could alert developers about the risk of conflict situations. Program repair tools could benefit from our catalogue of resolution patterns to automatically fix conflicts; we illustrate that with a proof of concept implementation of a tool that fixes conflicts. Abstract : When integrating different code contributions, developers must deal with codeAbstract: When collaborating, developers often create and change software artifacts without being fully aware of team members' work. While such independence is essential for increasing development productivity, it might also result in conflicts when integrating developers' contributions. To better understand the conflicts revealed by failures when building integrated code, we investigate their frequency and structure and adopted resolution patterns in 451 open‐source Java projects. To detect such build conflicts, we select merge scenarios from git repositories, parse their Travis build logs, and check whether the build error messages are related to the merged changes. We find and classify 239 build conflicts and their resolution patterns. Most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by another developer. Conflicts caused by renaming are often resolved by updating the missing reference, whereas removed declarations are often reintroduced. Most fix commits are authored by one of the merge scenario contributors. Based on our catalogue of conflict causes, awareness tools could alert developers about the risk of conflict situations. Program repair tools could benefit from our catalogue of resolution patterns to automatically fix conflicts; we illustrate that with a proof of concept implementation of a tool that fixes conflicts. Abstract : When integrating different code contributions, developers must deal with code integration conflicts. This study investigates the frequency, structure, and adopted resolution patterns of build conflicts in 451 open‐source Java projects. We find and classify 239 build conflicts and their resolution patterns. Most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by another developer. Build conflicts caused by renaming are often resolved by updating the missing reference, whereas removed declarations are often reintroduced. … (more)
- Is Part Of:
- Journal of software. Volume 34:Issue 4(2022)
- Journal:
- Journal of software
- Issue:
- Volume 34:Issue 4(2022)
- Issue Display:
- Volume 34, Issue 4 (2022)
- Year:
- 2022
- Volume:
- 34
- Issue:
- 4
- Issue Sort Value:
- 2022-0034-0004-0000
- Page Start:
- n/a
- Page End:
- n/a
- Publication Date:
- 2022-03-07
- Subjects:
- broken builds -- build conflicts -- code integration -- conflicting contribution
Software engineering -- Periodicals
Computer software -- Development -- Periodicals
Software maintenance -- Periodicals
005.1 - Journal URLs:
- http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481 ↗
http://onlinelibrary.wiley.com/ ↗ - DOI:
- 10.1002/smr.2441 ↗
- Languages:
- English
- ISSNs:
- 2047-7473
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 21236.xml