<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt, branch 2.9.12</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.12</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.12'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2024-11-18T14:04:39Z</updated>
<entry>
<title>Release 2.9.12</title>
<updated>2024-11-18T14:04:39Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-11-18T14:04:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=963efeff8778afacef35f69c181d234e0a27d5d3'/>
<id>urn:sha1:963efeff8778afacef35f69c181d234e0a27d5d3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Handle Retry-After by default</title>
<updated>2024-11-18T13:54:19Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-11-18T13:54:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f4b57be67c34e9d771859b6851254e64c2a1dc8c'/>
<id>urn:sha1:f4b57be67c34e9d771859b6851254e64c2a1dc8c</id>
<content type='text'>
Let's get some feedback here. This is capped to 30s per retry, so
a maximum of 90s per item that we delay the failure case. In the
worst case, we hence have 90n seconds delay for n items.

In a more realistic worse case however, the server likely does
not collapse per-item, and we end up trying all items in a short
burst so it seems more realistic we hit a 90s total delay.

The bursty behavior may be suboptimal; we don't quite know, but
it seems the specification of Retry-After is per-entity rather than
per-host, so technically speaking it seems correct.
</content>
</entry>
<entry>
<title>Merge branch 'fm/apt-rate-limit' into 'main'</title>
<updated>2024-11-18T13:52:58Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-18T13:52:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=39de3df0774dce8f858cbce384ac63d50c632f5f'/>
<id>urn:sha1:39de3df0774dce8f858cbce384ac63d50c632f5f</id>
<content type='text'>
http: use Retry-After HTTP header to optimize retries

See merge request apt-team/apt!383</content>
</entry>
<entry>
<title>http: add test for Retry-After handling</title>
<updated>2024-11-18T12:44:49Z</updated>
<author>
<name>Felix Moessbauer</name>
<email>felix.moessbauer@siemens.com</email>
</author>
<published>2024-11-13T14:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cabcaf3c326408bf71a9a83f51973214fddcefb1'/>
<id>urn:sha1:cabcaf3c326408bf71a9a83f51973214fddcefb1</id>
<content type='text'>
When enabling Acquire::Retries::HandleRetryAfter, the value of the
Retry-After http header is honored and the retry is not executed earlier
than this point in time (except if that is longer than the max delay
time). The added test checks if the request is delayed at least by the
requested time.

Signed-off-by: Felix Moessbauer &lt;felix.moessbauer@siemens.com&gt;
</content>
</entry>
<entry>
<title>http: use Retry-After HTTP header to optimize retries</title>
<updated>2024-11-18T12:44:49Z</updated>
<author>
<name>Felix Moessbauer</name>
<email>felix.moessbauer@siemens.com</email>
</author>
<published>2024-11-08T14:04:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b9dea5a7c43fd91bcd23d1585d39a726d098285'/>
<id>urn:sha1:7b9dea5a7c43fd91bcd23d1585d39a726d098285</id>
<content type='text'>
Some mirrors like snapshot.debian.org apply strict http rate limits.
While apt already has an exponential backoff mechanism implemented, this
is not sufficient due to the following reasons:

1. all retries happen roughly at the same time
2. the retry-after information from the server is not used

We fix this by improving the algorithm: First, if present, the timestamp
or duration of the Retry-After header is added to the exponential
backoff, optimizing for success-on-second-try. Second, a random delay is
added (delay += [0, delay]) to distribute the retries to not immediately
run into the limit again. To avoid super-long delays, this is capped by
the configured maximum delay. This logic only becomes active if the
option Acquire::Retries::HandleRetryAfter is enabled.

Signed-off-by: Felix Moessbauer &lt;felix.moessbauer@siemens.com&gt;
</content>
</entry>
<entry>
<title>string_view: Include missing headers</title>
<updated>2024-11-17T15:41:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-11-17T15:39:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=db57773a96d1108bdad78ff3d1359a88d9689912'/>
<id>urn:sha1:db57773a96d1108bdad78ff3d1359a88d9689912</id>
<content type='text'>
Specifically the lack of the `string_view` include is causing
compilation failures for rust-rust-apt.

Running iwyu also adds `algorithm` for our use of `std::min`,
and `iosfwd` for our use of `std::ostream` none of which seem
to be causing build failures so far.
</content>
</entry>
<entry>
<title>Merge branch 'reefer' into 'main'</title>
<updated>2024-11-14T19:17:16Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-14T19:17:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4f85954cb77b295d7853c420e918933293affed4'/>
<id>urn:sha1:4f85954cb77b295d7853c420e918933293affed4</id>
<content type='text'>
DEFER

See merge request apt-team/apt!392</content>
</entry>
<entry>
<title>Merge branch 'noref' into 'main'</title>
<updated>2024-11-14T19:02:57Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-14T19:02:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4f0f7d2ba3ec25068e5cfe72bf403b1966a21dbf'/>
<id>urn:sha1:4f0f7d2ba3ec25068e5cfe72bf403b1966a21dbf</id>
<content type='text'>
std::string_view const &amp; -&gt; std::string_view

See merge request apt-team/apt!397</content>
</entry>
<entry>
<title>Merge branch 'append' into 'main'</title>
<updated>2024-11-14T19:02:34Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-14T19:02:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6ee247f4e5130a348c46ed385a0f405f32cc92d4'/>
<id>urn:sha1:6ee247f4e5130a348c46ed385a0f405f32cc92d4</id>
<content type='text'>
(+=)+= -&gt; append().append()

See merge request apt-team/apt!398</content>
</entry>
<entry>
<title>Merge branch 'svequiv3everything' into 'main'</title>
<updated>2024-11-14T18:39:54Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-14T18:39:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f7fb7fb921c3bbfa0ef086b0cc9343d126d0ed09'/>
<id>urn:sha1:f7fb7fb921c3bbfa0ef086b0cc9343d126d0ed09</id>
<content type='text'>
Prepare for APT::StringView -&gt; std::string_view, #if APT_PKG_ABI &gt; 600: ABI migrations and using APT::StringView = std::string_view;

See merge request apt-team/apt!396</content>
</entry>
</feed>
