If the tzdata isn't really intended to be consumed - if we should really only consume the zic output, and anything else is somewhat questionable, then why distribute the tzdata at all? Why not just distribute the zic output files?

As for DST vs STD time not being relevant in software - while Windows doesn't (mostly) use tzdata, it does allow you to specify a time zone and exclude DST from that. Anyone wanting to mimic that behaviour but using the tz data can only do it if they know the DST component of the overall offset.

I would really like to proceed pragmatically: I have a personal real-world need for validation, and given the discrepancies I've found so far, I think it would be useful to other people as well. I would much rather have an imperfect but widely-used solution that has scope to be improved later than a centithread here but with no practical outcome.

Some observations I hope we can all agree on:
Now, a few more debatable thoughts:
So, where do we go from here? Does anyone believe this would actually be a bad thing to have? (That might come with the position of "only use zic output".) How are we best to decide the format? If modifying zdump to add an extra flag is deemed an appropriate course of action, do we have any volunteers to do so? I'm happy to host a github hook to publish the dump files at each commit when all the rest of the machinery is in place.

Jon

On 15 July 2015 at 06:09, Paul Eggert <eggert@cs.ucla.edu> wrote:
Stephen Colebourne wrote:
To say that
software should not care and that it is unsupported is .... er ....
rather worrying.

Although it is an issue, the DST-vs-STD offsets are implementation details that are neither exposed by the reference API nor exported to zic's output files. Any values they internally have were not intended to be visible when the tzdata entries were written.

Of course other implementations are free to process tzdata sources in other ways -- to take an extreme example, implementations could export tzdata comments to their APIs.  However, this sort of thing is not part of the reference tz API, and any regression suite based on the reference API shouldn't worry about it.

I'm not sure this project fully
appreciates or understands the downstream impacts of changes on
systems other than zic.

It's helpful to mention those impacts on this list, if only clarify issues like these in the documentation.  Proposed patch attached.  This patch doesn't change zic's behavior; it just documents the way zic has always behaved.