<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test, branch 2.9.33</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.33</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.33'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-03-12T17:54:25Z</updated>
<entry>
<title>solver3: Fix test-resolve-by-keep-new-recommend</title>
<updated>2025-03-12T17:54:25Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-12T17:47:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=460753f991ca42c3c4a5ed494038db76c55e2a08'/>
<id>urn:sha1:460753f991ca42c3c4a5ed494038db76c55e2a08</id>
<content type='text'>
Reorder the if branches a bit to simplify the understanding
of the promotions, and allow us to keep track of which
dependency existed in the installed version.

Change the rule for promoting new recommends to only promote
new recommends to depends in *upgrade* and not *dist-upgrade*
per the test-resolve-by-keep-new-recommends test case.

This makes some sense: In a dist-upgrade, the solver could
otherwise decide to remove an installed package if both the
following hold:

(1) something needs the upgraded version | something else
(2) the upgraded version is not installable due to unsat recommends
</content>
</entry>
<entry>
<title>solver3: Fix Recommends/Suggests vs Enhances confusion</title>
<updated>2025-03-12T17:52:16Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-12T17:34:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a4ce187b40f3bbd110a7cc35f9a5af5a8b7b0c9e'/>
<id>urn:sha1:a4ce187b40f3bbd110a7cc35f9a5af5a8b7b0c9e</id>
<content type='text'>
We accidentally considered an Enhances a reason to keep
a package installed, which of course it is not, fix the
determination of "existing soft dependency" to only include
soft dependencies that should keep a package installed in
the autoremover to solve the issue.

This also fixes edsp/mantic-upgrade-rel-to-2024-05-29.edsp
to not install llvm-13-dev for clang-13 which is an installed
package with no upgrade.

Also ensure we stop after the first match; the DependsList()
is ordered by decreasing priority and we don't want to override
Recommends by Suggests in case a package declares both...

LP: #2101800
</content>
</entry>
<entry>
<title>test: Fix some weird editing artefact</title>
<updated>2025-03-12T17:18:17Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-12T17:17:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5c101b3d4651b2f181ac586b088894cce5008d3b'/>
<id>urn:sha1:5c101b3d4651b2f181ac586b088894cce5008d3b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>solver3: Correctly determine 'same' or groups</title>
<updated>2025-03-10T21:47:39Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-10T21:05:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8a6b694108f41afd1e6cdba4c91481697f9b3004'/>
<id>urn:sha1:8a6b694108f41afd1e6cdba4c91481697f9b3004</id>
<content type='text'>
We incorrectly used the DependencyData of the first or group
member, however that only checked that the first or group member
was the same and that both either had a next member or not.
</content>
</entry>
<entry>
<title>edsp: Set Forbid-New-Install/Forbid-Remove: no if other is set</title>
<updated>2025-03-10T21:33:05Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-10T17:37:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1fc8e9eee4d6a81f907b399034f6f82da2e98140'/>
<id>urn:sha1:1fc8e9eee4d6a81f907b399034f6f82da2e98140</id>
<content type='text'>
The upgrade code may also set Upgrade: yes, and this sets both to
yes, so `apt upgrade` dumps behave like `apt-get upgrade` ones,
which of course is not intentional.

moo
</content>
</entry>
<entry>
<title>solver3: Do not prefer new installs over manually installed obsoletes</title>
<updated>2025-03-09T13:53:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-09T13:52:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5daf6dbfd272be2f8e3c59d4bab4be8c119b7aa1'/>
<id>urn:sha1:5daf6dbfd272be2f8e3c59d4bab4be8c119b7aa1</id>
<content type='text'>
Only move obsolete packages last that are automatically installed,
as we don't want to remove manually installed obsolete packages.

Add some missing const annotations to the operator[] arguments as
well that were needed.

LP: #2100247
</content>
</entry>
<entry>
<title>Print --solver 3.0 explanation if both internal and it failed</title>
<updated>2025-03-09T12:55:23Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-09T12:55:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6c112f9860c1730237029f4e23d40bf658d73704'/>
<id>urn:sha1:6c112f9860c1730237029f4e23d40bf658d73704</id>
<content type='text'>
This can provide useful additional context.

To avoid updating the whole test suite for it, introduce a new
option `quiet::NoSolver3Explanation` and set it by default. All
the other tests that assert output will already have matching
tests for --solver 3.0 with the correct messages asserted, it
makes no sense to duplicate them.
</content>
</entry>
<entry>
<title>Evaluate and fall back to the 3.0 solver</title>
<updated>2025-03-09T12:33:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-18T12:06:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=935a9ab334e55a29363f45e7de6338c47337e806'/>
<id>urn:sha1:935a9ab334e55a29363f45e7de6338c47337e806</id>
<content type='text'>
Always run the 3.0 solver after the internal solver. If the internal
solver failed, and the 3.0 solver did not, use the 3.0 result.

If 3.0 solver failed or produced a worse result than the internal
solver, write an apport crash dump.

We exclude situations which we now the solver can't handle, i.e.
removals are forbidden and you requested removals, and stuff like
that.
</content>
</entry>
<entry>
<title>solver3: Verbose error messages</title>
<updated>2025-03-08T22:18:05Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-06T19:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3967b75ae4a10d0d79560dfecb8eb210aad4f4f2'/>
<id>urn:sha1:3967b75ae4a10d0d79560dfecb8eb210aad4f4f2</id>
<content type='text'>
Introduce a new function, LongWhyStr() that returns a longer
reason for why something is being installed (or not).

This does the same path walk as the other function does, but
it renders the clauses at each level, and one per line, so
the whole output is a lot more informative.

It is a separate function to keep the existing debug messages
use the simple single line implication graph

We remove the other special case in AddWork() for empty solutions
to mke use of the general case in Solve() instead, and then adapt
the case in Solve() to the same case as in Enqueue(). This also
happens to fix the bug that when we encountered an empty clause
we just printed the clause had no solution, but not how we got
to install the package with the clause.

Adapt the test suite for the changes which is an annoying amount
of paperwork.
</content>
</entry>
<entry>
<title>test: Grep continuation lines in error messages</title>
<updated>2025-03-04T20:41:41Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-04T20:41:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1b959f0129460f2267e66bc77ca9464c28c915c5'/>
<id>urn:sha1:1b959f0129460f2267e66bc77ca9464c28c915c5</id>
<content type='text'>
This is important for upcoming multi-line solver error message
work.
</content>
</entry>
</feed>
