A wholehearted thanks to everyone who has donated to libjpeg-turbo in the past few days.  Because of your generous monthly and yearly sponsorships through GitHub, we will have a 30% higher monthly budget going forward.  Because of your generous one-time donations through GitHub and PayPal, in addition to the new monthly and yearly sponsorships, the General Fund for 2023 is now over 60% larger.  Combined with an expected payment from another source, we will now catch up to the deficit in about four months instead of 15!

Thank you thank you thank you!!!

You can see the current list of public GitHub Sponsors (those who chose not to be anonymous) at the bottom of this page:
https://github.com/sponsors/libjpeg-turbo
All public sponsors also have a libjpeg-turbo sponsor badge on their GitHub profiles.

DRC

On 7/3/23 5:56 PM, DRC wrote:
Binaries and source tarball are here:
https://sourceforge.net/projects/libjpeg-turbo/files/3.0.0/

Change log is here:
https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/3.0.0

Sorry for the delay, the reasons for which were expressed in previous emails (https://groups.google.com/g/libjpeg-turbo-announce/c/zXCK0qw1pIE/m/yMLo__OuAAAJ).  SignPath is still having issues with their upstream CA, so the Windows installers for libjpeg-turbo 3.0.0 are temporarily unsigned until those issues can be resolved.  Ultimately, however, the delay produced a more stable 3.0.0 release, since most of the bug reports against 3.0 beta were filed after the beta cycle was supposed to have ended.

On that subject, I want to remind everyone that, while I do my best to maintain this project with the highest possible quality standards and using industry best practices, I cannot test for every possible usage scenario.  The three-month beta testing phase is intended to allow the community ample time to thoroughly test a new release series.  *Please* use that time to test the new release series rather than waiting until after the .0 release!

Why there may never be a libjpeg-turbo 3.1
------------------------------------------

I will continue to fix bugs in libjpeg-turbo and issue bug-fix releases in the 3.0.x release series, but there will not be a libjpeg-turbo 3.1 release series *unless* this project can secure more general funding. As it stands, libjpeg-turbo only has general funding for about 8-10 hours of labor per month.  Finishing the 3.0 beta release required borrowing against all expected general funding for 2023, and fixing all of the 3.0 post-beta bugs required borrowing against all expected general funding through September of 2024.  If things continue apace, then libjpeg-turbo is effectively in "maintenance mode".  That means that no new features (even minor ones) can be considered, and tech support will be limited, for at least the next 15 months.

I maintain three open source projects for a living.  Those projects have saved companies many millions of dollars in labor and IT costs, but I take home less pay than that of a typical starting teacher.  (For those outside of the U.S., a starting teacher's salary is a rhetorical benchmark for very low pay.  We criminally underfund education here just like we criminally underfund open source development.)  What I earn through independent open source development is about 20-25% of what my skills would be worth to a corporate employer, and I have turned down numerous offers from such employers over the years in order to continue working on these OSS projects full-time.  I don't expect to get rich from open source development, but it is also unfair for organizations to profit handsomely from my work while I am expected to do that work for free.

Because the majority of my income is from VirtualGL and TurboVNC, uncompensated labor on libjpeg-turbo forces me to steal time away from those more lucrative projects.  Thus, I simply can't eat labor cost on libjpeg-turbo anymore.  (I ate hundreds of thousands of dollars' worth of it from 2010-2018, but when the libjpeg-turbo 2.0 release caused me to go into debt in 2018, I had to stop.) However, major releases still require a lot of general labor. Because the project is so high-profile (used by literally billions of people every day through major web browsers, operating systems, and image viewers/editors) and is an ISO/ITU-T reference implementation, it undergoes intense scrutiny. Unfortunately, that scrutiny typically lags the development of new features by enough time that specific funding is no longer available to fix unanticipated bugs in the new features.  Thus, it has become increasingly difficult to estimate the labor costs of new features upfront.  In order to adequately cushion against unforeseen bugs, I would have to grossly overestimate every new feature to the point that no one would be willing to fund the feature.  Instead, I have had to accept the risk of unforeseen bugs in order to keep libjpeg-turbo moving forward, and that has forced me to perform many hours of general labor on the run-up to every new release series.  The companies that have partially (but unfortunately not fully) funded each new release series have pressured me to put out the .0 releases in a timely manner, so that has left me with no choice but to borrow against expected future funding.  Specific to 3.0, I had to spend more than 70 uncompensated hours fixing bugs discovered in the beta release.  Most of those hours were spent fixing bugs in the lossless JPEG feature, but I also spent a significant amount of time fixing bugs in the partial image decompression and RGB565 features (both of which were integrated to support Android and both of which have required me to eat the cost of bug fixes or beg for money a handful of times since they were integrated.)

This project has only been kept alive because of the libjpeg-turbo General Fund, which is funded by Cendio AB and Crimson Vista and your ad hoc donations, as well as a few large ad hoc donations from Google. However, the current General Fund is only enough to pay for general project maintenance and support.  To keep libjpeg-turbo moving forward in any meaningful way, including providing community support, integrating or implementing minor features, supporting popular new platforms, etc. requires more general funding.  To keep libjpeg-turbo moving forward in a more proactive/progressive way, including expanding the coverage of the JPEG spec (3.0 essentially expands our coverage of the JPEG spec by a factor of five), expanding SIMD coverage to new algorithms or instruction sets or CPU architectures, supporting less popular new platforms, improving the APIs, hardening security, improving fuzzer coverage, enhancing the build system, improving automation, etc. requires even more general funding.  Essentially I have been expected to keep libjpeg-turbo moving forward in a proactive/progressive way, but the amount of general funding only allows for maintenance mode.  In the best case, that puts me in the position of begging for funding on a regular basis, which distracts from meaningful open source development. In the worst case (where we are now), that puts me in the position of stalling the project for potentially more than a year until funding can catch up to the labor I've already contributed.  It just isn't working, and I don't know how to fix it.  It's ironic that the most popular/ubiquitous open source project I maintain (by at least four or five orders of magnitude) is much more difficult to fund than the others.  Maybe a JPEG codec isn't "sexy" enough? Maybe people take it for granted because the complexity of it is hidden behind higher-level interfaces and applications?  Still, though, the organizations that develop those higher-level interfaces and applications should not be taking libjpeg-turbo for granted, particularly when most of the recent issues I was expected to fix for free were security-related.

I have expressed in the past that the business model necessitated by independent open source development may not be the best fit for a critical infrastructure project such as libjpeg-turbo.  Thus, I am open to acquisition by a larger organization, if that organization is both O/S-agnostic and CPU-agnostic and has a vested interest in both the survival and the openness of libjpeg-turbo.  However, I also don't expect such an offer to ever materialize.  I have built significant value in libjpeg-turbo-- including its reputation, its ubiquity, and its user community-- over the past 13 years, but it is obviously not a cash cow. Still, though, unless I can secure enough general funding to move the project forward in a meaningful way, the only other options are acquisition (however unlikely) or putting the project into maintenance mode for the foreseeable future.  The latter is where we are now.

How can you help?  If every individual developer who used libjpeg-turbo on a regular basis donated just $5-10/month to the project through GitHub Sponsors (https://github.com/sponsors/libjpeg-turbo), we'd have a healthy amount of general funding.  But that requires everyone to take responsibility for the health of this project, not to rely on the few corporate benefactors that have kept libjpeg-turbo on life support for the past five years.

DRC

--
You received this message because you are subscribed to the Google Groups 
"libjpeg-turbo User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to libjpeg-turbo-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/libjpeg-turbo-users/dd3c51c6-4eb1-a56f-cc46-bc687a7b9200%40virtualgl.org.

Reply via email to