Skip to content

Instantly share code, notes, and snippets.

View Alexx882's full-sized avatar

Alexander Lercher Alexx882

View GitHub Profile
@Alexx882
Alexx882 / main-task-study.md
Last active January 21, 2026 14:18
Feedback: Evaluating a Systematic Communication Approach for REST API Breaking Change Notifications

Title Page

You will be shown a source code diff, a summary, and an OpenAPI diff describing breaking and non-breaking changes

breaking and non-breaking REST API changes

you will assume maintaining an application

"you will assume the role of an application maintainer" to keep the description in the style of the first task

Based on a summary (and later in combination with an OpenAPI diff),

@Alexx882
Alexx882 / summary-survey-feedback.md
Last active December 17, 2025 15:25
Feedback Limesurvey Assessing LLM-Generated Summaries of REST API Changes

Title page "Assessing LLM-Generated Summaries of REST API Changes"

The goal is to identify the most effective type of summary for the follow-up evaluation of a systematic communication approach.

Should participants know that our communication approach also contains a detailed diff? because they might think the summary is it, and with that mindset might rate the summaries differently (eg. not enough information, but if they know that there is a detailed description it might be enough) eg the assessment question "The summary lacks of technical details to be useful for an overview." might be more clear if participants know that there is more in the notification.

Quality of API Change Summaries

Write for each summary a headline that it is a summary, e.g.:

@Alexx882
Alexx882 / survey-feedback.md
Last active December 11, 2025 13:33
Feedback LimeSurvey Notification Study

Filter question

Which of the following is an of a breaking change in a REST API? (Select all that apply)

Which of the following examples do you consider a breaking change in a REST API? (Select all that apply)

Evaluating API Breaking Change Documentation

rename to "Quality of API Change Descriptions" (we evaluate it)

the code diff is missing

@Alexx882
Alexx882 / feedback.md
Created November 10, 2025 10:23
Feedback LimeSurvey Breaking Changes in REST APIs: Experiences and Communication

Feedback Survey Breaking Changes in REST APIs: Experiences and Communication

In total, the survey looks good and will capture what we want to know from the participants. However, you focus on the channels, do you also want to know about the content ("what")?

Took me around 2-3 minutes to go through the questionaire's longest path (yes to REST APIs, yes to breaking changes) but without writing any personal opinion in the end.

Can you include a "delete my answers" button? I've seen it on some LimeSurveys (I hope it was LimeSurvey) on the top right. Because currently, you cannot go back on wrong selections and re-opening the limesurvey link opens a cached page with the previous progress.

Title

The term communication feels ambiguous in this context - use Notifications? or Experiences and Communication of Changes (because I saw that you use the term communication later also, which is fine in the explicit contexts)

@Alexx882
Alexx882 / convert_mailmap_to_csv.py
Created June 16, 2023 12:59
Convert the repo .mailmap files to csv for the analysis tool
import pandas as pd
import csv
EMAIL_PLACEHOLDER = 'na@na.na'
def read_mailmap(mailmap_path, contains_prefix=True):
with open(mailmap_path, 'r') as mailmap:
mailmap_entries = mailmap.readlines()
mailmap_entries = [e[2 if contains_prefix else 0:].replace('\n','') # remove group prefix and newline
@Alexx882
Alexx882 / spring-validation-openapi.md
Last active May 8, 2023 07:27
OpenAPI Semantics / Validation

Java Spring Validation and OpenAPI

Die Validation Annotations befinden sich im Package:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
@Alexx882
Alexx882 / clone.py
Last active May 8, 2023 07:28
Used to clone SE2 entry assignment repo from submission xml.
# parse path
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-xml', help='path to xml file from submission')
parser.add_argument('-remove', help='flag to remove xml file after clone', action='store_true')
args = parser.parse_args()
filepath= vars(args)['xml']
remove_afterwards = vars(args)['remove']