A.k.a. the “It’s almost Christmas!” release
After a long period of testing and bug-fixing today we release EVT 3 alpha! This is the very first version after switching from AngularJS to Angular as a development framework: the basic features are already there (namely support for diplomatic and critical editions, page-level image text linking, support for named entities), but they are still to be completed (e.g., the critical edition apparatus frame has not yet been implemented) and some basic features such as a search engine are missing as well. These features will be added during the next months, to know more about what we plan for the EVT 3 releases see R. Rosselli Del Turco et al. 2022. “There and back again: what to expect in the next EVT version”. In F. Ciracì et al. (eds.), AIUCD 2022 – Digital cultures. Intersections: philosophy, arts, media. Proceedings of the 11th national conference, Lecce, 1-3 June 2022: 212-217. http://amsacta.unibo.it/6848/.
You can download it here and leave your feedback as comments on this discussion page, thank you in advance! Note that, besides the particularly detailed README.md, there is a preliminary manual available in the
As usual, all the source code is available on the GitHub repository.
An all new codebase using Angular
The main reason why it took so long to publish a new version of EVT is the move from the EVT 2 development framework, based on AngularJS, to the new Angular framework. Basically, we had to rewrite everything from scratch, and as you can imagine this took a loooong time. Add the COVID emergency, and you get the picture.
This has been the second code rewrite, the first one being the change from an XSLT-based architecture (EVT 1) to one based on AngularJS (EVT 2), and one we hadn’t anticipated. In fact, the development team has considered the idea of sticking to AngularJS since it served well the purposes of EVT 2. Unfortunately, on July 1 2018 AngularJS entered a 3-year Long Term Support (LTS) period, later extended to December 31, 2021: during this period the framework has not been improved and only critical functional or security flaws have been addressed; at the end of the LTS period any further support has stopped. This clearly posed a serious problem for the continued development of EVT 2.
Meanwhile, AngularJs had been replaced by a new version of the framework that is just named Angular. This new framework incorporates most of the good software design patterns and encourages good practices with regard to web application development, bringing the updated standard technologies to the table (such as the Typescript language, a well integrated testing framework, container deployment through Dockerization, etc.).
For these reasons, we decided that rewriting the EVT code using the new Angular framework would benefit the future of the project by granting the time to re-establish the software foundations on an architecture that will be able to address the flexibility required for the implementation of new features. A codebase restart also allowed us to streamline the contributions to the software, making the process more distributed and subject to the scrutiny of more people, so that a larger group of people could understand and approve the changes. More in detail, we adopted a Continuous Integration/Continuous Delivery (CI/CD) pipeline that avoids the integration of faulty code, along with the git-flow model coupled with code reviews to encourage good practices and to improve the quality of the codebase in view of the future new requirements for EVT. Finally, the new codebase management requires to trace every change to the code, thus allowing the traceability of the features.
The current architecture
The new Angular-based version is called EVT 3 and is in active development. One notable consequence of adopting the new Angular framework is reflected by the new XML/TEI parser that has been implemented in EVT 3. The parser is in charge of transforming one or more valid XML/TEI documents into a Typescript Object Model that represents the actual subset of encoded information EVT is able to compute and visualize (at the moment it mostly corresponds to a subset of the TEI schemas).
The parser itself has been designed to be independent from the actual viewer in order to achieve two important goals: (1) independence from the XML/TEI encoding, which opens the possibility of future encodings to be accepted as input data (e.g. new versions of the XML/TEI, TAGML, or others); (2) independence from the edition type and/or level (i.e. diplomatic/interpretative editions, critical editions, integrated editions etc.).
The EVT 3 architecture is also designed to be as modular as possible in order to allow the arrangement of smaller building blocks that cooperate to the construction of new views that, in turn, will manage the visualisation of different levels of edition.
Features of the alpha version
Our first goal for EVT 3 is to reach feature parity with EVT 2, but note that at the moment only a subset of the desired functionality is available, namely:
- basic support for diplomatic editions: visualization of transcription elements, editorial elements (
<supplied>), special characters (TEI gaiji module), two edition levels (diplomatic and interpretative), image viewing (thanks to Openseadragon), text-image linking at page level, automatic image miniature generation and navigation
- navigation toolbar
- basic support for critical editions: inline critical apparatus only, nested apparatus entry support, critical and comment notes, pinboard area
- support for named entities, including TEI special named entity lists
As you can see, there’s a lot yet to do! But, apart from new features which will be introduced in the following releases, there are already a few new things notable even in this early release:
- themes! see above the difference between the Dream of the Rood and the Pelavicino sample editions, just choose a different theme from the main menu; this feature will be developed in the future to cater special needs (e.g. further edition customization, accessibility issues)
- a new configuration method based on three main files in the
configdirectory, so that it is possible to share part of the configuration options among multiple editions (see the documentation in the
- also note that the directory structure is slightly different, you now have an
assetsdirectory which will host your edition data, while the
coredirectory shouldn’t be touched
- in diplomatic editions you can now decide to show poetic texts as verses besides the traditional document line-based visualization
- frames are now expandable and draggable, so that you re-configure the edition layout
Known bugs and issues
Since this is a first, experimental release there are probably bugs and glitches that need to be fixed, please report them together with your comments and/or enhancement requests! We have done several checks on the code, however, and it has proved to be quite stable.
Please note that it will take more work to implement the missing features and polish the overall result, which means that there will be some time to wait before a proper 1.0 version is out, but rest assured it will be worth it! So please bear with us and continue sending us feedback 🙂
Important note about testing a local installation
- option no. 1: download and install Firefox ESR v. 60: this version predates the new security policy adopted in FF v. 67 and, furthermore, it can be installed in parallel with any other version of Firefox;
- option no. 2: install an extension providing a local web server on Firefox or Chrome, f.i. there is this one available for Chrome:
- option no. 3: use http-server to set up a local server as explained here; this is particularly fast and easy if you have already node.js installed, otherwise the first step will have to be download and install node.js
This problem, however, only affects local testing, after the edition has been uploaded on a server there are no problems in accessing it with any of the major browsers.
As usual, user feedback is very much appreciated: please send all comments, suggestions, bug reports, etc. to firstname.lastname@example.org or leave a comment on this discussion page. Also, if you use EVT (either version 1 or 2 at this point, but stay tuned for EVT 3 to actually become useful) for your work we would love to know about it!
The features in this release and the current development of EVT 3 is the work of:
- Chiara Di Pietro (general development lead, tireless bug fixing and improving of implemented features, new features such as named entities support)
- Giulia Cacioli (search engine implementation, miscellaneous improvements, bug fixes)
- Simone Zenzaro (GitHub repository organization, general coordination and advice)
- Federica Spinelli (miscellaneous improvements, EVT-as-a-service development)
- Giacomo Cerretini (user annotation, semi-structured data processing)
- Sara Maenza (multiple <msDesc> and image version support)
- Andrea Caleo (VisColl support)
- Livio Bioglio (bibliography parsing and visualization)
- Elisabetta Magnanti (beta-testing, feature design, UI visualization design)
- Roberto Rosselli Del Turco (general coordination, encoding of sample documents, documentation, testing, developer nagging)