From my perspective as a prospective consumer, the input files to zic are the part that I can use in the system that it might be integrated into.

There are multiple reasons why the library that uses the zic-based output is not usable by the project (many of the reasons are peculiar to that software).  I'm not entirely happy with the output format from zic, but that's somewhat separate — that could be lived with.  But my project would probably be based on the data files that are the input to zic, and changing the format of those would become an issue.  Adding comments etc isn't a problem; changing the format of the operational textual data that is the source for zic could be a problem.  From my perspective, zic plus the library is a sample consumer of the input data — it is not the sole consumer.  The input format to zic is the crucial data — the output from zic is coincidental (useful for checking, etc, but not the end data that will be used).

I get the impression from the other emails on the list, that lots of other people consider it similarly — not necessarily for the same reasons, of course.



On Mon, Feb 5, 2018 at 8:57 PM, Steve Summit <scs@eskimo.com> wrote:
In the "Fractional seconds in zic input" thread, Howard Hinnant wrote:
> Ah, I see our disconnect here.  I have no concern about the zic compiler.
> The zic compiler is not in my workflow.  The *input* to the zic compiler
> is the *only* thing that concerns me.  I (and several others) have our
> own "zic compilers" which take this input, process it, and deliver it
> to our customers.

This strikes me as a very significant statement.  If this is
already a well-settled issue, pardon me for reraising it, but:
is it agreed that the zic *input* files are as much of a product
of this project as are the compiled output files, and the
reference code that reads and interprets them?

In the beginning I would have thought that the project's product
was the database *and* the reference code, such that the project
could change the database format as much as it wanted to as long
as it released updated code to match.

Soon enough, of course, there were other consumers of the
database files (one in fact written by the project's current
maintainer), such that more caution was needed when making
changes to the zonefile format, changes which now necessitate
corresponding changes by the authors of all other consumers.

But I would have thought that, working our way upstream, the
project could still change the zic input format as much as it
wanted to as long as it updated zic to match.  But now Howard is
saying:

> For us, the product of the IANA repository is only the tz database,
> and not the tz code.

And he is using the words "the tz database" to refer, not to the
zic output files, to the *input* files!

I'm not trying to blame Howard, and he's certainly not alone.
There was of course that a big long thread last month about
the issues with OpenJDK/CLDR/ICU/Joda and the Ireland change,
and just today we heard about Kerry Shetline's new compiler.

My point is simply that it's pretty hugely significant whether
the zic input files are an officially-supported product or not.
If they are, the project has to be much more conservative about
making these kinds of changes, probably more conservative than it
otherwise wants to be.  But if they're not an officially-supported
product, then people have to be discouraged from writing their
own compilers, or if for whatever reason they truly need their
own compilers and their own compiled data formats different from
zic's, it seems to me we're going to inexorably wind up feeling
the need to fork the project, a possibility which Stephen
Colebourne has already raised.

But, again, apologies if I'm being overly melodramatic, or
raising and issue that's already well understood.

(But in any case, we may need some clearer terminology.  In
particular: do those words "the tz database" properly refer to
the zic output files, or the input files, or both?)



--
Jonathan Leffler <jonathan.leffler@gmail.com>  #include <disclaimer.h>
Guardian of DBD::Informix - v2015.1101 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease to be amused."