haskell / haskell-wiki-configuration

Issue tracking for Haskell Wiki
https://wiki.haskell.org/
4 stars 4 forks source link

Searches pages are missing a lot of styling #37

Open SamB opened 1 year ago

SamB commented 1 year ago

For example, https://wiki.haskell.org/index.php?search=parser&title=Special%3ASearch&go=Go looks pretty unstyled; if you use https://wiki.haskell.org/index.php?search=parser&debug=true&title=Special%3ASearch&go=Go instead, you get styles but there MediaWiki style/script modules that fail to load, specifically (at this moment):

https://wiki.haskell.org/load.php?debug=true&lang=en&modules=oojs-ui.styles.icons-alerts&only=styles&skin=hawiki https://wiki.haskell.org/load.php?debug=true&lang=en&modules=oojs-ui.styles.icons-content&only=styles&skin=hawiki https://wiki.haskell.org/load.php?debug=true&lang=en&modules=oojs-ui.styles.icons-interactions&only=styles&skin=hawiki https://wiki.haskell.org/load.php?debug=true&lang=en&modules=oojs-ui.styles.indicators&only=styles&skin=hawiki https://wiki.haskell.org/load.php?debug=true&lang=en&modules=jquery.accessKeyLabel%2CcheckboxShiftClick%2Cclient%2CgetAttrs%2ChighlightText%2Cmw-jump%2Csuggestions%2CtabIndex%2Cthrottle-debounce%7Cmediawiki.RegExp%2CString%2CTitle%2Capi%2Ccldr%2Clanguage%2Cnotify%2CsearchSuggest%2Cstorage%2Cuser%2Cutil%2Cwidgets%7Cmediawiki.api.user%7Cmediawiki.language.data%2Cinit%7Cmediawiki.libs.pluralruleparser%7Cmediawiki.page.ready%2Cstartup%7Cmediawiki.special.search%7Cmediawiki.widgets.SearchInputWidget%7Coojs%2Coojs-ui-core%2Coojs-ui-widgets%7Coojs-ui.styles.icons-editing-advanced%2Cicons-moderation%2Cicons-movement%7Cskins.hawiki.js%7Cuser.defaults&skin=hawiki&version=0yzm1ir

and they give an error page looking something like:

[eac8b542260cf8e6d59b9429] /load.php?debug=true&lang=en&modules=oojs-ui.styles.icons-alerts&only=styles&skin=hawiki Error from line 292 of /usr/share/mediawiki/includes/resourceloader/ResourceLoaderImage.php: Class 'DomDocument' not found

Backtrace:

#0 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderImage.php(251): ResourceLoaderImage->variantize(array, ResourceLoaderContext)
#1 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderImage.php(213): ResourceLoaderImage->getImageData(ResourceLoaderContext, string, string)
#2 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderImageModule.php(362): ResourceLoaderImage->getDataUri(ResourceLoaderContext, string, string)
#3 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderImageModule.php(332): ResourceLoaderImageModule->getStyleDeclarations(ResourceLoaderContext, ResourceLoaderImage, string, string)
#4 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderModule.php(729): ResourceLoaderImageModule->getStyles(ResourceLoaderContext)
#5 /usr/share/mediawiki/includes/resourceloader/ResourceLoaderModule.php(674): ResourceLoaderModule->buildContent(ResourceLoaderContext)
#6 /usr/share/mediawiki/includes/resourceloader/ResourceLoader.php(1078): ResourceLoaderModule->getModuleContent(ResourceLoaderContext)
#7 /usr/share/mediawiki/includes/resourceloader/ResourceLoader.php(782): ResourceLoader->makeModuleResponse(ResourceLoaderContext, array, array)
#8 /usr/share/mediawiki/load.php(51): ResourceLoader->respond(ResourceLoaderContext)
#9 {main}
hgolden commented 1 year ago

@SamB, thanks for reporting! I am working on upgrading the wiki to either MW 1.35 LTS or, hopefully, MW 1.39 LTS. As part of this upgrade I will fix the problems you are reporting.

hgolden commented 1 year ago

I closed this by mistake. I am working on the fix.

taezaz commented 1 year ago

Hi @hgolden,

I was trying to edit a Wiki page and the editor page was lacking the styles as well which made editing somewhat difficult, so I was wondering if there are any news regarding the upgrade? Maybe there is some way that I could help?

hgolden commented 1 year ago

Hi Tomas,

I knew that styling was missing on some pages, but today I looked at what was causing it. Apparently, when we upgraded MediaWiki from 1.27 to 1.31, it came with a newer version of jquery.ui as well as other changes that affected our homegrown skin ("Hawiki"). The skin's code needs to be updated to work properly.

I would be happy to have you work on the wiki. At first I would ask you to make corrections and send them as pull requests for me to review and move to production. There is a repository for our wiki code, but it isn't up-to-date. I will have to load the latest code.

In case you aren't familiar with MediaWiki, it is written in PHP and Javascript with the styling generated using various frameworks. Over time, the MediaWiki developers have changed which frameworks they use.

Can you tell me what software you are comfortable working with? You don't have to be an expert, by any means. I'm certainly not an expert on these languages and frameworks, but I've learned by struggling with them to get the wiki upgraded from 1.19 to 1.27 and now 1.31 (partially).

I really want to upgrade to 1.35, which is still supported and eventually 1.39, the latest LTS version. Part of the difficulty I've been having is that MediaWiki was supposed to work with PHP 7.4, but it really didn't. Now, the goal is to use PHP 8.1 with MW 1.39, but the MediaWiki developers have struggled with that for more than a year.

I'm looking forward to your response.

Regards,

Howard

taezaz commented 1 year ago

Hi Howard,

Thank you for your quick response. :)

Short "CV" to give you a better understanding of my experience:

Professionally, I am a Python developer who's been working in the industry for over 10 years. Current technologies that I work with the most: Python (Flask, FastAPI, Pydantic), Docker and Kubernetes. I have quite a bit of experience with PHP since that's how I've started my programming journey, but that was quite a long time ago, so my knowledge is definitely a bit outdated. That being said, I am happy to learn what is needed and to refresh my knowledge. :)

I really want to upgrade to 1.35, which is still supported and eventually 1.39, the latest LTS version. Part of the difficulty I've been having is that MediaWiki was supposed to work with PHP 7.4, but it really didn't.

This makes me wonder - how is Haskell Wiki currently hosted? Is there no option to use the exact PHP version that the MediaWiki supports?

hgolden commented 1 year ago

Tomas,

Please let me know if you would like to work on issue #30. This isn't a big issue, but it requires getting familiar with how MediaWiki extensions work and putting the boilerplate around the code currently at the end of /etc/mediawiki/LocalSettings.php (in this repository). If this isn't of interest to you, please look at some of the other issues and tell me what you'd like to work on.

Haskell Wiki is currently hosted on a server donated to haskell.org. You can find out about the general structure at https://www.haskell.org/haskell-org-committee/ and https://github.com/haskell-infra

hgolden commented 1 year ago

Oops! I closed this by mistake!

taezaz commented 1 year ago

I'd be happy to give it a shot. :) Eventually, I would like to work on running wiki in docker (e.g. #29) as that could help with the PHP version issues. I think this would be simpler than trying to make Wikimedia run on a version that it doesn't support. As I understand the current wiki server can run docker?

I think I have everything to get the extension task done- I'll create the PR once I've done it. If I am missing anything, please send me more info. Thanks!

hgolden commented 1 year ago

Hi Tomas,

I'm glad you're on board. Welcome!

As far as Docker (or Podman), there is another GitHub project that you will want to follow: https://github.com/CanastaWiki/Canasta . It is planned to use MySQL, Docker and Apache, rather than our preference to use MariaDB, Podman and Nginx, but these changes should be minor. The first goal of that project is MW 1.35 with MW 1.39 to follow.

From my experience upgrading the Haskell wiki from 1.19 to 1.27, the real effort is in the skin changes and testing. Historically, Haskell wiki has had its own skin, Hawiki, but I think we should try to use Vector with the minimum changes to match our desired color scheme. This will make upgrades easier in the future.

I am working with the haskell.org people to get a devops and testing server for us to use. I'll let you know how to use it once it is set up.

Howard

On Fri, 2023-01-27 at 01:32 -0800, Tomas Račys wrote:

I'd be happy to give it a shot. :) Eventually, I would like to work on running wiki in docker (e.g. #29) as that could help with the PHP version issues. I think this would be simpler than trying to make Wikimedia run on a version that it doesn't support. As I understand the current wiki server can run docker?

I think I have everything to get the extension task done- I'll create the PR once I've done it. If I am missing anything, please send me more info. Thanks!

hgolden commented 1 year ago

I looked at the Hawiki skin I created / updated for MW 1.27. I needs a lot of work to work properly in MW 1.31 and probably even more work to update to MW 1.35 and then MW 1.39. This is not really worth the effort and continuing support obligation.

My idea is to simply use the standard Vector (or Vector 2022 for MW 1.39) with color and font changes to conform with our current scheme in MW 1.31. In other words, I just want to have an automated (if possible) creation an alternative color version of the standard Vector skin. I don't know whether this should be called Hawiki or just modify the colors in Vector. The former seems to have the advantage that the vanilla Vector (or Vector 2022) would still be available for anyone who wants to use it.

The biggest change from Vector is our home page that has three columns for wide-enough screens. This should be implemented by modifying the home page's content, rather than having Hawiki skin need such a large variance with Vector. When I upgraded the Hawiki skin to MW 1.27 I really didn't understand skins and I created a monster manually-coded variant of Vector. This is why the skin doesn't work well in MW 1.31. I am working on a much simpler approach to implement first in MW 1.31 and then evolve as we upgrade to MW 1.35 and MW 1.39.

taezaz commented 1 year ago

@hgolden Long time no see. :) Since my other PR got merged already, maybe it would make sense for me to start working on the upgrade? What you said above about using Vector instead of Hawiki makes a lot of sense and it seems like the right approach to me - are you working on this yourself or can I help somehow? I’d be happy to look into other issues as well if you think there’s something else that would make sense for me to look at. :)

hgolden commented 1 year ago

Hi @taezaz, I am away from home this weekend, so I am typing slowly on my phone 🙂. I will respond fully when I get back to my computer. I tried CanastaWiki (now MW 1.39.2), but it didn't work for me. However you might try it and see if you are successful. I found instructions for using Vector skin with custom colors and easy version upgrades. Details on Monday.

hgolden commented 1 year ago

Hi @taezaz, I found some documentation that is useful for this project:

I am again trying to run CanastaWiki which is MW 1.39.2, using the information above. Note: Using the Vector skin in MW 1.31 also shows the special pages unstyled, so the problem in HaskellWiki's MW 1.31 applies to other styles, not just the Hawiki style. That's why I am trying again to get CanastaWiki MW 1.39.2 to work. If it works, it will fix most of our issues.

I will post updates regularly. At this time, I don't see a part you can work on, except trying to use CanastaWiki.