Overhaul maintenance.md v2: data-driven folder mapping with upstream parity - #14
Overhaul maintenance.md v2: data-driven folder mapping with upstream parity#14marvimarv wants to merge 6 commits into
Conversation
…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>
rfalkenstein
left a comment
There was a problem hiding this comment.
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. | |||
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Solution: I will delete Testers.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
So should I add or remove?
|
|
||
| [//]: # (BEGIN Accordion) | ||
|
|
||
| #### [Accordion](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Accordion) |
There was a problem hiding this comment.
This might belong to akill since this is in the content style
|
|
||
| **Status:** Unmaintained / NONE | ||
|
|
||
| *Belongs to:* Accordion |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
The naming of mjansen is not consistent. (imo we can ignore this though)
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
wouldn't this also belong to the UI/UI-Service people?
|
|
||
| **Status:** Unmaintained / NONE | ||
|
|
||
| *Belongs to:* UIComponent |
There was a problem hiding this comment.
Maybe UI Kitchen Sink: https://docu.ilias.de/go/wiki/wpage_3852_1357 ?
| * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') | ||
| #### [UICore](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UICore) | ||
|
|
||
| *Belongs to:* UICore |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
…ach) - AuthSOAP: remove PerPascalSeeland, now mjansen + thojou (confirmed) - OpenIdConnect: smeyer -> mjansen + thojou (confirmed, smeyer in CC) - Cache -> fschmid (Belongs to: Global Cache) - FileDelivery, FileServices -> fschmid (Belongs to: File) - soap -> minervis team, analog to WebServices entry - VirusScanner: rschenk declined -> Unmaintained / NONE - ILIASObject: fix username fawinike -> skergomard (usr 44474) - Upstream sync: mhomann-tf (PR 11640), thojou as ECS code authority for 8 Remote* folders (PR 11719), handle rename tjoussen -> thojou (afde68d) - Init: map to Initialisation Service block (mjansen, tfuhrer, fschmid) instead of Login/Auth group - Remove all Tester lines incl. intro bullet (TB decision) - Add missing Feature Wiki links (BackgroundTasks, xAPI, ContentPage, FileUpload, GlobalScreen, Group, IndividualAssessment, Taxonomy) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- format_folder_section no longer emits the Tester line; _clean_intro strips the Tester field explanation instead of inserting it (TB decision July 2026) - component_aliases.json: Init now resolves to the InitialisationService block instead of the Login/Auth display group, so tfuhrer/fschmid code authorities are preserved Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Status update (2026-07-29): TB-confirmed changes appliedAll decisions from the July outreach round are now in (commits 4a102fd + a919a40): Authority updates (confirmed by the maintainers)
Upstream sync
Structure
Open items (TB discussion)
Update 2026-07-30 (fcacb20): TB meeting decisions applied — authority entries are now documented as |
The Html component is the HTML-Purifier service (XSS input sanitization, ilHtmlPurifier*). The Forum assignment was historical (purifier introduced for forum postings); as a cross-cutting sanitization service it belongs to the Security category in the Feature Wiki. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Document authority entries as [<github-username>](<link-to-docu-profile>) in 'How Authority Assignments are Stored' (all six fields) - Drop 'Unit-specific Guidelines, Rules, and Regulations' entirely (intro bullet + Style/UI/UICore lines); generator no longer emits it - Remove Context and setup_ blocks (folders no longer exist in upstream trunk) - Http_, UI_, VirusScanner stay listed as Unmaintained / NONE Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…7-30) Both were marked as removable by the Technical Board: - SystemFolder contained nothing but a ROADMAP.md - Cloud contained only its component bootstrap and the RemoveCloudDBUpdate setup migration (drops leftover cloud DB tables on update). NOTE for review: removing the component also removes this migration - to be confirmed that all supported update paths have already shipped it. Http_, UI_ and KioskMode_ intentionally stay (Unmaintained per TB decision; KioskMode_ merge is being handled by Kroepelin Projekte). Multilingualism and BackgroundTasks_ await maintainer replies. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Summary
Re-do of the maintenance.md restructuring previously proposed in PR #10, fixing three issues found there:
maintenance.jsonfor folders whose canonical MD block lives under a different name (Test → TestAndAssessment, all Category/Container → CategoryAndRepository, all Remote* → ECSInterface, …). Authority updates in the upstreammaintenance.mdwere 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.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.Validation
For every folder in
components/ILIAS/, the script's output was diffed against the authoritativeupstream/trunk:docs/development/maintenance.md:Usage
Test plan
upstream/trunk:docs/development/maintenance.md(done block-by-block during the July verification runs; e.g.Test,CSSAndTemplates,LDAP,RemoteWiki, KioskMode, Metadata).maintenance.mdcommits through afde68d (28.07.) — mhomann-tf (Additional code authority for bib items, org units and study programme ILIAS-eLearning/ILIAS#11640), thojou as ECS authority (Add Thomas Joußen as additional Authority to Sign off on Code Changes ILIAS-eLearning/ILIAS#11719) and the tjoussen→thojou handle rename are applied.python3 scripts/maintenance-overhaul/test_maintenance_md.py(passes; last run 30.07. after the TB-decision commits).Note: the generator script is one-time migration tooling. After this PR is merged,
docs/development/maintenance.mdis maintained directly again, so no idempotence re-run is planned. Structural comparison with PR #10 is obsolete (closed as superseded).