Hi Ben,

On Wed, Jul 19, 2017 at 09:33:28AM +0000, Ben Shillito wrote:
> Hi HaProxy Forum,
> 
> In relation to the build error with 51Degrees library. The data files
> associated with Trie are very large and were destroying the performance of
> the Git repository. As we believe a very small percentage of users were
> actually using the files they are now being distributed separately to GitHub.

Very small or not, the reality is that the documented build procedure
for STABLE releases has been broken again without even a prior warning.

> See this blog post for full details.
> 
> https://51degrees.com/blog/51degrees-github-repository-housekeeping-important-update

Hardly an acceptable explanation for anyone trying to upgrade their haproxy
to benefit from the latest security fixes, I'm sorry. Also if it's just a
matter of database size, you could imagine distributing the smallest version
and providing a conversion utility to turn it into the most appropriate format
in field.

> If you'd like to continue to use Trie please can you contact us via the web
> site at https://51degrees.com/contact-us. We can then advise you further.

Then why not try to address the problem by placing the code somewhere online
instead of asking every user to have to contact you ?

> There are no plans to alter the distribution of the Pattern algorithm as the
> files are substantially smaller and work well with Git. All HAProxy builds
> should continue to work with the Pattern option. Just like HAProxy the open
> source business model is at the core of what we do.

So in short what you're saying is that the Trie algorithm that used to be
available in opensource and promoted in the documentation as the fastest one
is no longer opensource, screwing all its users and forcing them to choose
between falling back to the slower Pattern method or not updating haproxy
and stay with securiy issues in production.

> The v3.2.5 branch has now been republished, this was missed when the
> repository was trimmed, so apologies for any backporting problems this has
> caused.

Thanks, so this will fix version 1.6 but not version 1.7 since last year you
provided a patch to replace the API before 1.7.0 release. Can you please
also publish the last branch needed to build 1.7 and provide an update
for the doc to explain how to build it now ?

You have no idea of the pain you cause to everyone by constantly breaking
stable versions, really! And this throws a discredit on haproxy as a stable
product! Please use branches and stop referencing your development branch
as the official one!

> Willy; we're unsure what you mean by "broke the stable series *AGAIN*" and
> "betrayed".

Very simple : you did this already one year ago in the middle of haproxy
1.6 when the public code API was suddenly replaced in an incompatible way,
causing quite some pain by then already. Users pick a version, they deploy
it, prepare their update processes and don't have to think about it anymore,
trusting all of us to deliver timely updates that they can deploy quickly.
In your case, once in a while they discover that some code broke, they have
to revisit their build process to adapt to a different branch, after waiting
for some time for the previous code to be made available again, etc. This
happened twice in haproxy's existence, and the two times it came from your
software. It's not serious.

> Could you provide further information so we can see if there's a
> harmonious way forward if we've made an innocent mistake?

The proper way to deliver a library is to version it. While you can encourage
your users to test the development branch at their own risk, any user should
be able to rely on a stable branch which only provides fixes. Thus for example
if "3.2" is your software branch corresponding to a stable API code, create
such a branch in your repository, document how to use this one for a given
program, try to plan for an end of life so that your users know whether
they're going to use it or not, and simply provide fixes there. You'll note
over time that it requires less work and allows you to break more in the
master branch since nobody relies on it for anything sensitive. Your software
will evolve faster and your users will be happy to be able to trust it.

Thanks,
Willy

Reply via email to