Skip to content

Commit 97aeaa0

Browse files
committed
readme extensions
1 parent 0ee70ca commit 97aeaa0

4 files changed

Lines changed: 18 additions & 23 deletions

File tree

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
# Classifying Edits to Variability in Source Code
22

3-
---
4-
TODOS for artifact submission
5-
- create a top level "python" dir
6-
- put `mining` there
7-
- put `linegraph` there. Maybe rename `linegraph` to `rendering`
8-
- put `plotting` there
9-
---
10-
113
This is the replication package for our paper _Classifying Edits to Variability in Source Code_ accepted at the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2022).
124

135
This replication package consists of four parts:

REQUIREMENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ None
55
## Software Requirements
66

77
We do not require a certain operating system or prepared environment.
8-
We tested our replication on Windows 10, WSL2, and Linux.
8+
We tested our setup on Windows 10, WSL2, and Linux.
99

1010
To run DiffDetective, JDK16 and Maven are required.
1111
Dependencies to other packages are documented in the maven build file ([pom.xml](pom.xml)) and are handled automatically by Maven.

STATUS.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
The artifact for the paper _Classifying Edits to Variability in Source Code_ consists of four parts:
22

3-
1. **Appendix**: The appendix of our paper is given in PDF format in the file [`appendix.pdf`][ddappendix].
4-
2. **DiffDetective**: For our validation, we built DiffDetective, a java library and command-line tool to classify edits to variability in git histories of preprocessor-based software product lines. DiffDetective is the main artifact used to replicate the validation for our paper (see Section 5).
3+
1. **DiffDetective**: For our validation, we built DiffDetective, a java library and command-line tool to classify edits to variability in git histories of preprocessor-based software product lines. DiffDetective is the main artifact used to replicate the validation for our paper (see Section 5).
4+
2. **Appendix**: The appendix of our paper is given in PDF format in the file [`appendix.pdf`][ddappendix].
55
3. **Haskell Formalization**: We provide an extended formalization in the Haskell programming language as described in our appendix. Its implementation can be found in the Haskell project in the [`proofs`][ddproofs] directory.
66
4. **Dataset Overview**: We provide an overview of the 44 inspected open-source software product lines with updated links to their repositories in the file [docs/datasets.md](docs/datasets.md).
7-
87
Our artifact has the following purposes:
98

109
- **Replicability**: We provide instructions based on a docker container that allow to reproduce the validation we performed in Section 5 of our paper.
1110
- **Reusability**: DiffDetective is designed as a library that offers reusable functionality.
12-
Researchers and practitioners can use our DiffDetective library to build on our theory and results (e.g., for future prototypes to study the evolution of variability in source code).
13-
DiffDetective offers various features, including but not limited to parsing variation tree diffs from unix diffs, obtaining variation tree diffs for certain patches and commits, matching elementary edit patterns on variation tree diffs, defining custom classifications, rendering, traversing, and transformations of variation tree diffs, various de-/serialization methods, and running analyses for the git histories of C preprocessor-based software product lines. We documented each part of the library and provide a javadoc website within the repository.
11+
Researchers and practitioners can use our DiffDetective library to build on our theory and results (e.g., for future prototypes to study the evolution of variability in source code).
12+
DiffDetective offers various features, including but not limited to:
13+
parsing variation tree diffs from unix diffs, obtaining variation tree diffs for certain patches and commits, matching elementary edit patterns on variation tree diffs, defining custom classifications, rendering, traversing, and transforming variation tree diffs, various de-/serialization methods, and running analyses for the git histories of C preprocessor-based software product lines. We documented each part of the library and provide a javadoc website within the repository.
1414
- **Extended Formal Specification**: The `proofs` Haskell project provides an extended formal specification of our theory.
15-
Its main purpose is to document our theory and its extensions and to serve as a reference for the proofs in our appendix.
16-
The project can also be used as a library to reason on variation trees and diffs in Haskell projects.
17-
The library is accompanied with a small demo application that shows an example test case for our proof for completeness, by creating a variation tree diff from two variation trees and re-projecting them.
15+
Its main purpose is to document the theory and its extensions to serve as a reference for the proofs in our appendix.
16+
Yet, the project can also be used as a library to reason on variation trees and diffs in Haskell projects.
17+
The library is accompanied with a small demo application that shows an example test case for our proof for completeness, by creating a variation tree diff from two variation trees and re-projecting them.
1818

19-
We claim the **_Artifacts Available_** badge as we made our artefacts publicly available on [Github][ddgithub] and [Zenodo][ddzenodo]. (For now, the Zenodo link points to a reserved doi under which we will publish the artifacts once completed until the deadline at June 4.)
19+
We claim the _Artifacts Available_ badge as we made our artefacts publicly available on [Github][ddgithub] and [Zenodo][ddzenodo].
2020

21-
We claim the **_Artifacts Evaluated Reusable_** badge as we implemented DiffDetective as a reusable library (see above).
22-
Furthermore, both DiffDetective and our Haskell formalization serve as reference implementations if researchers or practitioners want to reimplement our theory in another programming language.
21+
We claim the _Artifacts Evaluated Reusable_ badge as we implemented DiffDetective as a reusable library (see above).
22+
Furthermore, both DiffDetective and our Haskell formalization serve as reference implementations if researchers or practitioners want to reimplement our theory in other programming languages.
2323

2424
[ddgithub]: UNDEFINED
2525
[ddzenodo]: UNDEFINED
2626
[ddappendix]: UNDEFINED
27-
[ddproofs]: UNDEFINED
27+
[ddproofs]: UNDEFINED

proofs/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Haskell Formalization
22

3-
### Hardware and software requirements: [REQUIREMENTS.md](REQUIREMENTS.md)
3+
This is a Haskell stack project that implements the extended formalization of our theoretical concepts from our paper _"Classifying Edits to Variability in Source Code"_.
4+
A detailed explanation and comparison to our formalization in the paper is given in our [appendix](../appendix.pdf).
45

5-
### Build instructions: [INSTALL.md](INSTALL.md)
6+
**Hardware and software requirements** are described in [REQUIREMENTS.md](REQUIREMENTS.md).
7+
8+
**Build instructions** are given in [INSTALL.md](INSTALL.md).

0 commit comments

Comments
 (0)