I've added a new "project-data-plugin.rb" to "pre-process" the project data - it creates a new list of hashes (easier to process) and adds the "project_id" as an attribute and sets values if they are not specifically set (name, fullname, domain etc):
https://github.com/niallkp/attic-jekyll-site/blob/main/_plugins/project-data-plugin.rb For example, the nasty hack to sort the project list is gone and now using the standard liquid "natural sort" on project names (rather than project_id): https://github.com/niallkp/attic-jekyll-site/blob/main/_includes/project-list.html Also, duplicated logic for things like project_name and sorting is gone from the tracking page, making it simpler: https://github.com/niallkp/attic-jekyll-site/blob/main/tracking.md?plain=1 Niall On Mon, 21 Apr 2025 at 12:45, Niall Pemberton <niall.pember...@gmail.com> wrote: > On Mon, 21 Apr 2025 at 09:24, sebb <seb...@gmail.com> wrote: > >> On Sun, 20 Apr 2025 at 18:36, Niall Pemberton <niall.pember...@gmail.com> >> wrote: >> > >> > On Sun, 20 Apr 2025 at 17:51, Niall Pemberton < >> niall.pember...@gmail.com> >> > wrote: >> > >> > > >> > > >> > > On Sun, 20 Apr 2025 at 09:44, sebb <seb...@gmail.com> wrote: >> > > >> > >> On Sun, 20 Apr 2025 at 01:10, Niall Pemberton < >> niall.pember...@gmail.com> >> > >> wrote: >> > >> > >> > >> > Hi, >> > >> > >> > >> > I have created a PoC to move the current Attic site generation from >> > >> XDOC & >> > >> > Forrest to Markdown & Jekyll: >> > >> > https://github.com/niallkp/attic-jekyll-site >> > >> > >> > >> > Each project has a YAML file with details about it and its >> retirement >> > >> and >> > >> > that drives everything: >> > >> > - generates a project page >> > >> > - updates the Process Tracking Page >> > >> > - updates the menu/list of projects in the Attic >> > >> > - Generates the "flag" files for the Attic Banner on the site & >> Wiki >> > >> > >> > >> > At the moment it is pretty much functionally complete, but I've >> put a >> > >> TODO >> > >> > list in the README.md or the project: >> > >> > >> https://github.com/niallkp/attic-jekyll-site/blob/main/README.md >> > >> > >> > >> > Thoughts/feedback welcome >> > >> >> > >> Looks good, and could be worth pursuing, but there are some missing >> > >> features that are essential for a full evaluation. >> > >> >> > >> There needs to be an action to generate the output so it can be >> checked. >> > >> Ideally so the site can be viewed directly. >> > >> >> > > >> > > I have manually published the generated site here for now, so you can >> have >> > > a look: >> > > https://niallkp.github.io/ >> > > >> >> Thanks, very useful. >> >> > There were no "In Progress" projects (i.e. project's whose move to >> Attic is >> > not complete), so I've just added the data files for Gora & Mnemonic. >> >> I see you have also added ODE, which has non-standard CWiki names; useful. >> > > I need to double check, but I think I've added all the project data files > except the two "revived" projects (Ambari & XMLBeans?). > > >> > The main bits of the site are generated from the project data files. >> Just >> > to highlight a few of the generated pages: >> > - The Tracking page: https://niallkp.github.io/tracking.html >> > - Project Pages e.g. Gora >> https://niallkp.github.io/projects/gora.html >> > - The list of projects on each page >> > - The site flag files are generated in "/flagged/site": e.g. >> > https://niallkp.github.io/flagged/site/any23.txt >> >> These don't need any content; also at present Puppet expects directories. >> >> > - The cwiki flag files are generated in "/flagged/site": e.g. >> > https://niallkp.github.io/flagged/cwiki/mnemonic.txt >> >> The contents are fine, but they cannot be accessed from there by Puppet. >> > > OK, I just threw something in as a PoC, but happy to polish the fine > detail. I'll take a look at getting it to replicate whats currently done - > but it might not be for a few days. > > > >> > Projects that are "in progress" also have a link to a "templates" page, >> so >> > for example, here is Gora's Template page: >> > - https://niallkp.github.io/templates/gora.html >> > The "template" page has text for creating the JIRA and sending out the >> user >> > & announcement emails. >> >> That's very useful. >> If possible, add buttons to copy the content to the clipboard? >> i.e. as per process.md >> > > Good idea, I'll add this to the todo list > > >> > Obviously the "Look & Feel" is crap. Its using the default "Minima" >> theme >> > from Jekyll. We can chose a different theme or try to re-create the L&F >> of >> > the existing site >> >> `The tracking.md page seems a bit out of place: it looks more like a >> template. >> > > We could move the table generation part into an html include (don't think > markdown files can be includes or templates, but maybe I'm wrong) - but > there wouldn't be much else in tracking.md then, just the page elements you > mention below. > > >> Also missing are the required page elements (under 'Related Apache >> links' on the current site) and some Attic links (see 'The Apache >> Attic') >> > > +1, todo > > >> And there needs to be a way to create the initial project.yaml files. >> The current site has a Python script to do this; it just requires the >> project name. >> > > Good idea, I'll add this to the todo list > > >> > Niall >> > >> > >> > >> > > >> > > Niall >> > > >> > > >> > > >> > >> >> > >> It looks like the CWKI flags are generated as part of the website. >> > >> However, the Confluence webserver host does not have access to the >> > >> Attic website (unlike the TLP server, which hosts Attic as well as >> the >> > >> retired sites). >> > >> >> > >> I don't think it makes sense to checkout the entire Attic website on >> > >> the Confluence server merely to get access to the flag files. >> > >> Probably need to use a separate GHA to generate the required files in >> > >> a separate branch. >> > >> (AFAICT, Git does not support checkout of a sub-directory, at least >> > >> not in a way that can be used by Puppet config) >> > >> >> > >> There are some Python scripts in the existing codebase that need to >> be >> > >> converted to use the new format. >> > >> Probably only retire.py needs significant work. >> > >> >> > >> Minor nit: the plugin files say that the flagged files are used by a >> > >> Lua filter to decide whether to add the banner. >> > >> That is not the case; the httpd config extracts the project name from >> > >> the request, and checks to see if there is a flag file with that >> name. >> > >> If so, the Lua filter is applied to the output. >> > > need to remember to update this as well > > Niall > > >> > >> >> > >> > Thanks >> > >> > >> > >> > Niall >> > >> >> > > >> >