Week 7
Previous Goals:
- Create a Docker Image on Linux to finally set up end to end testing on Github Actions
- Top priority: run new diff metrics program and ground truth construction on all compatible bug files. The paper needs results now!
- Resolved end to end testing issue: Java being non-deterministic for SmartCommit
- I will be volunteering at ISSTA, so I expect to be taken away from research for some time :)
This Week’s Progress:
- I created a new branch,
new-pipeline
, to run ond4j-compatible-bugs.csv
and debugged it. Thomas helped me with the program specification and investigated Defects4J compilation issues together. I discovered that now, the pipeline fails to run on 29 deprecated bugs as it fails to checkout the bug repository from Defects4J. I learned that their buggy repositories do not exist, only the Git history metadata, and thus the deprecated bugs must be removed.- I learned that their buggy repositories do not exist, only the Git history metadata, and thus the deprecated bugs must be removed.
- I learned that some (aounrd ~8) bugs fail to run because of a Unicode ‘uft-8’ encoding issue. This leads to unidiff.PatchSet failing to be generated from the diff files. I changed this to ‘latin-1’ encoding after inspecting the VC diff for failing file, and I think this is a correct solution.
- I learned that the pre-condition for the new ground truth construction to work is for the order of the changed diff lines in the VC diff to be the same as in non-bug-fix diff, at least. However, inspecting Cli-29 led me to realize that removed lines have unexpected behavior, and their line numbers are very hard to fix - even with cleaning all diffs beforehand! Thus, I decided to handle this special scenarios by switching the truth classification scheme to content matching.
- I got access to
pipsqueak
, thanks to Gus and Thomas! I managed to install the tool myself on the machine (that means the README.md instructions writeup is very good :)) and run the first 3 scripts of the pipeline: generate_artifacts.sh, compute_metrics.sh, and generate_ground_truth.sh. We have new results - metrics.csv and truth.csv - inhome/thdang/untangling-tools-benchmark/benchmark-all/evaluation
on pipsqueak. - Thank you Mike for setting up the Docker image for CI! This is incredibly helpful, as CI has been a pain for me, and it is bad to have to run end to end tests locally every time I want to push (my laptop actually ran out of memory, lol!). I helped Mike debugged Docker container, and the iterations are longer than I expected due to merge issues. However, the Docker successfully runs the tool and passes end-to-end tests now.
- I wrote a paragraph on pipeline limitations on the current paper and submit a merge request on GitLab.
Next Goals:
- Automate analysis script for table 3 in auto-analysis
- Set up end to end tests on new-pipeline and respond to Thomas’ concerns
- Generate all results on Defects4J, generate tables/figures, rewrite the analyses
- Work on the paper
Written on July 21, 2023