Great news, congratulations and thanks, Francesco!

Christopher


The MathWorks GmbH | Friedlandstr.18 | 52064 Aachen | District Court Aachen | 
HRB 8082 | Managing Directors: Bertrand Dissler, Steven D. Barbo, Jeanne O’Keefe



From: Francesco Pretto <cez...@gmail.com>
Date: Friday, 6. January 2023 at 23:47
To: Podofo-users <podofo-users@lists.sourceforge.net>
Subject: [Podofo-users] PoDoFo-next pushed to master
Hello PoDoFo developers, users,

as previously anticipated, PoDoFo-next (the PoDoFo API rework based on
pdfmm) has now been pushed to the project repository, effectively
becoming the new PoDoFo's codebase (a PoDoFo 0.9.x branch has also
been created). Because of this pdfmm is effectively terminated and its
repository has been archived. I discussed several times the objectives
that were pursued when working with PoDoFo's code, so I will try to
highlight other stuff this time. There's a changelog[1] of new
features, reworks, and bug fixes recently introduced. A 0.10 release
could be tagged to mark the current progress, but I'll wait few days if
it arrives some quick feedback with urgent bugs. There's also a long
TODO[2] list which I would like to clear before having a 1.0 release.

There a couple of things that were added recently that I believe are
very interesting:
1) I imported some code from pdfium[3] to decode /CCITTFaxDecode
filter. Some more code could be imported in similar way for other
stuff that require a lot of research;
2) I imported chromium numerics[4] which was used by pdium. This
allows for much better overflow checks. This may be of special
interest for Mark...

There are also 3 things I'm not entirely happy about the current state
of PoDoFo-next:
1) PoDoFo-next is not yet a full replacement for PoDoFo, mostly because
of tools. As anticipated I just did a mechanical port of tools (this
porting operation actually helped improving the API), but they are
completely untested and I am not interested in maintaining them,
except for a couple (podofosign and podofotextextract). In general I
would like tools to be same quality as the library code (it is
currently not, in my opinion: too much C style programming left), and
have a shared framework with common utilities for parsing of commands,
handle of crashes, handle Unicode strings on Windows, etc. If there's
an interest in continuing the software distribution in linux distros
this should be fixed;
2) A large part of the API is not tested publicly. This is bad;
3) The procedure to sign PDF documents has changed a lot, but there's
no publicly available test/example available and podofosign is
untested as well. Also still there's no high level signing API yet:
this may come later, maybe after 1.0.

Also:
- I'm sorry because I covered the recent README markdown conversion.
Some chapters may be re-integrated later;
- Some other things I regressed may required fixes from specialized
people (I will specify it later);
- I am sorry if I don't answer too much in the ML, especially for
topics where I have a direct experience and I could have one thing or
two to say. I will try improve this.

So far I didn't measure strong interest for pdfmm/PoDoFo-next but this
also had advantages: I could work for long time with no disturb. I
think this may change a bit with the upload to the official PoDoFo's
repository. Because this is a complex project and working on it takes
a lot of time, every help is welcome (also in reviewing PRs) and if
you have some big work in mind let's talk about it in the ML a bit. I
would be glad if the website is revamped, but I have no passion for
that.

As a last message I would say that I'm personally very proud of this
milestone, even if I'm a bit sad that some stuff took way too much
than I imagined: while modern C++ can be cool, some peculiarities of
the language still make it very slow do design high quality
interfaces/utilities. With the work in pdfmm/PoDoFo I could close the
circle on stuff I never sorted out with C++, which is great, but
achieving all of this had a very big cost in terms of energy and
weekends spent on the project.

Greetings,
Francesco

[1] 
https://github.com/podofo/podofo/blob/master/CHANGELOG.md<https://github.com/podofo/podofo/blob/master/CHANGELOG.md>
[2] 
https://github.com/podofo/podofo/blob/master/TODO.md<https://github.com/podofo/podofo/blob/master/TODO.md>
[3] 
https://pdfium.googlesource.com/pdfium/<https://pdfium.googlesource.com/pdfium>
[4] 
https://chromium.googlesource.com/chromium/src/base/+/master/numerics/<https://chromium.googlesource.com/chromium/src/base/+/master/numerics>


_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users<https://lists.sourceforge.net/lists/listinfo/podofo-users>
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to