Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 72 additions & 11 deletions .github/workflows/update-metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,35 +20,96 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
fetch-depth: 0

- name: Extract version from tag (if triggered by tag)
id: extract_version
run: |
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
TAG_NAME=${GITHUB_REF#refs/tags/}
# Remove 'v' prefix if present (v1.0.0 -> 1.0.0)
VERSION=${TAG_NAME#v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
echo "is_tag=true" >> $GITHUB_OUTPUT
echo "Triggered by version tag: $TAG_NAME (version: $VERSION)"
else
echo "is_tag=false" >> $GITHUB_OUTPUT
echo "Triggered by regular push to: $GITHUB_REF"
fi

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
cache: pip

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyyaml

pip install -r dev-requirements.txt

- name: Update version metadata (if triggered by tag)
if: steps.extract_version.outputs.is_tag == 'true'
env:
TAG_VERSION: ${{ steps.extract_version.outputs.version }}
run: |
python -m quadriga.metadata.update_version_from_tag

- name: Update metadata files
env:
PYTHONHASHSEED: 0
run: python -m quadriga.metadata.run_all

- name: Check if files changed

- name: Stage metadata files
run: |
# Add all metadata files that exist (handles both new and modified files)
for file in metadata.yml CITATION.bib CITATION.cff .zenodo.json metadata.jsonld metadata.rdf; do
[ -f "$file" ] && git add "$file"
done

- name: Check if files staged
id: check_changes
run: |
if git diff --quiet metadata.yml && git diff --quiet CITATION.bib && git diff --quiet CITATION.cff; then
if git diff --cached --quiet; then
echo "changes_detected=false" >> $GITHUB_OUTPUT
else
echo "changes_detected=true" >> $GITHUB_OUTPUT
fi
- name: Commit changes if necessary
if: steps.check_changes.outputs.changes_detected == 'true'

- name: Commit changes (regular push)
if: steps.check_changes.outputs.changes_detected == 'true' && steps.extract_version.outputs.is_tag == 'false'
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add metadata.yml CITATION.bib CITATION.cff
git commit -m "[Automated] Update metadata files"
git push
git push

- name: Commit changes and move tag (tag-triggered)
if: steps.check_changes.outputs.changes_detected == 'true' && steps.extract_version.outputs.is_tag == 'true'
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -m "[Automated] Update metadata for version ${{ steps.extract_version.outputs.version }}"

# Delete the old tag (locally and remotely)
git tag -d ${{ steps.extract_version.outputs.tag_name }}
git push origin :refs/tags/${{ steps.extract_version.outputs.tag_name }}

# Create new tag at the current commit (with updated metadata)
git tag ${{ steps.extract_version.outputs.tag_name }}

# Push the changes and the new tag
git push origin HEAD:main
git push origin ${{ steps.extract_version.outputs.tag_name }}

echo "Tag ${{ steps.extract_version.outputs.tag_name }} moved to commit with updated metadata"

- name: No changes needed
if: steps.check_changes.outputs.changes_detected == 'false'
run: |
if [[ "${{ steps.extract_version.outputs.is_tag }}" == "true" ]]; then
echo "Metadata already matches the tag version - no changes needed"
else
echo "No metadata changes detected"
fi
4 changes: 2 additions & 2 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"affiliation": "Fraunhofer-Institut für Offene Kommunikationssysteme FOKUS"
}
],
"description": "Diese Fallstudie geht auf die Reproduzierbarkeit von Analysen und Forschungsergebnissen ein. Dazu werden in einzelnen Kapiteln die Themen Datennachnutzung, Bewertung von Datenqualität und Nachvollziehbarkeit von Analysen behandelt.",
"description": "<p>Diese Fallstudie bildet mit Hilfe eines JupyterBooks einen Forschungsverlauf in der Verwaltungswissenschaft nach. Dabei wird anhand einer modellhaften Forschungsfrage auf die Reproduzierbarkeit von Analysen und Forschungsergebnissen eingegangen. Dazu werden in einzelnen Kapiteln die Themen Datennachnutzung, Bewertung von Datenqualität und Nachvollziehbarkeit von Analysen behandelt.</p>\n<p>Das interaktive Lehrbuch kann als <a href=\"https://quadriga-dk.github.io/Tabelle-Fallstudie-1/Markdown/0_Intro.html\" target=\"_blank\">Web-Version</a> verwendet, zur individuellen Anpassung heruntergeladen werden und steht darüber hinaus auch auf <a href=\"https://github.com/quadriga-dk/Tabelle-Fallstudie-1\" target=\"_blank\">GitHub</a> zur Verfügung.</p>\n<p>Die QUADRIGA-OER sind nach einem einheitlichen <a href=\"https://quadriga-dk.github.io/Book_Template\" target=\"_blank\">Template</a> gestaltet, werden nach einem <a href=\"https://doi.org/TODO\" target=\"_blank\">standardisierten Verfahren qualitätsgeprüft</a> und <a href=\"https://doi.org/10.5281/zenodo.18184772\" target=\"_blank\">mit Metadaten ausgezeichnet</a>.</p>\n<h5>QUADRIGA Datenkompetenzzentrum</h5>\n<p>QUADRIGA ist das Datenkompetenzzentrum der Wissenschaftsregion Berlin-Brandenburg. Für die beiden Anwendungsdomänen Digital Humanities und Verwaltungswissenschaft entstehen unter der Einbindung der Expertise der beiden Disziplinen Informatik und Informationswissenschaft Selbstlernangebote, die als OER in Form von Jupyter Books zur freien Nachnutzung zur Verfügung gestellt werden. Um den Forschungsprozess möglichst realistisch abzubilden, basieren die OER auf Fallstudien, denen wiederum ein eigens für das Projekt entwickeltes <a href=\"https://doi.org/10.5281/zenodo.14747822\" target=\"_blank\">Datenkompetenzframework</a> zugrunde liegt. Die Fallstudien nehmen drei für die Anwendungsdomänen repräsentativen Datentypen in den Blick: Bewegtes Bild, Tabelle und Text.</p>\n<p>Zu den Zielgruppen von QUADRIGA zählen insbesondere promovierende und promovierte Wissenschaftler*innen der genannten Disziplinen, die den Umgang mit digitalen Daten, Methoden und Werkzeugen erlernen und weiterentwickeln wollen.</p>\n<p>QUADRIGA ist eins von 11 Datenkompetenzzentren in Deutschland und wird vom <a href=\"https://www.bmftr.bund.de/DE/Forschung/Wissenschaftssystem/Forschungsdaten/DatenkompetenzenInDerWissenschaft/datenkompetenzeninderwissenschaft.html\" target=\"_blank\">Bundesministerium für Forschung, Technologie und Raumfahrt (BMFTR)</a> und von der Europäischen Union im Rahmen von “NextGenerationEU” finanziert. Zu den Verbundpartnern zählen:\n <ul>\n <li>Universität Potsdam (Verbundkoordination) <i>(Förderkennzeichen: 16DKZ2034A)</i></li>\n <li>Filmuniversität Babelsberg <i>(Förderkennzeichen: 16DKZ2034B)</i></li>\n <li>Fachhochschule Potsdam <i>(Förderkennzeichen: 16DKZ2034C)</i></li>\n <li>Fraunhofer FOKUS <i>(Förderkennzeichen: 16DKZ2034D)</i></li>\n <li>Freie Universität Berlin <i>(Förderkennzeichen: 16DKZ2034E)</i></li>\n <li>Technische Universität Berlin <i>(Förderkennzeichen: 16DKZ2034F)</i></li>\n <li>Gesellschaft für Informatik <i>(Förderkennzeichen: 16DKZ2034G)</i></li>\n <li>Humboldt-Universität zu Berlin <i>(Förderkennzeichen: 16DKZ2034H)</i></li>\n </ul>\n</p>\n\n<p>Mehr zum Aufbau und zur Umsetzung des Projekts können Sie im <a href=\"https://doi.org/10.5281/zenodo.10805015\" target=\"_blank\">Umsetzungskonzept</a> erfahren.</p>\n\n<p>Weitere Informationen sowie Publikationen finden Sie auf der <a href=\"https://www.quadriga-dk.de\" target=\"_blank\">Webseite</a>, in der <a href=\"https://zenodo.org/communities/quadriga\" target=\"_blank\">Zenodo-Community</a> und der <a href=\"https://github.com/quadriga-dk\" target=\"_blank\">GitHub-Organisation</a> des Projekts.</p>\n",
"publication_date": "2025-03-24",
"keywords": [
"Verwaltung",
Expand All @@ -37,7 +37,7 @@
"Reproduzierbarkeit",
"R (Programmiersprache)"
],
"license": "CC-BY-SA-4.0",
"license": "CC BY 4.0",
"language": "deu",
"contributors": [
{
Expand Down
1 change: 0 additions & 1 deletion CITATION.bib
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ @misc{Plomin_Reproduzierbarkeit_2025
year = {2025},
version = {1.0.0-beta.2},
note = {Repository: https://github.com/quadriga-dk/Tabelle-Fallstudie-1},
version = {1.0.0-beta.2},
howpublished = {Available from: https://github.com/quadriga-dk/Tabelle-Fallstudie-1},
doi = {10.5281/zenodo.14975202},
url = {https://quadriga-dk.github.io/Tabelle-Fallstudie-1/Markdown/0_Intro.html},
Expand Down
8 changes: 5 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ cff-version: 1.2.0
version: 1.0.0-beta.2
title: 'Reproduzierbarkeit von Datenanalysen: Ein Fallbeispiel aus dem Nationalen
Bildungsbericht. QUADRIGA Open Educational Resources: Tabelle 1'
abstract: Diese Fallstudie geht auf die Reproduzierbarkeit von Analysen und Forschungsergebnissen
ein. Dazu werden in einzelnen Kapiteln die Themen Datennachnutzung, Bewertung von
Datenqualität und Nachvollziehbarkeit von Analysen behandelt.
abstract: Diese Fallstudie bildet mit Hilfe eines JupyterBooks einen Forschungsverlauf
in der Verwaltungswissenschaft nach. Dabei wird anhand einer modellhaften Forschungsfrage
auf die Reproduzierbarkeit von Analysen und Forschungsergebnissen eingegangen. Dazu
werden in einzelnen Kapiteln die Themen Datennachnutzung, Bewertung von Datenqualität
und Nachvollziehbarkeit von Analysen behandelt.
type: software
message: Please cite this software using the metadata from `preferred-citation` in
`CITATION.cff`.
Expand Down
4 changes: 3 additions & 1 deletion dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
pyyaml
pyyaml
jsonschema
rdflib
Loading