Summary: there are too many apparently SRU-inappropriate changes bundled
into this upload; please remove them and supply the minimal necessary
changes only.

Full review:

This bug has had some unavoidable churn in -proposed due to external
factors resulting in multiple releases of tzdata upstream in quick
succession. This type of thing usually increases the risk of error in my
experience, so I gave this a more thorough SRU review than usual from
the perspective of the changes that would be experienced by users.
Specifically this is the diff to this upload all the way from what is
currently in the -updates pockets.

The pulling in of the actual upstreams (tzdata and icu-data) look fine,
assuming that it's OK for the icu-data version to mismatch tzdata as the
newest icu-data wasn't available at the time of upload.

I haven't checked the updates to *.pot and *.po but I assume that they
are also fine.

The addition and improvement of automated tests are always OK and very
welcome.

However, some remaining changes I'm not sure about. These weren't
documented in the SRU paperwork, though we (bdrung and I) did discuss
them extensively in #ubuntu-release - thank you for explaining them.
However I'm still not sure if these changes are appropriate for an SRU.

Generating debconf templates with Python instead of bash seems like a
reasonable improvement, but I'd expect this to be done in the
development release only. SRU policy says:

> ...the requirements for stable updates are not necessarily the same as
those in the development release. When preparing future releases, one of
our goals is to construct the most elegant and maintainable system
possible, and this often involves fundamental improvements to the
system's architecture, rearranging packages to avoid bundled copies of
other software so that we only have to maintain it in one place, and so
on. However, once we have completed a release, the priority is normally
to minimise risk caused by changes not explicitly required to fix
qualifying bugs, and this tends to be well-correlated with minimising
the size of those changes. As such, the same bug may need to be fixed in
different ways in stable and development releases.

I'd therefore not expect this change to be present in the SRU, but
instead for the existing mechanism to be used. If the existing mechanism
is broken or not practical in some way, then I think this needs a
separate SRU bug with a full justification of the reasons so that
regression risk can be considered, and a QA plan can be agreed. I
appreciate that you added a dep8 test, but it isn't clear to me that the
dep8 test covers *all* the previous behaviour. That discussion should
happen in that bug.

There are also multiple and extensive changes and refactorings to
debian/tzdata.config. Some of these are unnecessary (reordering and
normalising of shell syntax) and these mask the remaining changes,
making the rest harder to review. Looking past those, there are some
additional indirections, but also the removal of at least one
indirection (upstream source at [1]) that we discussed. There's also the
new use of convert_timezone. If these changes are necessary then they
should be covered by separate bugs with their own individual SRU
justifications.

I've tried to cover what would be needed if you feel you *must* push
these additional changes in an SRU. But please also consider that this
consumes a great deal of SRU reviewers' time (which is currently in
short supply), and the answer may still be no. I strongly suggest that
you simply stop trying to push extensive changes in SRUs except where
there's actually a significant and direct benefit to users to do so. I
think it'll probably be fine to just update upstream, icu-data and
update the templates with the existing bash generator only? This would
then be much easier to review and land safely.

Note that I've not actually found anything wrong with your changes here.
But it's not enough for the upload to merely be correct. It's also
necessary to demonstrate to others why and how it is correct, as well as
why and how choices have been made such that the risk of an inadvertent
oversight has been minimised. This aspect is currently mostly missing,
resulting in a significant review burden on others. This apsect should
be taken into consideration when deciding whether to seek an SRU
backport of something or not.

[1] https://git.launchpad.net/~ubuntu-core-
dev/ubuntu/+source/tzdata/commit/?id=4c2b898ef99c134a9d202405643136d4b0d38048


** Changed in: tzdata (Ubuntu Bionic)
       Status: Fix Committed => Triaged

** Changed in: tzdata (Ubuntu Focal)
       Status: Fix Committed => Triaged

** Changed in: tzdata (Ubuntu Jammy)
       Status: Fix Committed => Triaged

** Changed in: tzdata (Ubuntu Kinetic)
       Status: Fix Committed => Triaged

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to tzdata in Ubuntu.
https://bugs.launchpad.net/bugs/2012599

Title:
  tzdata 2023a/2023b/2023c release - Egypt restoring DST

Status in tzdata package in Ubuntu:
  Fix Committed
Status in tzdata source package in Bionic:
  Triaged
Status in tzdata source package in Focal:
  Triaged
Status in tzdata source package in Jammy:
  Triaged
Status in tzdata source package in Kinetic:
  Triaged
Status in tzdata source package in Lunar:
  Fix Committed

Bug description:
  [ Impact ]

  Recently the Egyptian authorities decided to restore DST. The first
  switch after the change is expected to take place on last Friday of
  April. The upstream tzdata 2023a release already reflects this change.

  The 2023a release contains the following changes:

  * Egypt now uses DST again, from April through October.
  * This year Morocco springs forward April 23, not April 30.
  * Palestine delays the start of DST this year.
  * Much of Greenland still uses DST from 2024 on.

  The 2023c release reverts the changes done in 2023b.

  [ Test Plan ]

  Test cases were added to the autopkgtest to cover the testing:

  * python: test_2023a
  * python: test_2023c
  * python: test_systemv_timezones (for releases <= 20.04 LTS)
  * python-icu: test_2023a (only for kinetic, jammy, focal)

  So the test plan is to check that the autopkgtest succeeds.

  Alternatively the python test_2023a can be run manually:

   * Set system timezone to Egypt (e.g. Africa/Cairo).
   * Set system time to 2023-04-27 23:59.
   * Wait and observe what happens at 2023-04-28 0:00

  [Test Case for releases <= 20.04 LTS]

  Additionally, an upstream update of tzdata removed the 'old' SystemV 
timezones, so we should ensure that they are kept in Ubuntu 20.04 LTS and 
earlier releases. This is done by the test_systemv_timezones test case or can 
be checked manually with the following:
  diff <(zdump -v America/Phoenix | cut -d' ' -f2-) <(zdump -v SystemV/MST7 | 
cut -d' ' -f2-)

  [ Where problems could occur ]

   * Systems with incorrect timezone set (e.g. located outside of Egypt
  but still using Egyptian time) may observe unexpected time shift.

  [ Other Info ]

  The autopkgtest for chrony is flaky on jammy and kinetic (see bug
  #2002910).

   * More information with sources:
  
https://en.wikipedia.org/wiki/Daylight_saving_time_in_Egypt#:~:text=Daylight%20saving%20time%20(DST)%20has,(DST)%20as%20of%202023.

  The SRUs to the stable releases include the recent changes for
  generating the debconf template (switching from shell code to Python)
  and the timezone mappings in convert_timezone(). This is done to ease
  future tzdata updates since those parts of the packaging need to be
  updated when timezone are added, renamed, or removed. Having the same
  code in that part makes backporting the changes easier. I added a
  consistency check to generate_debconf_templates in 2023c-2 which I
  want to backport in a future SRU.

  Previous SRUs did sometimes forget to update convert_timezone or the
  exclusion list for the debconf template for the changes from upstream.
  All added tests (for testing the debconf template and
  convert_timezone) were also backported to catch missing those changes.

  The sorting change of the debconf template was included in the SRU to
  allow taking the debconf translations from later releases.

  debian/test_timezone_conversions finds following issues in the kinetic
  packaging 2022g-0ubuntu0.22.10.1:

  ```
  ERROR: Following 14 timezones can be selected, but will be converted:
  Asia/Rangoon
  Europe/Uzhgorod
  Europe/Zaporozhye
  US/Alaska
  US/Aleutian
  US/Arizona
  US/Central
  US/Eastern
  US/Hawaii
  US/Indiana-Starke
  US/Michigan
  US/Mountain
  US/Pacific
  US/Samoa
  ERROR: Following 5 timezones cannot be selected, but are not converted:
  America/Fort_Wayne
  America/Indianapolis
  America/Knox_IN
  America/Louisville
  Pacific/Enderbury
  ERROR: Following 3 timezones are conversion targets, but are not available:
  Asia/Riyadh87
  Asia/Riyadh88
  Asia/Riyadh89
  ERROR: Following 4 timezones are conversion targets, but are not selectable:
  America/Indianapolis
  Asia/Riyadh87
  Asia/Riyadh88
  Asia/Riyadh89
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/2012599/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to