Skip to content

Commit 665aac4

Browse files
committed
added badges for quick access of docs files
1 parent 85a290e commit 665aac4

4 files changed

Lines changed: 85 additions & 81 deletions

File tree

INSTALL.md

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,62 @@
1-
## Installing Stack
2-
3-
As explained in the [REQUIREMENTS.md](REQUIREMENTS.md), the [_Stack_][stack] build system is our only installation requirement.
4-
Detailed installation instruction are given on the respective [installation webpage][stackinstall].
5-
6-
- Linux: You can install stack via `sudo apt-get install haskell-stack` (or `sudo pacman -S stack` if you are using pacman).
7-
Further instructions for installing stack including specific linux distributions are given [here][stackinstall].
8-
- Windows 64-bit: Go to the [stack installation page][stackinstall]. Download and run the _Windows 64-bit Installer_.
9-
- MacOS: Please follow the instructions on the [installation webpage][stackinstall].
10-
11-
## Running the Demo
12-
13-
After you installed stack, please open a terminal and navigate to the repository's directory (the directory containing this `INSTALL.md`).
14-
```shell
15-
cd <path/to/this/repository>
16-
```
17-
Our demo prints coloured text to the terminal, so it might not be compatible with every terminal.
18-
We tested it within the Windows Terminal, Windows Powershell, Windows Subsystem for Linux (WSL), and the default terminal on Manjaro.
19-
(It might not work with Git Bash.)
20-
You can then build the library and run the demo as follows:
21-
22-
```shell
23-
stack run
24-
```
25-
26-
## What Is There to See
27-
Our demo runs several independent examples.
28-
Each example is separated by a red headline and consists of a series of edits applied to a source code fragment.
29-
For each edit, we first show its type and the feature context under which that edit was made:
30-
31-
==== Run ins_tree(11, 4, 0) under context = "SafeStack" giving us ====
32-
33-
where an abstract syntax tree (AST) whose root has ID 11 is inserted below node 4 in the current AST at index 0 under feature context "SafeStack".
34-
(The first edit will always be `identity` under context `null`. This is a technical detail necessary to show the initial state of the example.)
35-
Afterwards, the code that is a result of this edit is shown, similar to Figure 1 in the paper:
36-
37-
![Alice](meta/pop_v2.png)
38-
39-
## Expected Output / If You Cannot Get it Running
40-
41-
By default, the following examples are executed in this order:
42-
43-
1. Motivating example
44-
- Alice's part of the motivating example shown in Figure 1 in the paper.
45-
- Bob's part of the motivating example shown in Figure 3 in the paper. As the synchronisation of code and feature traces across clones is subject to future work, this example simulates how we envision the synchronisation.
46-
2. Examples of edit patterns from the evaluation (Section 5): For each pattern we show how to reproduce it in the general case and when an outer scope (eg., a method) is already assigned the target mapping. We omitted AddIfdef* as it is just a repitition of AddIfdef with arbitrary contexts and code fragments. As AddIfdefElse has to be reproduced using two variants, we need two different examples here, one for the if-branch and one for the else-branch.
47-
48-
If you see the following output after `stack run`, the build process and execution of the demo were successful.
49-
The colours in your terminal might deviate from the following screenshots.
50-
The following screenshots also display the entire default output of the demo in case you were not able to install the stack or get the demo running.
51-
52-
First, the output for Figure 1 in the paper is shown. Alice performs several edits to the `pop` method.
53-
![Alice](meta/Alice.png)
54-
55-
Second, the propagation of Alice's changes to Bob's variant is shown. As the synchronisation of code and feature traces across clones is subject to future work, this example simulates how we envision the synchronisation.
56-
![Bob](meta/Bob.png)
57-
58-
Third, our tool reproduces the edit patterns described in the paper (Section 5).
59-
![Patterns](meta/Patterns.png)
60-
61-
[stack]: https://docs.haskellstack.org/en/stable/README/
62-
[stackinstall]: https://docs.haskellstack.org/en/stable/install_and_upgrade/
1+
## Installing Stack
2+
3+
As explained in the [REQUIREMENTS.md](REQUIREMENTS.md), the [_Stack_][stack] build system is our only installation requirement.
4+
Detailed installation instruction are given on the respective [installation webpage][stackinstall].
5+
6+
- Linux: You can install stack via `sudo apt-get install haskell-stack` (or `sudo pacman -S stack` if you are using pacman).
7+
Further instructions for installing stack including specific linux distributions are given [here][stackinstall].
8+
- Windows 64-bit: Go to the [stack installation page][stackinstall]. Download and run the _Windows 64-bit Installer_.
9+
- MacOS: Please follow the instructions on the [installation webpage][stackinstall].
10+
11+
## Running the Demo
12+
13+
After you installed stack, please open a terminal and navigate to the repository's directory (the directory containing this `INSTALL.md`).
14+
```shell
15+
cd <path/to/this/repository>
16+
```
17+
Our demo prints coloured text to the terminal, so it might not be compatible with every terminal.
18+
We tested it within the Windows Terminal, Windows Powershell, Windows Subsystem for Linux (WSL), and the default terminal on Manjaro.
19+
(It might not work with Git Bash.)
20+
You can then build the library and run the demo as follows:
21+
22+
```shell
23+
stack run
24+
```
25+
26+
## What Is There to See
27+
Our demo runs several independent examples.
28+
Each example is separated by a red headline and consists of a series of edits applied to a source code fragment.
29+
For each edit, we first show its type and the feature context under which that edit was made:
30+
31+
==== Run ins_tree(11, 4, 0) under context = "SafeStack" giving us ====
32+
33+
where an abstract syntax tree (AST) whose root has ID 11 is inserted below node 4 in the current AST at index 0 under feature context "SafeStack".
34+
(The first edit will always be `identity` under context `null`. This is a technical detail necessary to show the initial state of the example.)
35+
Afterwards, the code that is a result of this edit is shown, similar to Figure 1 in the paper:
36+
37+
![Alice](meta/pop_v2.png)
38+
39+
## Expected Output / If You Cannot Get it Running
40+
41+
By default, the following examples are executed in this order:
42+
43+
1. Motivating example
44+
- Alice's part of the motivating example shown in Figure 1 in the paper.
45+
- Bob's part of the motivating example shown in Figure 3 in the paper. As the synchronisation of code and feature traces across clones is subject to future work, this example simulates how we envision the synchronisation.
46+
2. Examples of edit patterns from the evaluation (Section 5): For each pattern we show how to reproduce it in the general case and when an outer scope (eg., a method) is already assigned the target mapping. We omitted AddIfdef* as it is just a repitition of AddIfdef with arbitrary contexts and code fragments. As AddIfdefElse has to be reproduced using two variants, we need two different examples here, one for the if-branch and one for the else-branch.
47+
48+
If you see the following output after `stack run`, the build process and execution of the demo were successful.
49+
The colours in your terminal might deviate from the following screenshots.
50+
The following screenshots also display the entire default output of the demo in case you were not able to install the stack or get the demo running.
51+
52+
First, the output for Figure 1 in the paper is shown. Alice performs several edits to the `pop` method.
53+
![Alice](meta/Alice.png)
54+
55+
Second, the propagation of Alice's changes to Bob's variant is shown. As the synchronisation of code and feature traces across clones is subject to future work, this example simulates how we envision the synchronisation.
56+
![Bob](meta/Bob.png)
57+
58+
Third, our tool reproduces the edit patterns described in the paper (Section 5).
59+
![Patterns](meta/Patterns.png)
60+
61+
[stack]: https://docs.haskellstack.org/en/stable/README/
62+
[stackinstall]: https://docs.haskellstack.org/en/stable/install_and_upgrade/

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
[![Language](https://img.shields.io/badge/Language-Haskell-purple)](https://www.haskell.org/)
44
[![Documentation](https://img.shields.io/badge/Documentation-Read-purple)][documentation]
55
[![License](https://img.shields.io/badge/License-GNU%20LGPLv3-blue)](LICENSE.LGPL3)
6+
[![Install](https://img.shields.io/badge/Install-Instructions-blue)](INSTALL.md)
7+
[![Status](https://img.shields.io/badge/ESEC%2FFSE'21-Badge%20Application-blue)](STATUS.md)
8+
9+
610

711
Artifact repository for the paper _Feature Trace Recording_, accepted at _ESEC/FSE 2021_.
812
Authors are [Paul Maximilian Bittner][paul], [Alexander Schultheiß][alexander], [Thomas Thüm][thomas], [Timo Kehrer][timo], [Jeffrey M. Young][jeffrey], and [Lukas Linsbauer][lukas].

REQUIREMENTS.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
## Hardware Requirements
2-
None
3-
4-
## Software Requirements
5-
6-
The [Stack build system][stack] is the only requirement to build our library and to run the demo.
7-
Stack is the de-facto standard for Haskell projects.
8-
Dependencies to other packages are documented in the build files ([stack.yaml](stack.yaml) and [package.yaml](package.yaml)) and are handled automatically by Stack.
9-
We do not require specific operating systems or other environments apart from Stack.
10-
We successfully tested building the library and running the library on Windows 10, WSL, Ubuntu and Manjaro.
11-
1+
## Hardware Requirements
2+
None
3+
4+
## Software Requirements
5+
6+
The [Stack build system][stack] is the only requirement to build our library and to run the demo.
7+
Stack is the de-facto standard for Haskell projects.
8+
Dependencies to other packages are documented in the build files ([stack.yaml](stack.yaml) and [package.yaml](package.yaml)) and are handled automatically by Stack.
9+
We do not require specific operating systems or other environments apart from Stack.
10+
We successfully tested building the library and running the library on Windows 10, WSL, Ubuntu and Manjaro.
11+
1212
[stack]: https://docs.haskellstack.org/en/stable/README/

STATUS.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
We claim the _Artifacts Available_ badge as we made our artefacts publicly available on [Github][ftrgithub] and [Zenodo][ftrzenodo]. (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.)
2-
3-
We claim the _Artifacts Evaluated Reusable_ badge as we implemented feature trace recording as a reusable library.
4-
We documented all modules of the library in detail and made the documentation [available on Github][documentation] as well.
5-
Furthermore, our library serves as a reference implementation if researchers or practitioners want to reimplement feature trace recording in another programming language.
6-
7-
[ftrgithub]: https://github.com/pmbittner/FeatureTraceRecording/tree/esecfse21
8-
[ftrzenodo]: https://doi.org/10.5281/zenodo.4818461
1+
We claim the _Artifacts Available_ badge as we made our artefacts publicly available on [Github][ftrgithub] and [Zenodo][ftrzenodo]. (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.)
2+
3+
We claim the _Artifacts Evaluated Reusable_ badge as we implemented feature trace recording as a reusable library.
4+
We documented all modules of the library in detail and made the documentation [available on Github][documentation] as well.
5+
Furthermore, our library serves as a reference implementation if researchers or practitioners want to reimplement feature trace recording in another programming language.
6+
7+
[ftrgithub]: https://github.com/pmbittner/FeatureTraceRecording/tree/esecfse21
8+
[ftrzenodo]: https://doi.org/10.5281/zenodo.4818461
99
[documentation]: https://pmbittner.github.io/FeatureTraceRecording/

0 commit comments

Comments
 (0)