Troggle is the software which runs the the expo cave survey data management and website.
For earlier history see Website history.
Sam was a bit overworked in trying to get an entire university to work remotely during Covid lockdown so Philip [Sargent] started on the python2/3 conversion and got troggle on django 1.7 to work on python 3.5 and then 3.8. He then did the slog of migrating it through the django versions up to 1.11.29 - the last version before django 2.0 . 1.11.29 is an LTS (long term support) version of django. In doing this we had to retreat to python3.7 due to a django plugin incompatibility.
In the course of these migrations several unused or partly-used django plugins were dropped as they caused migration problems (notably staticfiles) and the plug-ins pillow, django-registration, six and sqlparse were brought up to recent versions. This was all done with pip in a python venv (virtual environment) on a Windows 10 machine running ubuntu 20.04 under WSL (Windows Systems for Linux) v1.
Missing troggle functions were repaired and partly-implemented pages, such as the list of all cavers and their surveyed passages, were finished and made to work. The logbook parsing acquired a cacheing system to re-load pre-parsed files. The survex file parsing was completely rebuilt to reduce the excessive memory footprint. While doing so the parser was extended to cover nearly the full range of survex syntax and modified to parse, but not store, all the survey stations locations. A great many unused classes and some partly written code ideas were deleted.
Wookey upgraded debian on the server from 9 stretch to 10 buster and we got the python3 development of troggle running as the public version (with some http:// and https:// glitches) by 23rd July. Buster will be in-support definitely until June 2024 so we are rather pleased to be on a "not ancient" version of the operating system at last. This concided with a last tweak at improving the full cave data file import so now it runs on the development system in ~80 seconds. Which is considerably more useful than the ~5 hours it was taking earlier this year.
Lockdown has been good to troggle. During March and April Philip migrated troggle up to Django 2.2.19, excising the ancient and unused user registration system on the way. Django 2.2 LTS is a long-term stable relase which will be in-support by Django until April next year. Wookey discovered and ran the Django system testsuite on the Debian server thus enabling us to use a necessary (but obstensibly outdated) link between Django and the database MariaDB. As of April 9th troggle is now running on software which is actually 'in date'.
We plan to stick with this configuration for a year.
On 15th March Wookey upgraded the server to the debian release 11 bullseye. At this point 'debian stable' is bullseye and has python 3.9 as standard. We will quickly migrate to Django 3.2 LTS which is now a year old and which will be supported until April 2024. Bullseye will be in support until June 2026.
Django migrations are not nearly as painful as they used to be, and troggle is already compatible with Django 4.0.3 (though we won't use that). So the presure to migrate from Django is now very greatly lessened. However, see troggle architecture speculations and possible migration from Django.
We should not need to anything until we move from django 3.2 LTS to 4.2 LTS before April 2024.
Wookey at last, after much effort, got the loser repository converted from mercurial to git, with much tidying and history-reconfabulation. He says this will need to be done again, but it was good enough for the 2022 Expo. Also the troggle code was changed: survex files edited on a webpage now automatically commit to git with no user involvement.
Just before expo, we finished integrating the formerly-separate 'wallets' script. So now the progress of scanning and tunneling survey data can be managed more easily. And it works on the data back to 1999 too.