Skip to content

Overhaul maintenance.md v2: data-driven folder mapping with upstream parity#14

Open
marvimarv wants to merge 1 commit into
trunkfrom
maintenance-overhaul-v2
Open

Overhaul maintenance.md v2: data-driven folder mapping with upstream parity#14
marvimarv wants to merge 1 commit into
trunkfrom
maintenance-overhaul-v2

Conversation

@marvimarv
Copy link
Copy Markdown
Owner

@marvimarv marvimarv commented May 19, 2026

Summary

Re-do of the maintenance.md restructuring previously proposed in PR #10, fixing three issues found there:

  • Authority drift fixed: PR Overhaul maintenance.md: flat alphabetical listing by component folder #10 fell back to maintenance.json for folders whose canonical MD block lives under a different name (Test → TestAndAssessment, all Category/Container → CategoryAndRepository, all Remote* → ECSInterface, …). Authority updates in the upstream maintenance.md were therefore silently lost. The new script resolves folder→MD block via a canonical-name index, so PR #11546 (mbecker out of T&A code authority), the new TB member Maximilian Becker, and the alinaseibt update to CSS/Templates are all reflected.
  • No more hardcoded mapping tables: PR Overhaul maintenance.md: flat alphabetical listing by component folder #10 carried three parallel hand-maintained Python dicts (MD_COMMENT_TO_FOLDERS, FOLDER_TO_COMPONENT, FOLDER_TO_ILIAS_COMPONENT) which drifted and silently dropped 10 entries. The new script derives the mapping from data with one small explicit aliases file (component_aliases.json) for ~5 JSON typos and 4 plural/reference folder names.
  • Wiki-group consolidation: Folders that the Feature Wiki groups under one component (Login/Auth/Registration → 7 folders, ECS Interface → 8 RemoteX folders, Privacy/ToS/DP → 3 folders, …) now share a single Belongs-To line with the canonical Wiki name and link.

Validation

For every folder in components/ILIAS/, the script's output was diffed against the authoritative upstream/trunk:docs/development/maintenance.md:

Count
Folders with exact upstream MD parity 137
Folders without MD block (JSON-Fallback or NONE/Unmaintained as designed) 43
Tester field via JSON-Fallback (MD has no Tester) 93
Unintended deviations 0

Usage

# pull the latest upstream maintenance.md and regenerate
python3 scripts/maintenance-overhaul/generate_maintenance_final.py --sync

# non-interactive (CI)
python3 scripts/maintenance-overhaul/generate_maintenance_final.py --non-interactive

# verbose match logging
python3 scripts/maintenance-overhaul/generate_maintenance_final.py -v

Test plan

  • Compare the rendered docs/development/maintenance.md side-by-side with PR #10's version to confirm the structural look matches.
  • Spot-check Authority blocks against upstream/trunk:docs/development/maintenance.md (e.g. Test, CSSAndTemplates consumers, LDAP, RemoteWiki).
  • Re-run the script with --sync after a fresh upstream/trunk pull and verify idempotence.
  • Run python3 scripts/maintenance-overhaul/test_maintenance_md.py.

…parity

Re-do of the maintenance.md restructuring previously proposed in PR #10.
Adresses three issues found in PR #10:

1. **Authority drift**: PR #10 fell back to maintenance.json for several
   folders whose authoritative MD block lives under a different name
   (Test, TestQuestionPool, all Category/Container, all Remote*, etc.).
   Authority changes in the canonical maintenance.md were therefore
   silently lost. The new script resolves folder -> MD block via a
   canonical-name index, so PR ILIAS-eLearning#11546 (mbecker out of T&A code authority),
   the new TB member Maximilian Becker, and the alinaseibt update to CSS
   / Templates are all reflected.

2. **Hardcoded mapping tables**: PR #10 carried three parallel hand-
   maintained dicts (MD_COMMENT_TO_FOLDERS, FOLDER_TO_COMPONENT,
   FOLDER_TO_ILIAS_COMPONENT). They drifted and 10 entries were silently
   ignored. The new script derives the mapping from data:
   - canonical match of folder name against MD comment/title/aka, then
   - JSON `belong_to_component` against the same index, then
   - small explicit alias file (`component_aliases.json`).

3. **Display-Groups**: Folders that the Feature Wiki groups under one
   component (e.g. Login/Auth/Registration, ECS Interface, Privacy/ToS/DP)
   now share a single Belongs-To line with the canonical Wiki name and
   link, instead of each pointing to its narrower MD block title.

Validated: 137 folders match the upstream MD authority block bit-for-bit;
43 folders without an MD block fall through to maintenance.json or
NONE/Unmaintained as designed; 0 unintended deviations.

Usage:
  python3 scripts/maintenance-overhaul/generate_maintenance_final.py --sync

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@rfalkenstein rfalkenstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @marvimarv ,

thanks for this huge amount of work. I would propose the following:

  • Please remove the tester lines
  • We should discuss if we remove the unit-specific guidelines lines + the explanation of it above
  • every TB member should check the comments and add his/her knowledge about these.

Maybe check until next tuesday?

@@ -161,6 +161,8 @@ of ILIAS. The file contains the following fields:
* **"Authority to (De-)Assign Authorities"**:
An array in the form [ `<username> (<userid>), <company> (<company_page>)` ]
pointing to valid users on https://docu.ilias.de.

* **"Tester"**: An array in the form [ `<username> (<userid>), <company> (<company_page>)` ] pointing to valid users on https://docu.ilias.de.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this re-introduced? I don't fully remember but I think the decision was that the testers are internally curated by the test manager.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solution: I will delete Testers.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The information about the unit-specific guidelines, rules and regulations was abandoned in the authorities part but not here. We should delete line 172-174, too.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was only abandoned in your version but not in trunk for the authorities?
-> https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/docs/development/maintenance.md

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So should I add or remove?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let us discuss this with TB


[//]: # (BEGIN Accordion)

#### [Accordion](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Accordion)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might belong to akill since this is in the content style


**Status:** Unmaintained / NONE

*Belongs to:* Accordion
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this information for? Do we try to be consistent between all components? This is kind of redundant. But probably it's best to leave it as is.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had another thought about this: I think it's good to leave it since this allows us to query information from the docu wiki in this document.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So no To-Do for me here

* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [tjoussen](https://docu.ilias.de/go/usr/103745)
* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784)
* Tester: [vimotion](https://docu.ilias.de/go/usr/25105)
* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The naming of mjansen is not consistent. (imo we can ignore this though)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be consistent since the enterprise is only named in the meta-authority.

* Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('')
#### [Taxonomy](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Taxonomy)

*Belongs to:* Taxonomy
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should belong to the taxonomy service: https://docu.ilias.de/go/wiki/wpage_2304_1357


#### [UI_](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UI_)

**Status:** Unmaintained / NONE
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't this also belong to the UI/UI-Service people?


**Status:** Unmaintained / NONE

*Belongs to:* UIComponent
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('')
#### [UICore](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UICore)

*Belongs to:* UICore
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does anyone knows where/if there are feature requests regarding this code?

* Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('')
#### [VirusScanner](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/VirusScanner)

*Belongs to:* Virus Scanner
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mjansen and mbecker: Is still still maintained? Could this belong to the "File" category in the feature wiki? https://docu.ilias.de/go/wiki/wpage_4_1357

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still maintained by Ralf Schenk. I contact Ralf some months ago and asked if we should transfer the authorities, but I did not receive any feedback, yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants