Exiv2 v0.27 and v0.28 Discussion Document
Page Revised: 2018-04-20
To be discussed on May 5 and 6 at the "Exiv2 Developer's Meeting" in England.
Version 0.27 Specification¶
This project is mostly security fixes.
There are very significant improvements in the build and test architecture.
The project code is on GitHub. https://github.com/Exiv2/exiv2/projects
1) Why did the code-size spike from 100k to 120k in July 2017? Closed
OpenHub mystery. May 2017: 113961 April 2017: 121196
~/gnu/github/exiv2/exiv2 $ git status | grep branch ; finder "*pp | xargs wc | tail -1
2) What's to be done about the duplicated code in tags.src and tags_int.cpp?
3) Why did we migrate canonmn.cpp to canonmn_int.cpp?
4) Unit tests discussion
5) Using safe_op.hpp in elderly versions of MSVC (such as 2005)
6) Remove unwanted test/data files from the repos (eg test/data/bugfixes-test.out)
7) Announce that we plan to deprecate the VIDEO and EPS code in v0.28
8) Remove 'using namespace' in all code.
10) Binary Output
11) Throwing exceptions from BasicIO::read()
12) Why was printStructure() added? (#1245)
13) Project Tool Discussion (Redmine, GitHub, CMake) https://github.com/Exiv2/exiv2/issues/101
Before the meeting, I'll review 0.27 open/closed bugs. For sure there will be other matters to discuss.
Major Components of Project Exiv2¶
|Major||User Support||Redmine and Github||25%||55%|
|Lens recognition||src/*_mn.cpp and ~/.exiv2||10%|
|Build Engineering||CMake, Autotools and MSVC||10%|
|Jenkins Build Server||daily, weekly and monthly builds||5%|
|Test Harness||bash and python scripts||5%|
|Normal||Sample Applications||exiv2, exifprint, exiv2json,...||5%||35%|
|I/O||BasicIO, FileIO, MemIO, RemoteIO,...||5%|
|Tiff Parser||Tiff, Exif, Raw and MakerNote Parsers||5%|
|Image formats||TIFF, JPEG, PNG,...||5%|
|Metadata formats||Exif, IPTC, XMP, ICC||5%|
|Release Engineering||Releases, website, documentation,...||5%|
|Security/Fuzzing||Parsing, arithmetic, memory, threading||5%|
|Miscellaneous||Unexpected Issues, Licensing||3%|
|Video and EPS formats||QT, AI,...||1%|
v0.28 Desirable Features¶
1 Improved raw image code and test (#992) GSoC
2 Update to latest Adobe XMPsdk (#941)
3 Coverity Scan (#883)
4 Unified Metadata Container (#585)
5 Harden or remove the video code (#1068)
6 Additional image formats.
6.1) WebM: #1048
6.2) multi-page tiff: #1124
6.3) BigTiff: #1186
6.4) HDR: #885
6.5) SVG: #1086
6.6) PDF: #1138
6.7) CR3: https://github.com/Exiv2/exiv2/issues/236
6.8) IIQ: #1342
7 Build projects:
7.1) Mobile (iOS and Android) build and test support GSoC
7.2) C++11 #1188
7.3) Additional MSVC support: #1174
8 Other Feature Requests
8.1) Editing thumbnails
8.2) Support for thumbnails embedded in IPTC and XMP
8.3) Enhanced Lens Recognition (#1034)
8.4) RemoteIO Object with Memory Mapping (#1245)
8.5) mpfTagInfo in ExifTags::taglist (#1337)
8.6) Turbo TimeStamp Editor (http://dev.exiv2.org/boards/3/topics/3004)
8.7) PNG Metadata (in addition to Exif, XMP and IPTC) https://github.com/Exiv2/exiv2/issues/147
8.8) Refactor 64bit IO http://dev.exiv2.org/issues/1292#note-7
8.9) More JSON support discussion
8.10) Remove Video and EPS code discussion
8.11) RedBalance and Levels http://dev.exiv2.org/boards/3/topics/3108
Google Summer of Code (GSoC)¶
Google sponsor students to work on approved open-source projects for 12 weeks during the summer vacation. I would like to recruit two GSoC students to work on the raw and mobile tasks. I'd like students to work on those tasks for the following reasons:
1) The projects are well defined and isolated.
2) Mentoring/supervision demands should be modest.
3) No complex dependencies.
4) Allows me to have sufficient time to support users.