From a032f1748603ce162a371445f7e3fe828de5d5d1 Mon Sep 17 00:00:00 2001 From: marodev Date: Sat, 9 Oct 2021 14:52:55 +0200 Subject: [PATCH 1/5] :wrench: Add dotnet v6 to ci --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 388362f..ae618c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,13 +10,18 @@ jobs: windows-build: runs-on: windows-latest + strategy: + matrix: + dotnet: [ '5.x', '6.x' ] + name: Run CI with dotnet ${{ matrix.dotnet }} steps: - uses: actions/checkout@v2 - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: 5.0.x + dotnet-version: ${{ matrix.dotnet }} + include-prerelease: true - name: Restore dependencies run: dotnet restore - name: Build From 452f34cca5ce00825e60c08309184683bf6a5f51 Mon Sep 17 00:00:00 2001 From: marodev Date: Sun, 12 Dec 2021 21:53:56 +0100 Subject: [PATCH 2/5] :sparkles: Include windows in CI pipeline --- .github/workflows/ci.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae06eab..08e3cc1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,21 +9,21 @@ on: jobs: # FIXME: windows runner throws System.OutOfMemoryException : Insufficient memory to continue the execution of the program. -# windows-build: -# runs-on: windows-latest -# -# steps: -# - uses: actions/checkout@v2 -# - name: Setup .NET -# uses: actions/setup-dotnet@v1 -# with: -# dotnet-version: 5.x -# - name: Restore dependencies -# run: dotnet restore -# - name: Build -# run: dotnet build --no-restore -# - name: Test -# run: dotnet test --no-build --verbosity normal + windows-build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + - name: Setup .NET + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 6.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore + - name: Test + run: dotnet test --no-build --verbosity normal ubuntu-build: runs-on: ubuntu-latest From fad79de33619f89e9b29f138e48fc0a9976a49d4 Mon Sep 17 00:00:00 2001 From: marodev Date: Sun, 12 Dec 2021 22:06:48 +0100 Subject: [PATCH 3/5] :bug: Try to force x64 windows --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08e3cc1..db75e6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet build --no-restore + run: dotnet build --no-restore --RunConfiguration.TargetPlatform="x64" - name: Test - run: dotnet test --no-build --verbosity normal + run: dotnet test --no-build --verbosity normal --RunConfiguration.TargetPlatform="x64" ubuntu-build: runs-on: ubuntu-latest From c74832d737692a92c8d836697501da631407bfea Mon Sep 17 00:00:00 2001 From: marodev Date: Sun, 12 Dec 2021 22:13:43 +0100 Subject: [PATCH 4/5] :bug: Add whitespace before flag --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db75e6b..6a1a348 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet build --no-restore --RunConfiguration.TargetPlatform="x64" + run: dotnet build --no-restore -- RunConfiguration.TargetPlatform="x64" - name: Test - run: dotnet test --no-build --verbosity normal --RunConfiguration.TargetPlatform="x64" + run: dotnet test --no-build --verbosity normal -- RunConfiguration.TargetPlatform="x64" ubuntu-build: runs-on: ubuntu-latest From 5dc2f2314abdf4afe3758235634cc7bd6da70a3d Mon Sep 17 00:00:00 2001 From: marodev Date: Mon, 21 Feb 2022 22:27:27 +0100 Subject: [PATCH 5/5] :books: add research section to docs --- docs/research.md | 35 +++++++++++++++++++++++++++++++++++ mkdocs.yml | 6 ++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 docs/research.md diff --git a/docs/research.md b/docs/research.md new file mode 100644 index 0000000..46d278c --- /dev/null +++ b/docs/research.md @@ -0,0 +1,35 @@ +# Research + +**Overview** + +[Martin Odermatt](https://github.com/marodev), [Diego Marcilio](https://dvmarcilio.github.io/), and [Carlo A. Furia](https://bugcounting.net/publications.html). +Static Analysis Warnings and Automatic Fixing: A Replication for C# Projects. +In Proceedings of the 29th International Conference on Software Analysis, Evolution and Reengineering (SANER) — Reproducibility Studies and Negative Results track (RENE). + + +**Abstract** + +Static analyzers have become increasingly popular both as developer tools and as subjects of empirical studies. Whereas static analysis tools exist for disparate programming languages, the bulk of the empirical research has focused on the popular Java programming language. +In this paper, we investigate to what extent some known results about using static analyzers for Java change when considering C# — another popular object-oriented language. To this end, we combine two replications of previous Java studies. First, we study which static analysis tools are most widely used among C# developers, and which warnings are more commonly reported by these tools on open-source C# projects. Second, we develop and empirically evaluate EagleRepair: a technique to automatically fix code in response to static analysis warnings; this is a replication of our previous work for Java. +Our replication indicates, among other things, that static code analysis is fairly popular among C# developers too; ReSharper is the most widely used static analyzer for C#; several static analysis rules are commonly violated in both Java and C# projects; automatically generating fixes to static code analysis warnings with good precision is feasible in C#.The EagleRepair tool developed for this research is available as open source. + + + +**Cite** + + @InProceedings{OMF-SANER22, + author = {Martin Odermatt and Diego Marcilio and Carlo A. Furia}, + title = {Static Analysis Warnings and Automatic Fixing: A Replication for C\# Projects}, + booktitle = {Proceedings of the 29th International Conference + on Software Analysis, Evolution and Reengineering (SANER)}, + OPTpages = {XX--XX}, + year = {2022}, + month = {March}, + publisher = {IEEE Computer Society}, + note = {RENE (Reproducibility Studies and Negative Results) track}, + acceptancerate = {43\%} + } + +**Download** + +The paper can be downloaded [here](https://bugcounting.net/pubs/saner22-eaglerepair.pdf). \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index f3ce15f..a77a697 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,12 +1,13 @@ site_name: EagleRepair -copyright: Copyright © 2021 Martin Odermatt +copyright: Copyright © 2022 Martin Odermatt, Diego Marcilio, Carlo A. Furia repo_url: https://github.com/marodev/EagleRepair site_url: https://marodev.github.io/EagleRepair extra: - version: 0.0.30 social: - icon: fontawesome/brands/github link: https://github.com/marodev/EagleRepair + - icon: fontawesome/brands/linkedin + link: https://linkedin.com/in/marodev extra_javascript: - https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js - javascripts/config.js @@ -17,6 +18,7 @@ markdown_extensions: - pymdownx.highlight - pymdownx.superfences - admonition + - pymdownx.details theme: name: material