BenBE's humble thoughts Thoughts the world doesn't need yet …


Roadmap for GeSHi

Filed under: GeSHi — Schlagwörter: , , , — BenBE @ 23:44:34

This March has been a busy month and I nearly missed to celebrate one year of working on GeSHi as head of developement. It has been an awesome time, although a bit complicated sometimes, hasty in other moments, but overall it was a pleasure to work on such a great project while learning many new things.

When I started about two years ago helping out with GeSHi I had only little experience with the workflow and release management that now is my dayly work with GeSHi. It happened step by step that I got new duties and possibilities and thus my responsibility grew with the time passing by. When Nigel’s time for the project grew little last year I happened to have just enough insight into the project and its code to feel confident enough to be able to continue the work.

The actual story of the weeks the hand-over was carried out now is somewhat blurry, but well, some details are still quite precise memories for me. The actions back then weren’t taken sudden at all, but somehow announced themselves already in November 2007 when Nigel noted his efforts for GeSHi might have to be reduced as more important things were forcing into his live. I could understand that notion at his hint, but had just the same problems at that time so wasn’t able to offer my help. So the release of – the first release in my hands – had to be delayed over and over again, as Nigel just didn’t find any time to do the release work, even though the release itself had been stable for at least 4 months already.

As time passed by and workload reduced on my side there was more time I could put into working on projects – including GeSHi. By end of February – my exams had been done properly – I even had enough spare time to get into discussion with Nigel on IRC to discuss the further progressing with GeSHi as freezing this project would have been very sad indeed. On that discussion Nigel and me agreed on the necessaty of continuing the project, although there still had been some things to be cleared beforehand – thus the offer I gave at that very discussion back than was merely an offer.

After my last private issues had been cleared successfully I came back to Nigel and finally announced to him that I’d proudly take the responsibility for the project if he’d organize transferring the domains associated with GeSHi to me. Most stuff was handled quite quickly and thus March 15th 2008 became the day the project changed owners. Even though it took another week, to complete all the work for switching the domain over to my server – they became the of the most active domains on my new server.

This one week of delay wasn’t all that quite either as I used the time until the transfer was completed to move the old GeSHi page to my server and set things up to work for me – it just happened that the GeSHi page on the old server compared quite nicely to swiss cheese in regards to security, which was one of the bigger issues my server didn’t like about it 😉

But besides those minorplaygrounds there had been more serious decisions to be made. There wasn’t only the choice of where to host, when to release, but exactly decide on a policy, decide for continiousity for the project. Also there had to be new targets and goals to be acchieved as the project had stalled far too long at that time.

I don’t quite remember completely all the shining things Nigel and me were joking about back then, but there were quite some important things on the roadmap I planned on making into reality or at least work on them.

One of those items on the list was the improved highlighting of symbols within the source. Although this feature has been nearly complete since the release it took another 2 attemps to get it stable. And even now some backward compatibility crap I wanted to remove still is included (Bracket Highlighting is crap and only causes problems) …

The next point on the roadmap is performance. For this great thanks got to Milian who repeatedly came up with good implementations for various ideas we had, including a profiling script to measure our success. There has been much improvements in this field since last year, but I guess there should be another look for further improvements.

In regards to language files the number rapidly grew, IIRC it nearly doubled, but I’m not sure about that number ATM. Anyway this shows the large interest people have in this project and it just happened 30 seconds before I originally wanted to merge in the last changes for the release that I received a mail with a language file I literally added in last minute. But since the release there have been already another two language files to add. Thus language file support will probably grow …

Remains the parser as an everlasting project in its own. The 1.0.X branch hast been exploited to its max and there is only little of improvement left that might improve the highlighting performance or its accuracy. Recently a lot of language files have grown some PCRE to be as precise as possible, but still they can’t fully cover most languages‘ syntax. For this reason I originally decided one year ago to work on the new 1.1.X branch to make it become stable. Unfortunately this hasn’t been as successful of an project as I hoped it to be 😉 I strongly set this bold on my Todolist for the future, but the current code somehow needs refactoring – I just don’t know where to start yet.

Speaking of the parser that needs some tweaking I just happen to have some more little tweaks I didn’t want to integrate with the recent update as they need some proper testing. One of them might render useful trying to highlight special variable names while still highlighting the actual variables. For Example in PHP Variables start with $, but when you declare special variables $_GET those just won’t get highlighted unless you disable highlighting of them by Regexp. The new version will fix this (One language in used a workaround though – that will vanish with the tweaked parser!

Another item on my todo list for this release is finally fix those warnings in the last two remaining language files that throw warnings … I guess 😉

But finally: Mostly you decide, what will be in the next release thus I’m happy about all bug reports and feature requests. Also sample code is strongly welcome (for the Code Repository).

That’s so far all I know about the next release; we’ll see what will actually come soon.

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress