848 Commits

Author SHA1 Message Date
Niels Thykier
0c1147e4e1 test: Fix typo
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-03-24 06:38:21 +00:00
Niels Thykier
bc0a5f6e2b britney: Split "ood" and "unsat_deps" loops
The "Out of date" binaries loop has gotten too complex to also handle
the "unsatisifiable dependency" check.  Concretely, we failed to
generate proper excuses for arch:all packages due to this.

Separate the two loops to restore the arch:all check.

Signed-off-by: Niels Thykier <niels@thykier.net>
2018-01-07 13:16:08 +00:00
Niels Thykier
24bd315c20 Update .gitignore
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-01-07 12:19:46 +00:00
Paul Wise
94a3136f64 Drop duplicate 'has new bugs' excuses item
The other item includes bug numbers so this one is less useful.

Closes: https://bugs.debian.org/886509
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-01-07 12:18:13 +00:00
Niels Thykier
20f709e157 doc: Wording/typos
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-12-05 06:31:23 +00:00
Niels Thykier
c11d329d77 Add Makefile to generate documentation
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-12-03 13:00:41 +00:00
Niels Thykier
0f41b1b6df Rewrite hints as restructured text
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-12-03 12:56:48 +00:00
Niels Thykier
90e4bb6ba2 Rewrite documentation in sphinx
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-12-03 12:06:37 +00:00
Niels Thykier
5c3229467a write_heidi: Include cruft arch:all packages in the output
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-19 21:47:38 +00:00
Paul Gevers
0b58a313cb
Treat arch:all nearly as regular arch when determining out-of-dateness
Closes #859566
2017-11-17 18:21:15 +01:00
Niels Thykier
7217c22b42 get_dependency_solvers: The "foo:any" modifier can also appear in B-D relations
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-12 11:46:17 +00:00
Niels Thykier
2242821c01 BuildDependsPolicy: Add missing build_depends=True to get_dependency_solvers
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-12 11:36:35 +00:00
Niels Thykier
c195268019 piuparts: Properly discard the URL for testing
The PiupartsPolicy does not use the report URL for testing, so we do
not need to store it in memory.  Unfortunately, the logic was broken
and the discard did not happen.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-12 08:41:39 +00:00
Niels Thykier
bda39f8ca0 Support :native in build-dependency relations
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-12 07:50:49 +00:00
Niels Thykier
89765bc374 BuildDependsPolicy: Keep block_txt and block in sync
If a package had:

  Build-Depends: foo [i386], uninstallable-pkg

Then the excuses for amd64 would point to "foo [i386]" rather than
"uninstallable-pkg".

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-11 22:07:49 +00:00
Niels Thykier
ee27d7a67c Add BuildDependsPolicy to check Build-Depends(-Arch) availability
Add a new "BuildDependsPolicy" that will check the satisfiability of
the build-dependencies listed in the Build-Depends and
Build-Depends-Arch fields.  This enables gating of packages based on
missing / broken build-dependencies.

There are some limitations:

 * Build-Depends-Indep is ignored for now.  Missing or broken packages
   listed in Build-Depends-Indep will be continue to be silently
   ignored.

 * Being a policy check, it does not enforce "self-containedness" as
   a package can still migrate before a build-dependency.  However,
   this can only happen if the build-dependency is ready to migrate
   itself.  If the build-dependency is not ready (e.g. new RC bugs),
   then packages build-depending on it cannot migrate either (unless
   the version in testing satisfies there requirements).

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-11 15:49:48 +00:00
Niels Thykier
c537f0554f Move PolicyVerdict to britney2.policies 2017-11-02 19:31:11 +00:00
Niels Thykier
784d80ab4c Replace a few lists with sets
We basically use them as sets and do not need to rely on the ordering,
so we might as well just turn them into proper sets.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-02 19:30:40 +00:00
Niels Thykier
94034f225f excuse: Drop unused field
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-11-02 19:29:51 +00:00
Adam D. Barratt
3ee3ba5463 doc/hints.md: subject-number agreement fix
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-10-05 17:56:25 +00:00
Adam D. Barratt
f7173b9d66 doc/hints.md: fix another couple of "Britney" -> "britney"
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-10-05 17:54:49 +00:00
Adam D. Barratt
5e58d18676 doc/hints.md: remove gendered pronouns, to match other documentation
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-10-05 17:54:06 +00:00
Adam D. Barratt
c6170a6042 docs/hints.md: be consistent of capitalisation of "britney"
Only capitalise it at the start of sentences, not within them

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-10-05 17:52:27 +00:00
Adam D. Barratt
ac39d2448f doc/hints.md: grammar fix - "if it was" -> "if it were"
This phrasing is the subjunctive mood, for which English always uses
"were"

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-10-05 17:50:10 +00:00
Adam D. Barratt
3220710a6c britney.py: stop referring to the freeze policy while we're not frozen
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2017-09-08 07:43:11 +00:00
Niels Thykier
d3b90e754b britney: Rewrite conditional assignment
The original method confused IntelliJ into thinking that binary_t was
a boolean rather than an object.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-09-02 11:10:58 +00:00
Niels Thykier
8352d62999 Improve bug example and avoid usage of "RC"
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-26 17:29:52 +00:00
Niels Thykier
7e2c62a600 Avoid gendered pronoun for britney
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-26 17:17:22 +00:00
Niels Thykier
e2cbe15157 Improve documentation based on review in #d-release
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-26 15:18:48 +00:00
Niels Thykier
cb5d888733 doc: Document basic migration handling/debugging
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-26 14:09:19 +00:00
Niels Thykier
1042c626ec excuse: Improve text for REJECTED_NEEDS_APPROVAL
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-26 12:53:20 +00:00
Niels Thykier
77d737cefe doc/hints.md: New doc based on the RT README for hints
There is no reason why the hint documentation is not in the britney
code base (particularly, as we would be more likely to update it when
we add new hints).

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-13 19:25:08 +00:00
Niels Thykier
2692b503d4 Drop auto-generated doxygen documentation
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-08-13 17:13:08 +00:00
Niels Thykier
6e022eed54 test: Add test for a bug I was about to introduce
When I rewrote the compute_scc function into an iterative variant, I
almost included a bug that could make it come up with components that
were not strongly-connected.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-29 08:05:52 +00:00
Niels Thykier
69473eefca solver: Extract compute_scc into a function
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-29 07:54:48 +00:00
Niels Thykier
bd375fdd85 solver: Make _compute_scc iterative
Rewrite _compute_scc to be iterative to avoid call recursion limit for
graphs with long dependency chains.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-29 07:40:15 +00:00
Niels Thykier
64653087d0 solver: Fix bug where some items were not emitted
Sometimes the solver would correctly compute which items are grouped
together, but then fail to emit some groups.  This is trivially
fixable by forcing an update of "before" + "after" relations.
Admittedly, this looks unnecessary, so it may just be hiding the bug.

Nonetheless, the change makes the new test_solver_simple_scc test
produce the expected result.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-28 21:36:01 +00:00
Jonathan Wiltshire
981b9333f6 Revert "Implement a mandatory 10 day migration delay"
This reverts commit 0349cd94774d4f7ba675570bb406fb0dbb21ef5f.

Signed-off-by: Jonathan Wiltshire <jmw@debian.org>
2017-06-19 19:11:13 +00:00
Ivo De Decker
363f51fd3b Give myself force and force-hint
Signed-off-by: Ivo De Decker <ivodd@debian.org>
2017-04-09 09:41:20 +00:00
Niels Thykier
5021053db5 Support doing migration-less runs
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-04-08 06:21:26 +00:00
Niels Thykier
189edf42ec britney: Move britney's start of day to 7 pm
In preparation for running Britney 4 times a day and we wanting the
22:00 UTC run to do the aging.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-04-08 06:21:26 +00:00
Raphaël Hertzog
57bc721f50 Document new files required by PiupartsPolicy 2017-04-07 13:08:46 +02:00
Raphaël Hertzog
e3323d9a67 Rename FUCKED_ARCHES into OUTOFSYNC_ARCHES in template configuration file
Signed-off-by: Raphaël Hertzog <hertzog@debian.org>
2017-04-07 13:08:46 +02:00
Niels Thykier
f6120e5ec3 Use the correct required age in html excuses
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-03-19 18:01:35 +00:00
James McCoy
0c44d3ac27 excuse: Add an EOL to the verdict summary line in HTML output
devscripts' grep-excuses expects each <li> to be on its own line.  When
d7a676d0741729bb643e0b8c54b989cb747c6a4b added the verdict summary,
without an EOL, it broke grep-excuses' ability to search by maintainer.

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-25 06:54:14 +00:00
Niels Thykier
67c784f796 excuse: Use verdict name rather than object in excuses.yaml
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-14 07:36:54 +00:00
Niels Thykier
9ca5f7e24e Add more verdicts to provide more detailed excuses
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-13 19:37:53 +00:00
Niels Thykier
d7a676d074 Aggregate all migration decisions and present it in excuses
With this change, Britney can now provide a very brief summary of the
migration via one single value (YAML) or line (HTML).  This solves two
issues:

 * It provides an aggregated version of the policy decision without
   having to loop over all policies (and even those would not give
   a full verdict on their own as not all rejections come from
   policies)

 * It enables a simple way to inform readers of the HTML excuses of
   whether a rejection is permanent or not.  This should hopefully
   make it easier for contributors to understand Britney and react
   more pro-actively.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-13 19:37:53 +00:00
Niels Thykier
f40a7f41b3 Replace dontinvalidate with forced
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-13 19:37:53 +00:00
Niels Thykier
6e560c854a Only show the first (relevant) remove hint in excuses
In the unlike case that there are multiple removal hints, showing
the first valid hint should be sufficient.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-02-13 19:37:53 +00:00