<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test/integration/test-apt-get-upgrade-by-source, branch main</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=main</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-02-17T09:28:17Z</updated>
<entry>
<title>solver3: Upgrade by source package</title>
<updated>2026-02-17T09:28:17Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2026-02-17T09:28:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9f3ecca2b32e4fe56a05811392e01416092f85fa'/>
<id>urn:sha1:9f3ecca2b32e4fe56a05811392e01416092f85fa</id>
<content type='text'>
Implement the "APT::Get::Upgrade-By-Source-Package" option as
the classic solver does.

Here this is equally straight forward now: We enqueue optional, but
eager, clauses of the form

    foo=2 -&gt; foo-data=2

for each sibling in the source version, assuming they are currently
installed, and the selection is not the current version.

This softly enforces upgrades of already installed siblings, but
in non-strict-pinning mode it will not affect the selection of
new packages to be installed.

A more complete solution to version selection by source package
also seems feasible, where we change the "priority" of versions
in the solver dynamically - currently they are statically evaluated.
Such that, when you select foo=2, and something installs foo-data,
foo-data would be installed in version 2 even if version 3 were its
candidate.
</content>
</entry>
<entry>
<title>Fix the test suite by adding new "m" flags to debug output</title>
<updated>2023-11-22T15:33:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-11-22T15:22:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b0e336787be8a73280cf4cf037295c6347bcbd83'/>
<id>urn:sha1:b0e336787be8a73280cf4cf037295c6347bcbd83</id>
<content type='text'>
In "Restore ?garbage by calling MarkAndSweep before parsing" I
made install code run MarkAndSweep before parsing arguments such
that the "?garbage" pattern works correctly.

This caused test suite breakage because packages now ended up
with marked flags in the debug output. Hence add "m" to the output
we assert where necessary.

In a nicer world we might want to just do MarkAndSweep if we actually
have a ?garbage pattern to evaluate but that is a bit unpredictable
in terms of performance expectations and because a "read-only" construct
modifies the depcache, so let's go with the more expected option for now

Regression-of: b6f362e8013b03efce54e7381e0e22fac1fa1539
</content>
</entry>
<entry>
<title>Add flag to disable upgrade by source and test case</title>
<updated>2022-07-24T13:44:13Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-07-24T13:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=518746f7e03115eb7bdf894d23e74ae115c8717b'/>
<id>urn:sha1:518746f7e03115eb7bdf894d23e74ae115c8717b</id>
<content type='text'>
</content>
</entry>
</feed>
