Thanks to the Secretary and Treasurer for their continued work in these roles this past year.
Year in review ============== Approximately this time last year we released NetSurf 2.5. In the last 12 months we have developed and released NetSurf 2.6 and we are on the verge of releasing NetSurf 2.7. Both of these releases have done much to advance the state of the project. The changes introduced in them have had quite a wide scope, improving many aspects of the browser and our libraries. NetSurf core ------------ Improvements made to NetSurf's core have affected many areas including page layout, fetching, content caching, rendering, memory usage and performance. Perhaps the most obvious new feature has been the addition of core-controlled windows for global history, hotlist (bookmarks), and cookie management. These are available for use by all front ends, and have increased the user-facing functionality on several platforms. There has been an increasing practice of profiling the browser to direct development attention to specific aspects of performance. Some work has been done this year as part of an on-going effort to simplify and improve the core/front end interface. This work has helped remove some of the complexity that was previously required in front ends. NetSurf front ends ------------------ The year has seen the implementation of two new front ends. The Mac OS X front end in particular was written very swiftly, and is already considered release-ready. The new Atari front end is also showing great promise, extending the potential userbase for NetSurf further. These developments further demonstrate the portability of NetSurf. The Windows port has continued to mature over the last 12 months, however it lacks an actual maintainer at the moment. This has reduced the potential for its advancement. By contrast, the RISC OS front end, which was without a maintainer last year, now has a maintainer and much work has been done to make the RISC OS code easier to work with. Some work has been put into creating an environment for automated cross-compilations of NetSurf for various platforms. This work is still in progress. Project libraries ----------------- Much effort has been put into our core libraries. LibCSS in particular has been improved substantially. These advances have included the addition of support for certain features of CSS3. Part of the work carried out on our core libraries has focused on rationalising their APIs. As yet, none of the core libraries' APIs are considered fully stable. This means they have not reached "release" versioning (i.e. 1.x) in this period. We have seen third party projects making use of some of our core libraries. Little work has been done on LibDOM in the last 12 months. However, some recent decisions have established what work is required for LibDOM to reach the state were NetSurf can start using it. Going forward ============= The main story of NetSurf's development plan since NetSurf 1.x has been shared widely before. Here it is again: | 1. New HTML parser (hubbub) | 2. New CSS engine (libcss) | 3. New DOM implementation (libdom) < We are here now | 4. New layout engine | 5. Add JavaScript support | | [1] was introduced with NetSurf 2.0 | [2] was introduced with NetSurf 2.5 | [3] is intended for NetSurf 3.0 | [4] is intended for NetSurf 4.0 | [5] is intended for NetSurf 5.0 The practice of profiling NetSurf has identified CSS selection as a significant performance issue. The reason for this is understood, and performance is expected to be vastly improved once NetSurf uses LibDOM instead of LibXML. Since this coincides with the general plan, the development focus after NetSurf 2.7 is expected to centre around LibDOM. The next 12 months ------------------ It will be ideal if we are in a position to release NetSurf 3.0 with LibDOM in the next year. We should certainly aim to make progress on this during the period. In addition to working toward milestone 3, as outlined above in the main story of NetSurf's development, we can also complete some side quests this year. Some good candidates for attention that have been mentioned before are: + Moving frames handling to the core. (Requested by several front end maintainers.) + Rewriting URL handling. (Frequently comes up amongst core developers.) + Making the core a library. (Routinely sought-after by front end and core developers alike.) There are many others on the Development Plan wiki page: http://wiki.netsurf-browser.org/Development_Plan Continued work on automated cross-compilation and also automated testing will be of great value to the project. Finally we should produce a roadmap for LibSVGTiny. Currently it is not released alongside our other libraries. Could it use LibCSS? Maybe Expat and LibDOM instead of LibXML? Support for more SVG features? Output shape as polygon, rather than path, when shape has only straight lines? NetSurf project steering will be discussed at the forthcoming AGM. Thanks to everyone involved in the project for their contributions over the last 12 months! -- Michael Drake (tlsa) http://www.netsurf-browser.org/