Skip to content

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

Open
marvimarv wants to merge 6 commits into
trunkfrom
maintenance-overhaul-v2
Open

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

Conversation

@marvimarv

@marvimarv marvimarv commented May 19, 2026

Copy link
Copy Markdown
Owner

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

# regenerate (authority source: docs/development/maintenance_trunk.md,
# --branch sets the branch used in GitHub component links)
python3 scripts/maintenance-overhaul/generate_maintenance_final.py --branch trunk

# additionally refresh the Feature-Wiki wpage-ID index first
python3 scripts/maintenance-overhaul/generate_maintenance_final.py --branch trunk --refresh-wiki-links

Test plan

Note: the generator script is one-time migration tooling. After this PR is merged, docs/development/maintenance.md is maintained directly again, so no idempotence re-run is planned. Structural comparison with PR #10 is obsolete (closed as superseded).

…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 rfalkenstein left a comment

Copy link
Copy Markdown

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?

Comment thread docs/development/maintenance.md Outdated
@@ -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.

Comment thread docs/development/maintenance.md Outdated

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.

Comment thread docs/development/maintenance.md Outdated
* 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.

marvimarv and others added 2 commits July 29, 2026 12:51
…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>
@marvimarv

marvimarv commented Jul 29, 2026

Copy link
Copy Markdown
Owner Author

Status update (2026-07-29): TB-confirmed changes applied

All decisions from the July outreach round are now in (commits 4a102fd + a919a40):

Authority updates (confirmed by the maintainers)

  • AuthSOAP: PerPascalSeeland removed → mjansen + thojou
  • OpenIdConnect: smeyer → mjansen + thojou (smeyer was in CC, no objection)
  • Cache → fschmid (Belongs to: Global Cache)
  • FileDelivery, FileServices → fschmid (Belongs to: File)
  • soap → minervis team (githamo/sKarki999, De-Assign: TimoScheuer), analog to WebServices
  • VirusScanner: rschenk declined → now Unmaintained / NONE
  • ILIASObject: username fixed fawinike → skergomard (usr 44474)
  • Accordion, JavaScript, UIComponent: stay Unmaintained (confirmed — no takers; UIComponent is legacy UI to be removed with the LUI project)

Upstream sync

  • mhomann-tf added to Bibliographic (Code + Test Cases), OrgUnit (Code), StudyProgramme + StudyProgrammeReference (Code + Test Cases) — PR #11640
  • thojou added as ECS code authority for the 8 Remote* folders — PR #11719
  • GitHub handle updated tjoussen → thojou everywhere (afde68d)

Structure

  • All Tester lines removed (incl. intro bullet), generator no longer emits them
  • Init now maps to the "Init (aka Initialisation Service)" block (mjansen, tfuhrer, fschmid) instead of the Login/Auth group
  • Missing Feature Wiki links added (BackgroundTasks, xAPI, ContentPage, FileUpload→File, GlobalScreen, Group, IndividualAssessment, Taxonomy)

Open items (TB discussion)

  1. Unit-specific Guidelines resolved (fcacb20): TB decided 30.07. to drop the field entirely — intro bullet and all per-component lines removed, generator no longer emits it
  2. Html: correct Feature Wiki category resolved (d07edc1): now assigned to Security (incl. Web Access Checker) — the component is the HTML-Purifier service (XSS sanitization); the Forum link was historical (belong_to_component in maintenance.json)
  3. Multilingualism resolved (reply from Kröpelin Projekte, 31.07.): they will move the remaining content into Language, expected around September (vacation season) — they will notify us when the folder can be dissolved. Until then the folder stays listed as Unmaintained; the TB removes it afterwards. No blocker for this PR.
  4. Http_ resolved: TB decision 30.07. — stays listed as Unmaintained / NONE; folder removal happens with the TB cleanup PR (item 7)
  5. UI_ resolved: TB decision 30.07. — stays listed as Unmaintained / NONE; folder removal happens with the TB cleanup PR (item 7)
  6. BackgroundTasks_: merge/approval from thojou not yet documented → following up
  7. TB cleanup — partially done (db74971): Cloud and SystemFolder removed (folders + maintenance.md blocks). Reviewer note: removing Cloud also removes the RemoveCloudDBUpdate setup migration — please confirm all supported update paths have shipped it. Still pending: BackgroundTasks_ (awaiting thojou's approval); Multilingualism follows ~September once Kröpelin has moved the content to Language; Http_ and UI_ stay listed as Unmaintained per TB decision; KioskMode_ merge is handled by Kröpelin Projekte
  8. Context folder resolved (fcacb20): block removed from maintenance.md (folder no longer exists upstream and stays removed per TB decision)
  9. VirusScanner follow-up resolved: TB decision 30.07. — component stays Unmaintained / NONE

Update 2026-07-30 (fcacb20): TB meeting decisions applied — authority entries are now documented as [<github-username>](<link-to-docu-profile>) in How Authority Assignments are Stored, the Unit-specific-Guidelines field is gone entirely, Context/setup_ blocks removed, Http_/UI_/VirusScanner confirmed Unmaintained. Remaining open: cleanup PR (item 7), Multilingualism + BackgroundTasks_ replies (items 3/6).

Repository owner deleted a comment from cursor Bot Jul 29, 2026
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>
Repository owner deleted a comment from cursor Bot Jul 29, 2026
marvimarv and others added 2 commits July 29, 2026 14:10
- 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>
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