commit 9ab6c20747c62ca3f658fa1970aa30f399860112 Author: Nicole Dresselhaus Date: Thu May 15 10:14:03 2025 +0200 Initial Code-Project-Template diff --git a/.gitlab/changelog_config.yml b/.gitlab/changelog_config.yml new file mode 100644 index 0000000..6fa342c --- /dev/null +++ b/.gitlab/changelog_config.yml @@ -0,0 +1,39 @@ +--- +# Settings for generating changelogs using the GitLab API. See +# https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data for +# more information. +categories: + added: Added + fixed: Fixed + changed: Changed + deprecated: Deprecated + removed: Removed + security: Security + performance: Performance + other: Other +include_groups: + - Methodenlabor +template: | + {% if categories %} + {% each categories %} + ### {{ title }} ({% if single_change %}1 change{% else %}{{ count }} changes{% end %}) + + {% each entries %} + - [{{ title }}]({{ commit.web_url }})\ + {% if author.credit %} by {{ author.reference }}{% end %}\ + {% if commit.trailers.MR %}\ + ([merge request]({{ commit.trailers.MR }}))\ + {% else %}\ + {% if merge_request %}\ + ([merge request]({{ merge_request.web_url }}))\ + {% end %}\ + {% end %}\ + + {% end %} + + {% end %} + {% else %} + No changes. + {% end %} +# The tag format for gitlab-org/gitlab is vX.Y.Z(-rcX). Releases are always without trailing -... +tag_regex: '^v(?P\d+)\.(?P\d+)\.(?P\d+)$' diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md new file mode 100644 index 0000000..1bcb68c --- /dev/null +++ b/.gitlab/issue_templates/Bug.md @@ -0,0 +1,26 @@ +### Summary + + + +### Steps to reproduce + + + +### What is the current _bug_ behavior? + + + +### What is the expected _correct_ behavior? + + + +### Relevant logs and/or screenshots + + + +### Possible fixes + + + +/label ~"type::bug" diff --git a/.gitlab/issue_templates/Decision Matrix.md b/.gitlab/issue_templates/Decision Matrix.md new file mode 100644 index 0000000..151df57 --- /dev/null +++ b/.gitlab/issue_templates/Decision Matrix.md @@ -0,0 +1,27 @@ + + +## Problem to solve + + + +## Decision Matrix + + + +| Acceptance criteria | Required | Option 1 | Option 2 | +| ------------------- | -------- | ---------------------------------- | ---------------------------------- | +| Criteria 1 | Yes/No | :white_check_mark:/:no_entry_sign: | :white_check_mark:/:no_entry_sign: | +| Criteria 2 | Yes/No | :white_check_mark:/:no_entry_sign: | :white_check_mark:/:no_entry_sign: | +| Criteria 3 | Yes/No | :white_check_mark:/:no_entry_sign: | :white_check_mark:/:no_entry_sign: | +| Criteria 4 | Yes/No | :white_check_mark:/:no_entry_sign: | :white_check_mark:/:no_entry_sign: | +| **Option Viable?** | - | Yes/No | Yes/No | + +## Decision due date + + + +## Final decision + + + +/label ~"group::" ~"section::" ~"Category:" diff --git a/.gitlab/issue_templates/Default.md b/.gitlab/issue_templates/Default.md new file mode 100644 index 0000000..5d7d07f --- /dev/null +++ b/.gitlab/issue_templates/Default.md @@ -0,0 +1,3 @@ +If you feel that your issue can be categorized as a reproducible bug or a +feature proposal, please use one of the issue templates provided and include as +much information as possible. diff --git a/.gitlab/issue_templates/Deprecations.md b/.gitlab/issue_templates/Deprecations.md new file mode 100644 index 0000000..a955f5f --- /dev/null +++ b/.gitlab/issue_templates/Deprecations.md @@ -0,0 +1,125 @@ + + +**A written process alone is unlikely to be sufficient to navigate through many +complexities. Please use this template as guidance with steps to take when +deprecating functionality, but not as an exhaustive list designed to generate +positive outcomes every time. Deprecations are often nuanced in their impact and +the approach needed may not be fully covered in this template.** + +--- + +### Deprecation Summary + +_Add a brief description of the feature or functionality that is deprecated. +Clearly state the potential impact of the deprecation to end users._ + +#### Documentation + +- Deprecation notice: [add link](here) +- Migration guidelines: [add link](here) +- etc. + +#### Reasons + +\_Describe why deprecation of this feature is necessary + +- [add links to the documentation](here) - i.e. Decision-Matrix, etc. + +### Breaking Change? + + + +Does this deprecation contain a breaking change? `Yes / No` + + + + + +### Affected Users + +Who is affected by this deprecation: GitLab.com users, Self-managed users, or +Dedicated users? (choose all that apply) + +- [ ] GitLab.com +- [ ] Self-managed +- [ ] Dedicated + +### Deprecation Milestone + +This deprecation will be announced in milestone: `xx.xx` _If this deprecation +has already been announced, include information about when the initial +announcement went out and what follow-up announcements are scheduled._ + +### Planned Removal Milestone + +The feature / functionality will be removed in milestone: `xx.xx` + +### Links + + + +### Checklists + +#### Timeline + +#### Communication Plan + +- DRI Product Manager: `@PM` + +An internal slack post and a release post are not sufficient notification for +our customers or internal stakeholders. Plan to communicate proactively and +directly with affected customers and the internal stakeholders supporting them. + +Internal Communication Plan + +- [ ] Internal announcement plan (timeline for notifications, audience, + channels, etc) + +External Communication Plan + +- [ ] User announcement plan (timeline for notifications, audience, channels, + etc) + - [ ] Documentation has been updated to mark the feature as `deprecated`. _Add + link to the relevant merge request._ +- [ ] On the major milestone: + - [ ] The deprecated item has been removed. _Add link to the relevant merge + request._ + - [ ] If the removal of the deprecated item is a + [breaking change](https://docs.gitlab.com/update/terminology/#breaking-change), + the merge request is labeled ~"breaking change". + - [ ] Document the migration plan for users, clearly outlining the actions + they need to take to mitigate the impact of the breaking change. + - [ ] [Add link](here) + +#### Labels + + + +/label ~group: ~"Category: + +- [ ] This issue is labeled ~deprecation, and with the relevant `~group::`, and + `~Category:` labels. +- [ ] This issue is labeled ~"breaking change" if the removal of the deprecated + item will be a + [breaking change](https://docs.gitlab.com/update/terminology/#breaking-change). + + + +/label ~"deprecation" diff --git a/.gitlab/issue_templates/Documentation.md b/.gitlab/issue_templates/Documentation.md new file mode 100644 index 0000000..cef5ca7 --- /dev/null +++ b/.gitlab/issue_templates/Documentation.md @@ -0,0 +1,44 @@ + + +- [ ] Start this issue's title with `Docs:` or `Docs feedback:`. + +## Problem to solve + + + +## Further details + + + +## Proposal + + + +## Who can address the issue + + + +## Other links/references + + + +/label ~"documentation" /label ~"docs-only" + +/label ~"type::maintenance" ~"maintenance::refactor" + +/milestone %Backlog diff --git a/.gitlab/issue_templates/Experiment Idea.md b/.gitlab/issue_templates/Experiment Idea.md new file mode 100644 index 0000000..b229e8a --- /dev/null +++ b/.gitlab/issue_templates/Experiment Idea.md @@ -0,0 +1,41 @@ +## Experiment summary + +We believe that... {describe your hypothesis in one sentence} + +To verify that, we will... {describe your test in one sentence} + +And we’ll measure the impact on... {metrics} + +## Hypothesis + + + +## Supporting data + + + +## Expected outcome + + + +## Experiment design & implementation + + + +## Known assumptions + + + +## Results, lessons learned, next steps + + + +## Checklist + +- [ ] Fill in the experiment summary and write more about the details of the + experiment in the rest of the issue description. Some of these may be + filled in through time (the "Result, learnings, next steps" section for + example) but at least the experiment summary should be filled in right + from the start. + +/label ~"workflow::validation backlog" ~"experiment idea" diff --git a/.gitlab/issue_templates/Experiment Implementation.md b/.gitlab/issue_templates/Experiment Implementation.md new file mode 100644 index 0000000..988bdca --- /dev/null +++ b/.gitlab/issue_templates/Experiment Implementation.md @@ -0,0 +1,25 @@ + + +# Experiment Summary + + + +# Design + + + +# Control vs Candidate Experience + + + +| Control | Experiment | +| ------- | ---------- | +| | | + +# Tracking Details + + + +| activity | category | action | label | +| -------- | -------- | ------ | ----- | +| | | | | diff --git a/.gitlab/issue_templates/Feature Proposal - basic.md b/.gitlab/issue_templates/Feature Proposal - basic.md new file mode 100644 index 0000000..d474f5d --- /dev/null +++ b/.gitlab/issue_templates/Feature Proposal - basic.md @@ -0,0 +1,10 @@ + + +### Proposal + + + + + +/label ~Category: /label ~"type::feature" ~"feature::addition" ~documentation diff --git a/.gitlab/issue_templates/Feature Proposal - lean.md b/.gitlab/issue_templates/Feature Proposal - lean.md new file mode 100644 index 0000000..5ea5a1b --- /dev/null +++ b/.gitlab/issue_templates/Feature Proposal - lean.md @@ -0,0 +1,17 @@ + + +### Release notes + + + +### Problem to solve + + + +### Proposal + + + +/label ~"type::feature" diff --git a/.gitlab/issue_templates/Feature proposal - detailed.md b/.gitlab/issue_templates/Feature proposal - detailed.md new file mode 100644 index 0000000..a2fbd45 --- /dev/null +++ b/.gitlab/issue_templates/Feature proposal - detailed.md @@ -0,0 +1,44 @@ + + +### Release notes + + + +### Problem to solve + + + +### User experience goal + + + +### Proposal + + + +### Further details + + + +### Documentation + + + +### Impact + + + +### Links / references + +/label ~"type::feature" diff --git a/.gitlab/issue_templates/Implementation.md b/.gitlab/issue_templates/Implementation.md new file mode 100644 index 0000000..f11b1e7 --- /dev/null +++ b/.gitlab/issue_templates/Implementation.md @@ -0,0 +1,37 @@ + + +## Relevant links + + + +## Non-functional requirements + + + +- [ ] Documentation: + +## Verification steps + + + +/label ~"workflow::refinement" /milestone %Backlog diff --git a/.gitlab/issue_templates/Refactoring.md b/.gitlab/issue_templates/Refactoring.md new file mode 100644 index 0000000..762e91c --- /dev/null +++ b/.gitlab/issue_templates/Refactoring.md @@ -0,0 +1,25 @@ +## Summary + + + +## Improvements + + + +## Risks + + + +## Involved components + + + +/label ~"type::maintenance" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..df02561 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +Dokumentation der Änderungen pro Version: + +## [v1.0.0] – 2025-05-08 + +- Erste stabile Version + +## [v0.1.0] – 2025-03-15 + +- Erstes öffentliches Release diff --git a/CITATION.md b/CITATION.md new file mode 100644 index 0000000..98c8254 --- /dev/null +++ b/CITATION.md @@ -0,0 +1,19 @@ +# Wie wird die Software zitiert? + +Nenne hier die bevorzugte Zitierweise für Publikationen oder DOI: + +```markdown +Nachname, Vorname. (Jahr). Projektname (Version X.Y.Z). DOI oder URL. +``` + +```bibtex +@software{bibtex-key, + author = {{}}, + title = {Projektname}, + url = {Projekthomepage}, + version = {version}, + date = {datum versions-release}, +} +``` + +- **Keine langen Beschreibungen**, nur den Zitierhinweis. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5ac46d6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,19 @@ +# Wie beiträgt man zum Projekt? + +Anleitung zur Mitarbeit am Projekt. + +## Bugs melden & Vorschläge + +Wie meldet man Fehler oder schlägt Features vor? + +Vorbereitet ist der Gebrauch des GitLab-Issue-Trackers zusammen mit +entsprechenden Templates, die Dinge erleichtern. + +## Code beisteuern + +Richtlinien für Codequalität und Beiträge: + +- Wie erstelle ich einen Pull Request? +- Gibt es Stilrichtlinien (z.B. PEP8 für Python)? + +- **Nicht überkomplizieren**, sondern klaren Workflow beschreiben. diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..88c2dd5 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,18 @@ +--- +date: 2025-05-14 # when was this touched last? +--- + +# Installation + +Ausführliche Schritt-für-Schritt Anleitung zur Installation. + +## Voraussetzungen + +Hier alle Abhängigkeiten (z.B. Python-Version, Pakete, externe Tools) listen. + +## Schritte zur Installation + +Detaillierte Installationsanweisungen (Code-Blöcke, Terminal-Befehle). + +- **Nicht ausführlich Grundlagen erklären**, stattdessen verlinken auf externe + Ressourcen. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec4b4ad --- /dev/null +++ b/README.md @@ -0,0 +1,161 @@ +--- +title: "" +description: | + Kurze Beschreibung (2-3 Sätze), was die Software macht und welches wissenschaftliche Problem sie löst. +lang: de +date: 2025-05-14 +authors: + - name: Your Name + affiliation: + - name: Your Institution + url: Institutions homepage + email: your@email.here + orcid: 0000-0000-0000-0000 + roles: # CRediT-Roles - see https://credit.niso.org/ + - Conceptualization + - Supervision + - Validation + # ... weitere Autor*innen +--- + +Auf Wunsch Beschreibung noch einmal wiederholen + +## Über dieses Repository + +### Ziel / Zweck + +Kurz das Ziel oder den Bedarf der Software erläutern. +(Beispiel: „Diese Software analysiert historische Textdaten, um Netzwerke +sozialer Interaktionen zu rekonstruieren.“) + +Ist die Software noch in Entwicklung? Abgeschlossen? Abgebrochen? + +### Installation + +Kurz und präzise beschreiben, wie die Software installiert wird (max. 3-5 +Schritte). + +- Verweise ggf. auf ausführliche [INSTALL.md](INSTALL.md) + +> [!warning] +> +> **Keine ausführliche Erklärung** von Standard-Tools (z.B. Python +> installieren), sondern verlinken auf offizielle Seiten + +### Nutzung + +Minimalbeispiel, wie die Software genutzt wird (kurzer Codeblock oder +Kommandozeilenaufruf mit typischem Input und Output). + +> [!warning] +> +> **Nicht zu komplexe Beispiele**, dafür ggf. auf ausführliches Tutorial (Datei +> [USAGE.md](USAGE.md) oder Verzeichnis [examples/](examples/)) verweisen + +### Bekannte Einschränkungen + +Kurz bekannte Probleme und Limitationen nennen, um Missverständnisse zu +vermeiden. + +> [!warning] +> +> **Keine** ausschweifenden technischen Details, sondern praktische Hinweise. + +### Struktur + +```plain +Übersicht der Struktur z.b. generiert mittels +`tree -L2` oder `tree -L2 -d` +und anschließend überarbeitet +``` + +- Kurze Beschreibung - entweder direkt im Tree oder hier in Prosa +- Ziel: Überblick über "Wo finde ich was". Wo ist Doku? Wo ist Code? Wo ist ...? + +> [!warning] +> +> **Keine Details**, die über 1 Satz pro Element hinaus gehen. Bei detailliertem +> Bedarf `README.md` im jeweiligen Verzeichnis. + +## Meta-Informationen + +### Verantwortlichkeiten + +- Wer ist letztendlich verantwortlich für den Inhalt? +- Wer genehmigt/weist Inhalte ab? + +### Wissenschaftlicher Hintergrund + +Kurze Erklärung der wissenschaftlichen Grundlage (Methode, theoretischer Ansatz) +und Referenzen auf Publikationen oder Quellen. + +> [!warning] +> +> **Keine ausführliche Theorie**, diese gehört in Paper oder eigene Datei +> ([BACKGROUND.md](BACKGROUND.md)) + +### Lizenz & Zitation + +Kurz auf Lizenz verweisen (z.B. „siehe LICENSE“) und erklären, wie das Projekt +zu zitieren ist (z.B. DOI oder Verweis auf [CITATION.md](CITATION.md)). + +--- + +## Empfohlene Dokumentations-Dateien + +| **Dokuelement** | **Inhalt/Purpose** | **Format/Ort** | **Umfang** | +| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ------------------------------------- | +| **README (Hauptdoku)** | Zweck der Software; Kurzbeschreibung; Installationsanleitung; einfaches Nutzungsbeispiel; Lizenz- und Kontaktinfo | Markdown im Root des Repos (statisch versioniert) | 1–2 Seiten | +| **Eingabe/Ausgabe-Guide** | Beschreibung der erwarteten Inputs (Datenformat, Parameter) und generierten Outputs (Dateien, Berichte) inkl. Beispielen | Teil der README oder separate Datei (z.B. USAGE.md) | 1 Seite (mit Beispielen) | +| **Wissenschaftlicher Hintergrund** | Erläuterung der Methode, Theorie, Algorithmen; Verweise auf Literatur | README-Abschnitt "Hintergrund" oder separate Doku (BACKGROUND.md) | 0.5–1 Seite (plus Referenzen) | +| **Bekannte Limitationen** | Auflistung von Einschränkungen, Annahmen, bekannten Problemen; ggf. Workarounds | README-Abschnitt "Limitations" oder FAQ.md | 0.5 Seite | +| **Beispiel-Workflow (Tutorial)** | Schritt-für-Schritt Anleitung mit einem realistischen Anwendungsfall (ggf. mit Code und Screenshot) | Jupyter Notebook (`.ipynb`) im Repo `examples/` Ordner oder Markdown in docs/ | 1–3 Seiten / entsprechend Zellen | +| **API-Referenz** | Technische Dokumentation von Funktionen/Klassen für Entwickler\*innen | Automatisch generiert aus Docstrings (z.B. Sphinx in `docs/` Ordner, HTML/PDF Ausgabe) | Je nach Codegröße (ggf. umfangreich) | +| **CONTRIBUTING** | Anleitung für Beitragswillige: Code Style, Workflow, Tests, Kontakt | CONTRIBUTING.md im Repo | 0.5–1 Seite | +| **LICENSE** / **CITATION** | Rechtliche Infos (Lizenztext); Zitationsleitfaden (Bevorzugte Zitierweise, DOI) | Jeweils eigene Datei im Repo (Plain Text/Markdown) | Kurz (Standardtext bzw. Referenz) | +| **Release-Information** | Versionshinweise, Änderungsprotokoll (Changelog) | CHANGELOG.md oder Releases auf GitHub | fortlaufend pro Version (Stichpunkte) | + +## Checklist + +Es ist eine gute Idee die sich ändernden Punkte in ein Release-Template zu +kopieren. + +- [ ] **Zielklärung:** Ist der Zweck der Software klar benannt und der + wissenschaftliche _Need_ begründet? (Falls nein, ergänzen: _Warum + existiert dieses Tool?_) +- [ ] **Installation & Voraussetzungen:** Sind alle Schritte, um die Software + lauffähig zu machen, dokumentiert (inkl. Dependencies, evtl. mit + Installationsbefehlen)? Ist ersichtlich, welche Umgebung nötig ist (OS, + Hardware)? +- [ ] **Grundlegende Nutzung:** Gibt es eine Anleitung oder Beispiele, wie man + die Software verwendet (Eingabe -> Ausgaben)? Ist mindestens ein typischer + Workflow beschrieben, idealerweise mit Beispielinput und -output? +- [ ] **Optionen & Schnittstellen:** Falls relevant – sind alle wichtigen + Funktionen, Befehlsoptionen oder API-Methoden dokumentiert? (Nicht + unbedingt jede intern, aber alles, was ein Nutzer aufrufen könnte). Für + APIs: Sind Parameter und Rückgaben erläutert? +- [ ] **Validierung & Einschränkungen:** Werden Annahmen und Grenzen der + Software genannt? Weiß ein*e Nutzer*in, welche Fälle nicht abgedeckt sind + oder worauf zu achten ist (z. B. Datenqualität, maximale Größen)? + Transparenz hier verhindert Frustration. +- [ ] **Hintergrund & Referenzen:** Sind die wichtigsten konzeptionellen + Hintergründe oder Referenzen angegeben? (Z. B. theoretische Grundlagen, + Algorithmen, Literaturverweise). Das muss kein Essay sein, aber ein paar + Sätze + Referenzen schaffen Vertrauen in die wissenschaftliche Fundierung. +- [ ] **Kontakt & Weiterführung:** Ist angegeben, wie man Hilfe bekommt oder + Fehler melden kann (Issue-Tracker, E-Mail)? Gibt es Hinweise für Beiträge + (falls erwünscht) oder zumindest die Information, wer die Autor\*innen + sind? +- [ ] **Rechtliches & Zitation:** Liegt die Lizenz bei und wird sie genannt? + Sind Infos zum Zitieren der Software vorhanden (z. B. “Bitte zitieren Sie + DOI XYZ”)? Das stellt sicher, dass die Software nachnutzbar _und_ + akademisch kreditiert wird. +- [ ] **Aktualität & Version:** Entspricht die Dokumentation der aktuellen + Softwareversion? (Check: Versionsnummern, Datumsangaben). Veraltete Doku + kann schlimmer sein als keine – planen Sie also ein, die Doku mit jedem + Release kurz zu überprüfen. +- [ ] **Konsistenz & Stil:** Wird ein einheitlicher Ton und Stil durchgehalten? + (z. B. durchgehende Verwendung gleicher Begriffe für Konzepte, Sprache + entweder Deutsch oder Englisch einheitlich je nach Zielgruppe). Kleinliche + Fehler (Tippfehler, kaputte Links) sind auszumerzen, da sie Nutzer + abschrecken. diff --git a/USAGE.md b/USAGE.md new file mode 100644 index 0000000..bf854d8 --- /dev/null +++ b/USAGE.md @@ -0,0 +1,19 @@ +--- +title: "Nutzung der Software" +date: 2025-05-14 # zuletzt angepasst +version: v1.0 # Auf welche Version bezieht sich dies? +--- + +Ausführliche Beschreibung typischer Workflows oder Beispielanwendungen. + +## Beispiele + +Detaillierte Schritt-für-Schritt-Anleitungen mit Inputs und Outputs. +Evtl. Screenshots oder Abbildungen zur besseren Verständlichkeit. + +- **Keine zu detaillierten technischen Details**, Fokus auf realistische + Anwendungsfälle. + +## FAQs (optional) + +Häufig auftretende Fragen zur Nutzung kurz und prägnant beantworten. diff --git a/src/.gitkeep b/src/.gitkeep new file mode 100644 index 0000000..e69de29