Resolve MDT GIT publishing / redirects
The long discussion in #3484 (closed) (Missing mdt ocl redirects) started as an mdt ocl problem that was 'fixed' but revealed mdt modisco problems caused by stomping. The long discussion addressed long term de-containerisation and medium term GIT merging.
This issue is focussed solely on identifying what is wrong today and fixing it easily. Please avoid the red herrings.
The final two paragraphs provide the solution if you feel confident in skipping the description of the historic mess.
Historically, prior to 2012, the following accesses
- www.eclipse.org/modeling/x was serviced from /cvsroot/modeling/x
- www.eclipse.org/modeling/mdt/y was serviced from /cvsroot/modeling/mdt/y
- www.eclipse.org/modeling/mdt/ocl/z was serviced fromn /cvsroot/modeling/mdt/ocl/z
- www.eclipse.org/modeling/mdt/uml2/z was serviced fromn /cvsroot/modeling/mdt/uml2/z
/cvsroot was a flat monolith with file protections isolating unauthorised committers.
I understand that some publishing rule, such as a poll CVS for changes every 15 minutes refreshed a monolithic www tree from cvsroot.
The first GITification in 2012 changed the mapping so that ideally
- www.eclipse.org/modeling/x was serviced from modeling/x in www.eclipse.org/modeling.git
- www.eclipse.org/modeling/mdt/y was serviced from mdt/y in www.eclipse.org/modeling/mdt.git
- www.eclipse.org/modeling/mdt/ocl/z was serviced from ocl/z in www.eclipse.org/modeling/mdt/ocl.git
- www.eclipse.org/modeling/mdt/uml2/z was serviced from uml2/z in www.eclipse.org/modeling/mdt/uml2.git
I suspect that once again some polling rule refreshed a monolithic www tree from a GIT change.
Unfortunately the content for www.eclipse.org/modeling/mdt/y is also available from modeling/mdt/y in www.eclipse.org/modeling.git. There is therefore an ambiguity as to where www.eclipse.org/modeling/mdt/y should be edited and an opportunity for divergence. Unfortunately the creators of the ambiguity, presumably the webmasters, neglected to ensure that the modeling.git committers deleted the material 'moved' to mdt.git. (This could still be done now, but may conflict with longer term tidy ups.)
Fortunately the very low edit rate and restrictive committer authorisations mean that no edits have occurred to from modeling/mdt/y since gitification. Only 10 files have evolved and 10 files been created in mdt.git (10 files have also been deleted and moved to ocl-website.git). ocl.git and uml2.git were never used.
Introduction of eclipse.dev behind www.eclipse.org introduced a complexity that I do not understand. I presume there are some redirect rules, which I am unable to review. Since these were apparently tweaked to 'fix' #3484 (closed) I suspect that they are non-trivial and wrong.
The current reGITification changes the mapping to
- www.eclipse.org/modeling/x is serviced from modeling/x in www.eclipse.org/modeling.git
- www.eclipse.org/modeling/mdt/y is serviced from mdt/y in github.com:eclipse-mdt/mdt-website.git
- www.eclipse.org/modeling/mdt/ocl/z is serviced fromn ocl/z in github.com:eclipse-ocl/ocl-website.git
- www.eclipse.org/modeling/mdt/uml2/z is serviced fromn uml2/z in www.eclipse.org/modeling/mdt/uml2.git
The mix of new and old style GITs presumably requires complexity in the publishing / redirect rules that can explain why the 2012 version of modeling/mdt/downloads/index.php is being published from www.eclipse.org/modeling.git rather than my MoDisco-supporting 2019 edit of mdt/downloads/index.php from github.com:eclipse-mdt/mdt-website.git
Since I cannot see what is happening internally I offer two simple solutions depenbent on what I cannot see.
If the problem is in polled GIT publishing rules
- republish all from GIT bottom-up. i.e. modeling then mdt then ocl so that most contained wins.
- or touch all changed files in mdt.git so that re-polling stomps on modeling.git
If the problem is in the redirect rules
- ensure that the rules are prioritised so that ocl redirects before mdt before modeling.