1 |
On 01/26/2017 06:48 PM, Doug Freed wrote: |
2 |
> This is the email I get when a Manifest is missing DIST entries; it's |
3 |
> more verbose than it needs to be, but I'd rather have more than less. |
4 |
> In this particular case, the developer that made the bad commit likely |
5 |
> had something they were working on in sys-cluster/torque added to the |
6 |
> git index (ie, they did git add), and then needed to make an unrelated |
7 |
> change, and didn't stash their changes beforehand. You should always |
8 |
> check 'git status' output before running repoman commit and/or git |
9 |
> commit. It's probably best to check before you start on a change, and |
10 |
> then you can 'git stash -u' right away (the -u includes untracked |
11 |
> files, which is useful if your in progress change is adding something |
12 |
> new), and then after you've committed the change you wanted to get |
13 |
> done right away, you can 'git stash pop' to get back to the state you |
14 |
> were in before. |
15 |
> |
16 |
> This particular issue has already been fixed, but I'll be forwarding |
17 |
> all these emails to the list from now on (I have to do that manually, |
18 |
> because there are some that aren't anybody's fault, and I don't need |
19 |
> to spam you about those). |
20 |
> |
21 |
> -Doug |
22 |
> |
23 |
> |
24 |
> ---------- Forwarded message ---------- |
25 |
> From: (Cron Daemon) <gmirror@g.o> |
26 |
> Date: Thu, Jan 26, 2017 at 5:39 PM |
27 |
> Subject: Cron <gmirror@dipper> /usr/local/bin/pidlock -s rsync-gen |
28 |
> /bin/bash /usr/local/bin/mastermirror/rsync-gen.sh |
29 |
> To: infra-gmirror@g.o |
30 |
> |
31 |
> |
32 |
> [ERROR/ForkPoolWorker-7] sys-cluster/torque is missing DIST entries! |
33 |
> Traceback (most recent call last): |
34 |
> File "/usr/lib64/python3.4/site-packages/portage/checksum.py", line |
35 |
> 23, in _open_file |
36 |
> encoding=_encodings['fs'], errors='strict'), 'rb') |
37 |
> FileNotFoundError: [Errno 2] No such file or directory: |
38 |
> b'/var/empty/torque-6.1.0.tar.gz' |
39 |
> |
40 |
> During handling of the above exception, another exception occurred: |
41 |
> |
42 |
> Traceback (most recent call last): |
43 |
> File "/usr/local/bin/mastermirror/thicken-manifests.py", line 122, |
44 |
> in maybe_thicken_manifest |
45 |
> manifest.create(assumeDistHashesAlways=True) |
46 |
> File "/usr/lib64/python3.4/site-packages/portage/manifest.py", line |
47 |
> 506, in create |
48 |
> self.fhashdict["DIST"][f] = perform_multiple_checksums(fname, self.hashes) |
49 |
> File "/usr/lib64/python3.4/site-packages/portage/checksum.py", line |
50 |
> 426, in perform_multiple_checksums |
51 |
> rVal[x] = perform_checksum(filename, x, calc_prelink)[0] |
52 |
> File "/usr/lib64/python3.4/site-packages/portage/checksum.py", line |
53 |
> 390, in perform_checksum |
54 |
> myhash, mysize = hashfunc_map[hashname](myfilename) |
55 |
> File "/usr/lib64/python3.4/site-packages/portage/checksum.py", line |
56 |
> 52, in __call__ |
57 |
> with _open_file(filename) as f: |
58 |
> File "/usr/lib64/python3.4/site-packages/portage/checksum.py", line |
59 |
> 31, in _open_file |
60 |
> raise portage.exception.FileNotFound(filename) |
61 |
> portage.exception.FileNotFound: b'/var/empty/torque-6.1.0.tar.gz' |
62 |
> |
63 |
> !!! A file listed in the Manifest could not be found: |
64 |
> /var/tmp/gmirror-rsync/gentoo-x86-stage/sys-cluster/torque/torque-6.0.1.ebuild |
65 |
> /usr/local/bin/mastermirror/rsync-gen.sh: A Manifest has a failure! |
66 |
> /var/tmp/gmirror-rsync/logs/regen/regen-run-20170126-2238.log.validate: |
67 |
> |
68 |
> RepoMan scours the neighborhood... |
69 |
> digest.missing [fatal] 1 |
70 |
> /var/tmp/gmirror-rsync/gentoo-x86-stage/sys-cluster/torque::torque-6.1.0.tar.gz |
71 |
> digest.unused 1 |
72 |
> file.size 69 |
73 |
> manifest.bad [fatal] 1 |
74 |
> sys-cluster/torque/Manifest |
75 |
> Please fix these important QA issues first. |
76 |
> RepoMan sez: "Make your QA payment on time and you'll never see the |
77 |
> likes of me." |
78 |
> |
79 |
|
80 |
While increasing QA is a laudable goal, I'm not sure spamming the list |
81 |
every time you detect a QA issue is the right way to proceed with |
82 |
improving QA. I'm much rather you adopt a strategy similar to mgorny's |
83 |
QA tool, and email the dev responsible for the commit that they broke |
84 |
the repo. Find a package with an issue, extract the last commit on |
85 |
that directory, get the committer, and send them the email. In all |
86 |
likelihood, these kinds of errors aren't intentional, and public shaming |
87 |
isn't really necessary in this case. Simply notifying the developer so |
88 |
that they can rectify the issue should be sufficient, unless I'm missing |
89 |
something. |
90 |
|
91 |
-- |
92 |
NP-Hardass |