Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Thomas Huth writes: > On 2018-11-21 19:14, Markus Armbruster wrote: >> Time for another update. My HEAD is at v3.1.0-rc2. > > Thanks a lot for this, Markus, very appreciated! > > [...] >> Unmaintained files sorted by number of commits in the past year >> (v2.11.0-rc2): >> >> $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list >> v2.11.0-rc2.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort >> -rn | head -n 100 >> 139 MAINTAINERS >> 138 configure >> 108 tests/Makefile.include >> 87 qemu-options.hx > > I still think we'd need someone to look after qemu-options.hx, since > these are public interfaces... QAPIfication to the rescue... [...] >> qdev needs a maintainer. It has needed one since forever. > > Definitely. But who could do that job? I'm afraid most (all?) candidates that have the experience lack the bandwidth. I certainly do. Let's ask git: $ scripts/get_maintainer.pl -f hw/core/qdev.c get_maintainer.pl: No maintainers found, printing recent contributors. get_maintainer.pl: Do not blindly cc: them on patches! Use common sense. Markus Armbruster (commit_signer:8/14=57%) "Philippe Mathieu-Daudé" (commit_signer:6/14=43%) Paolo Bonzini (commit_signer:5/14=36%) Eric Blake (commit_signer:4/14=29%) Laurent Vivier (commit_signer:2/14=14%) qemu-devel@nongnu.org (open list:All patches CC here) $ scripts/get_maintainer.pl -f --git-blame hw/core/qdev.c Anthony Liguori (authored lines:170/1114=15%,commits:49/158=31%) Peter Crosthwaite (authored lines:149/1114=13%) Paolo Bonzini (authored lines:112/1114=10%,commits:49/158=31%) Igor Mammedov (authored lines:72/1114=6%) Paul Brook (authored lines:65/1114=6%) "Andreas Färber" (commits:50/158=32%) Markus Armbruster (commits:27/158=17%) "Michael S. Tsirkin" (commits:27/158=17%) qemu-devel@nongnu.org (open list:All patches CC here) Any takers?
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 23/11/18 11:56, BALATON Zoltan wrote: > On Fri, 23 Nov 2018, Philippe Mathieu-Daudé wrote: >> On 22/11/18 22:56, BALATON Zoltan wrote: >>> While we're there, should I also add pc-bios/canyonlands.dts which is >>> the device tree for sam460ex? >> >> Yes, I suggest this set: >> >> pc-bios/canyonlands.dt? >> pc-bios/u-boot-sam460* >> roms/u-boot-sam460ex > > Well, canyonlands.dtb and u-boot-sam460-*.bin are binaries built from > canyonlands.dts and roms/u-boot-sam460ex respectively and > roms/u-boot-sam460ex is mirrored from my git repo. So should these be > added despite of this or is it enough to add canyonlands.dts? I thought > only sources are listed in MAINTAINERS not binaries or external sources. Hmm I see various binaries, i.e.: $ file pc-bios/s390-ccw.img pc-bios/s390-ccw.img: ELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=5bf569bf2205ea94a015c1fe2702d7efb446a8c5, stripped $ ./scripts/get_maintainer.pl -f pc-bios/s390-ccw.img Christian Borntraeger (supporter:S390-ccw boot) Thomas Huth (supporter:S390-ccw boot) Cornelia Huck (supporter:S390) qemu-s3...@nongnu.org (open list:S390-ccw boot) $ file pc-bios/u-boot.e500 pc-bios/u-boot.e500: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, stripped $ ./scripts/get_maintainer.pl -f pc-bios/u-boot.e500 David Gibson (odd fixer:e500) qemu-...@nongnu.org (open list:e500) If I have issues with a binary like 'canyonlands.dtb' I'd like to be able to contact the maintainer. Maybe this is not the best example since the 'canyonlands.dts' is there too ;) Regards, Phil.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Fri, 23 Nov 2018, Philippe Mathieu-Daudé wrote: On 22/11/18 22:56, BALATON Zoltan wrote: While we're there, should I also add pc-bios/canyonlands.dts which is the device tree for sam460ex? Yes, I suggest this set: pc-bios/canyonlands.dt? pc-bios/u-boot-sam460* roms/u-boot-sam460ex Well, canyonlands.dtb and u-boot-sam460-*.bin are binaries built from canyonlands.dts and roms/u-boot-sam460ex respectively and roms/u-boot-sam460ex is mirrored from my git repo. So should these be added despite of this or is it enough to add canyonlands.dts? I thought only sources are listed in MAINTAINERS not binaries or external sources. Regards, BALATON Zoltan
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Hi Zoltan, On 22/11/18 22:56, BALATON Zoltan wrote: > On Thu, 22 Nov 2018, Thomas Huth wrote: >>> 19 hw/display/sm501.c >> >> Maybe Balaton wants to adopt this file? > > As discussed before this was originally part of SH4 but since that seems > to be not actively maintained any more and latest changes were for > sam460ex I can add it to sam460ex. I planned to do that when I make any > changes in the future but if needed I can send a patch for this now. > > While we're there, should I also add pc-bios/canyonlands.dts which is > the device tree for sam460ex? Yes, I suggest this set: pc-bios/canyonlands.dt? pc-bios/u-boot-sam460* roms/u-boot-sam460ex Regards, Phil.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Thu, 22 Nov 2018, Thomas Huth wrote: 19 hw/display/sm501.c Maybe Balaton wants to adopt this file? As discussed before this was originally part of SH4 but since that seems to be not actively maintained any more and latest changes were for sam460ex I can add it to sam460ex. I planned to do that when I make any changes in the future but if needed I can send a patch for this now. While we're there, should I also add pc-bios/canyonlands.dts which is the device tree for sam460ex? Regards, BALATON Zoltan
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 2018-11-21 19:14, Markus Armbruster wrote: > Time for another update. My HEAD is at v3.1.0-rc2. Thanks a lot for this, Markus, very appreciated! [...] > Unmaintained files sorted by number of commits in the past year > (v2.11.0-rc2): > > $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list > v2.11.0-rc2.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort > -rn | head -n 100 > 139 MAINTAINERS > 138 configure > 108 tests/Makefile.include > 87 qemu-options.hx I still think we'd need someone to look after qemu-options.hx, since these are public interfaces... > 62 qemu-doc.texi > 56 Makefile > 44 tests/test-bdrv-drain.c > 26 tests/test-blockjob.c > 24 Makefile.objs > 22 VERSION > 21 tests/test-blockjob-txn.c > 21 scripts/checkpatch.pl > 20 default-configs/arm-softmmu.mak Maybe add that to one of Peter's ARM sections? > 19 hw/display/sm501.c Maybe Balaton wants to adopt this file? > 17 hw/misc/Makefile.objs > 16 include/sysemu/sysemu.h > 15 include/hw/mem/pc-dimm.h > 15 hw/sd/trace-events > 15 contrib/libvhost-user/libvhost-user.c > 14 tests/test-char.c > 14 hw/core/qdev.c > 13 scripts/update-linux-headers.sh > 13 scripts/device-crash-test That should go into the "Python scripts" section. > 13 hw/display/Makefile.objs > 13 .gitignore > 12 include/qom/cpu.h > 12 include/hw/mem/memory-device.h > 12 include/elf.h > 12 hw/misc/trace-events > 12 default-configs/ppc-softmmu.mak > 11 util/qht.c > 10 util/memfd.c > 10 qdev-monitor.c > 10 include/sysemu/blockdev.h > 10 include/qapi/qmp/dispatch.h > 10 hw/misc/ivshmem.c > 10 gdbstub.c > 10 docs/devel/testing.rst > 9 tests/check-qobject.c > 9 include/qemu/osdep.h > 9 include/hw/compat.h > 9 contrib/libvhost-user/libvhost-user.h > 8 util/qemu-config.c > 8 util/Makefile.objs > 8 linux-headers/linux/kvm.h > 8 iothread.c > 8 include/qemu/timer.h > 8 include/qemu/qht.h > 8 include/hw/qdev-properties.h > 8 include/hw/pci-host/uninorth.h uninorth is definitely related to mac99. > 8 hw/intc/trace-events > 8 hw/hyperv/hyperv.c > 8 hw/core/loader.c > 7 util/qsp.c > 7 tests/test-qht.c > 7 tests/.gitignore > 7 os-posix.c > 7 include/qemu/compiler.h > 7 include/monitor/monitor.h > 7 include/hw/qdev-core.h > 7 include/hw/loader.h > 7 include/hw/arm/smmu-common.h > 7 docs/qcow2-cache.txt > 7 default-configs/i386-softmmu.mak > 7 Makefile.target > 7 .gitmodules > 6 tests/check-qlit.c > 6 pc-bios/README > 6 include/sysemu/arch_init.h > 6 include/qemu/thread.h > 6 include/qemu/memfd.h > 6 include/hw/ssi/xilinx_spips.h That belongs to one of the ARM machines, I think. > 6 include/hw/hyperv/hyperv.h > 6 include/hw/block/block.h > 6 hw/nvram/fw_cfg.c > 6 hw/input/ps2.c > 6 docs/nvdimm.txt > 6 docs/interop/qmp-spec.txt > 6 device-hotplug.c > 6 default-configs/x86_64-softmmu.mak > 5 win_dump.c > 5 util/uri.c > 5 util/qemu-thread-posix.c > 5 util/oslib-posix.c > 5 tests/test-x86-cpuid-compat.c > 5 tests/test-rcu-list.c > 5 tests/tcg/README > 5 tests/migration/Makefile > 5 rules.mak > 5 roms/openbios > 5 pc-bios/openbios-ppc > 5 linux-headers/asm-x86/kvm.h > 5 linux-headers/asm-powerpc/kvm.h > 5 include/standard-headers/linux/pci_regs.h > 5 include/qemu/typedefs.h > 5 include/qemu/cutils.h > 5 include/hw/misc/iotkit-secctl.h > 5 hw/watchdog/watchdog.c > 5 hw/sd/ssi-sd.c > 5 hw/pci-host/bonito.c Bonito seems to belong to MIPS Fulong. > qdev needs a maintainer. It has needed one since forever. Definitely. But who could do that job? Thomas
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Time for another update. My HEAD is at v3.1.0-rc2. Markus Armbruster writes: > Markus Armbruster writes: > >> Paolo asked for an update. > > Another update; HEAD is commit e00da55. A.k.a. v2.7.0-rc5~7. >> Markus Armbruster writes: >> >>> Markus Armbruster writes: >>> In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. We actually went with Paolo's commit c6561586f0f "get_maintainer.pl: restrict cases where it falls back to --git". Later modified by commit 4db84796e75 "get_maintainer.pl: fall back to git if only lists are found". * Harder: improve MAINTAINERS coverage. >>> >>> A few folks have started doing that. Much appreciated! >>> >>> I collected recent patches to MAINTAINERS, and reran my analysis. >>> Let me back up subjective experience with hard data. The tree has quite a few files: $ git-ls-files | wc -l 3746 >>> >>> Now 3752. >> >> Eleven months later, this is 4387. > > Another eleven months later, it's 4921. 27 months later, it's 6461. 2633 end in .c. Counting them by extension: $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr 1836 c 818 h 133 out 105 S 97 objs 69 s 64 mak 48 json 47 py 41 txt 33 exit 33 err 16 xml 16 bin 13 rom 12 sh 12 dsl [Long tail that doesn't add up to anything interesting omitted] Let's look for .c not in MAINTAINERS: $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f --no-git-fallback $i`" ] || echo $i; done >unmaintained-files $ grep -c '\.c$' unmaintained-files 1066 That's almost 60%. Not good. >>> >>> Down to 491 our of 1841 (27%). Progress, but not quite enough. >> >> 461 out of 1945 (24%). At this linear rate, we'll reach 10% >> unmaintained in five years. > > This is now > > $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f > --no-git-fallback $i | grep -v '^qemu-devel@nongnu\.org'`" ] || echo $i; done > >unmaintained-files > $ grep -c '\.c$' unmaintained-files > 402 > > 402 out of 2132 (19%). More progress, but not yet there. armbru@dusky:~/work/qemu$ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f --no-git-fallback $i | grep -v '^qemu-devel@nongnu\.org'`" ] || echo $i; done >unmaintained-files armbru@dusky:~/work/qemu$ grep -c '\.c$' unmaintained-files 259 259 out of 2633 (10%). Getting down to 10% took us "only" a bit over three years instead of the projected five. >> We're still adding unmaintained .c files: >> >> $ git-diff --diff-filter=A --name-only e668d1b | grep -c '\.c$' >> 116 >> $ git-diff --diff-filter=A --name-only e668d1b | grep '\.c$' | join >> unmaintained-files - | wc -l >> 37 >> >> 37 out of 116 new files (32%) are not covered. That's worse than we do >> for old files. Inexcusable. > > $ git-diff --diff-filter=A --name-only 6138fbd | grep -c '\.c$' > 215 > $ git-diff --diff-filter=A --name-only 6138fbd | grep '\.c$' | join > unmaintained-files - | wc -l > 86 > > This time, it's 86 out of 215 (40%). Getting worse. I'll cook up a > patch to make checkpatch.pl catch such additions. We eventually took Joe Perches's commit 4be6131e329 "checkpatch: emit a warning on file add/move". $ git-diff --diff-filter=A --name-only e00da55 | grep -c '\.c$' 574 $ git-diff --diff-filter=A --name-only e00da55 | grep '\.c$' | join unmaintained-files - | wc -l 68 68 out of 574 new .c files are unmaintained (12%). We've gotten better, but still not good enough. Apparently, nobody cares for tests: $ grep '^tests/' unmaintained-files | grep -c '\.c$' 654 $ git-ls-files | grep '^tests/' | grep -c '\.c$' 664 >>> >>> Now 91 out of 665. >> >> 105 out of 687. > > 114 out of 726. 59 out of 794. Filtering those out leaves us with 412 unmaintained out of of 1172, or 35% unmaintained. Not good even if we (foolishly!) considered tests not worthy of maintenance. Maybe unmaintained files are much smaller. David A. Wheeler's SLOCCount counts 570kSLOC in 1212 maintained files (+140 files sloccount doesn't know how to count) vs. 300kSLOC in 1798 unmaintained files (+596 uncounted), or 35% unmaintained SLOC. With tests/ ignored, it's 30%. So, unmaintained files are indeed smaller, but 30-something percent is still not good. Where are
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 23.09.2016 14:56, Thomas Huth wrote: > On 30.08.2016 13:31, Markus Armbruster wrote: > [...] > Ideas? Takers? Full list of unmaintained files now: > [...] >> hw/misc/applesmc.c > > Is this file used at all anymore? I can't see any code that instantiates > this device ... so maybe that's a good candidate for clean-up, unless > somebody volunteers for maintaining this device? Ok, never mind, looks like you need to instantiate this device manually if you want to run OS X on QEMU. So it's still needed, I guess. Thomas
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30.08.2016 13:31, Markus Armbruster wrote: [...] Ideas? Takers? >>> >>> Full list of unmaintained files now: [...] > hw/misc/applesmc.c Is this file used at all anymore? I can't see any code that instantiates this device ... so maybe that's a good candidate for clean-up, unless somebody volunteers for maintaining this device? Thomas
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30.08.2016 13:31, Markus Armbruster wrote: > Markus Armbrusterwrites: > >> Paolo asked for an update. > > Another update; HEAD is commit e00da55. [...] >>> Full list of unmaintained files now: [...] > default-configs/aarch64-linux-user.mak > default-configs/aarch64-softmmu.mak > default-configs/alpha-linux-user.mak > default-configs/alpha-softmmu.mak > default-configs/arm-linux-user.mak > default-configs/arm-softmmu.mak > default-configs/armeb-linux-user.mak > default-configs/cris-linux-user.mak > default-configs/cris-softmmu.mak > default-configs/i386-bsd-user.mak > default-configs/i386-linux-user.mak > default-configs/i386-softmmu.mak > default-configs/lm32-softmmu.mak > default-configs/m68k-linux-user.mak > default-configs/m68k-softmmu.mak > default-configs/microblaze-linux-user.mak > default-configs/microblaze-softmmu.mak > default-configs/microblazeel-linux-user.mak > default-configs/microblazeel-softmmu.mak > default-configs/mips-linux-user.mak > default-configs/mips-softmmu-common.mak > default-configs/mips-softmmu.mak > default-configs/mips64-linux-user.mak > default-configs/mips64-softmmu.mak > default-configs/mips64el-linux-user.mak > default-configs/mips64el-softmmu.mak > default-configs/mipsel-linux-user.mak > default-configs/mipsel-softmmu.mak > default-configs/mipsn32-linux-user.mak > default-configs/mipsn32el-linux-user.mak > default-configs/moxie-softmmu.mak > default-configs/or32-linux-user.mak > default-configs/or32-softmmu.mak > default-configs/pci.mak > default-configs/ppc-linux-user.mak > default-configs/ppc-softmmu.mak > default-configs/ppc64-linux-user.mak > default-configs/ppc64-softmmu.mak > default-configs/ppc64abi32-linux-user.mak > default-configs/ppc64le-linux-user.mak > default-configs/ppcemb-softmmu.mak > default-configs/s390x-linux-user.mak > default-configs/s390x-softmmu.mak > default-configs/sh4-linux-user.mak > default-configs/sh4-softmmu.mak > default-configs/sh4eb-linux-user.mak > default-configs/sh4eb-softmmu.mak > default-configs/sound.mak > default-configs/sparc-bsd-user.mak > default-configs/sparc-linux-user.mak > default-configs/sparc-softmmu.mak > default-configs/sparc32plus-linux-user.mak > default-configs/sparc64-bsd-user.mak > default-configs/sparc64-linux-user.mak > default-configs/sparc64-softmmu.mak > default-configs/tilegx-linux-user.mak > default-configs/tricore-softmmu.mak > default-configs/unicore32-linux-user.mak > default-configs/unicore32-softmmu.mak > default-configs/usb.mak > default-configs/x86_64-bsd-user.mak > default-configs/x86_64-linux-user.mak > default-configs/x86_64-softmmu.mak > default-configs/xtensa-softmmu.mak > default-configs/xtensaeb-softmmu.mak Any ideas how to put the default-configs into the MAINTAINERS file? Most of them neither really belong to a certain machine, nor to a certain CPU, but rather to both ... i.e. should there be an entry in both sections? [...] > po/bg.po > po/de_DE.po > po/fr_FR.po > po/hu.po > po/it.po > po/messages.po > po/tr.po > po/zh_CN.po I think the po files have kind of a maintainer - the person who's listed in the "Last-Translator:" section of the header there. Maybe we could/should teach get_maintainer.pl to look at that header? > replay/Makefile.objs > replay/replay-char.c > replay/replay-events.c > replay/replay-input.c > replay/replay-internal.c > replay/replay-internal.h > replay/replay-time.c > replay/replay.c Maybe Pavel Dovgalyuk could maintain those? Thomas
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
I really shouldn't reply to this, because more maintainer duties is about the last thing I need, but here goes anyway: Paolo Bonziniwrites: > On 30/08/2016 17:29, Markus Armbruster wrote: >> > > > Active subsystems lacking a maintainer include tilegx, qdev, replay. >> > > >> > > You, Eduardo, me? >> > >> > FWIW I was referring to qdev. >> >> Jointly? > > A subset not including me would also be fine. But since the git > fallback still exists, and the code is _obviously_ maintained, I don't > think there is a particular hurry to add new people to the list. > Maintainers are most useful when there are a lot of simple patches, not > when each patch's design must be discussed in the community. Even then, having someone "own" the discussion is useful: make sure it happens, and stays on track. Moreover, not *all* qdev patches need wider discussion. You're doing a good job picking up such patches to "unmaintained" code. Still, having less "unmaintained" code can only make that job easier. Last but not least, $ scripts/get_maintainer.pl -f hw/core/qdev.c get_maintainer.pl: No maintainers found, printing recent contributors. get_maintainer.pl: Do not blindly cc: them on patches! Use common sense. Markus Armbruster (commit_signer:4/12=33%) David Gibson (commit_signer:4/12=33%) Eric Blake (commit_signer:3/12=25%) Igor Mammedov (commit_signer:2/12=17%) "Andreas Färber" (commit_signer:2/12=17%) qemu-devel@nongnu.org (open list:All patches CC here) must look scary for contributors who don't know that qdev "is _obviously_ maintained".
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 08/30/2016 08:57 AM, Peter Maydell wrote: On 30 August 2016 at 13:48, Paolo Bonziniwrote: I think this is expected to some extent. Is it worth moving tests to many tests subdirectories, e.g. hw/scsi/tests? Many files would be covered automatically. Moving tests around in order to increase MAINTAINERS coverage seems to me to be putting the cart before the horse. I think the tests are fine where they are. In this case, it's not like we'll ever have a generic tests maintainer. Putting tests in with their subsystems makes some organizational sense. (Maybe it makes the Makefile and test suite a lot uglier, though.) It's a minor thing for now anyway. First order of business is the checkpatch script that squawks about new unmaintained files. --js thanks -- PMM
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30/08/2016 17:29, Markus Armbruster wrote: > > > > Active subsystems lacking a maintainer include tilegx, qdev, replay. > > > > > > You, Eduardo, me? > > > > FWIW I was referring to qdev. > > Jointly? A subset not including me would also be fine. But since the git fallback still exists, and the code is _obviously_ maintained, I don't think there is a particular hurry to add new people to the list. Maintainers are most useful when there are a lot of simple patches, not when each patch's design must be discussed in the community. Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Paolo Bonziniwrites: > On 30/08/2016 14:48, Paolo Bonzini wrote: >> > Active subsystems lacking a maintainer include tilegx, qdev, replay. >> >> You, Eduardo, me? > > FWIW I was referring to qdev. Jointly? [...]
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30/08/2016 14:48, Paolo Bonzini wrote: > > Active subsystems lacking a maintainer include tilegx, qdev, replay. > > You, Eduardo, me? FWIW I was referring to qdev. As to replay, it is mostly by Pavel but the remaining changes would need review by the relevant maintainers (e.g. USB for USB replay) so it's best left unmaintained. Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Tue, 30 Aug 2016 13:31:12 +0200 Markus Armbrusterwrote: > >> Full list of unmaintained files now: > docs/virtio-migration.txt I wrote this so I guess I could maintain it; but it should probably go with the other core virtio stuff? > default-configs/s390x-softmmu.mak > include/hw/watchdog/wdt_diag288.h > pc-bios/s390-ccw.img These can go with the s390 virtio-ccw machine.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Tue, 30 Aug 2016 14:40:05 +0200 Paolo Bonziniwrote: > On 30/08/2016 14:26, Cornelia Huck wrote: > > Same goes for linux-headers. We don't even touch those (beyond the > > massaging done by the import script). > > > > Maybe we could make get_maintainers.pl point at the maintainer for > > the import script for these headers? Or is there something more > > clever we could do? > > We need a "maintainer" for imported headers and then MAINTAINERS can do > > F: scripts/update-linux-headers.sh > F: linux-headers/ > F: includes/standard-headers/ Sounds reasonable. As I have stared at that script before, I can do that unless someone else wants to take it.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30 August 2016 at 13:48, Paolo Bonziniwrote: > I think this is expected to some extent. Is it worth moving tests to > many tests subdirectories, e.g. hw/scsi/tests? Many files would be > covered automatically. Moving tests around in order to increase MAINTAINERS coverage seems to me to be putting the cart before the horse. I think the tests are fine where they are. thanks -- PMM
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30/08/2016 13:31, Markus Armbruster wrote: > $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f > --no-git-fallback $i | grep -v '^qemu-devel@nongnu\.org'`" ] || echo $i; done > >unmaintained-files > $ grep -c '\.c$' unmaintained-files > 402 > > 402 out of 2132 (19%). More progress, but not yet there. Not bad. > $ git-diff --diff-filter=A --name-only 6138fbd | grep -c '\.c$' > 215 > $ git-diff --diff-filter=A --name-only 6138fbd | grep '\.c$' | join > unmaintained-files - | wc -l > 86 > > This time, it's 86 out of 215 (40%). Getting worse. I'll cook up a > patch to make checkpatch.pl catch such additions. Good idea. Apparently, nobody cares for tests: $ grep '^tests/' unmaintained-files | grep -c '\.c$' 654 $ git-ls-files | grep '^tests/' | grep -c '\.c$' 664 >>> >>> Now 91 out of 665. >> >> 105 out of 687. > > 114 out of 726. I think this is expected to some extent. Is it worth moving tests to many tests subdirectories, e.g. hw/scsi/tests? Many files would be covered automatically. > Active subsystems lacking a maintainer include tilegx, qdev, replay. You, Eduardo, me? > Headers that should probably be covered by existing MAINTAINERS stanzas > include include/sysemu/block-backend.h include/qom/cpu.h > include/hw/arm/xlnx-zynqmp.h. Also: hw/intc/gic* (ARM) hw/*/mips* (MIPS) hw/*/slavio* (SPARC) libdecnumber/ (target-ppc/) etc. Any kind soul that converts the Coverity components into MAINTAINERS patches? Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 30/08/2016 14:26, Cornelia Huck wrote: > Same goes for linux-headers. We don't even touch those (beyond the > massaging done by the import script). > > Maybe we could make get_maintainers.pl point at the maintainer for > the import script for these headers? Or is there something more > clever we could do? We need a "maintainer" for imported headers and then MAINTAINERS can do F: scripts/update-linux-headers.sh F: linux-headers/ F: includes/standard-headers/ Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Tue, 30 Aug 2016 13:31:12 +0200 Markus Armbrusterwrote: > >> Full list of unmaintained files now: (...) > include/standard-headers/asm-s390/kvm_virtio.h > include/standard-headers/asm-s390/virtio-ccw.h > include/standard-headers/asm-x86/hyperv.h > include/standard-headers/linux/if_ether.h > include/standard-headers/linux/input-event-codes.h > include/standard-headers/linux/input.h > include/standard-headers/linux/pci_regs.h > include/standard-headers/linux/types.h > include/standard-headers/linux/virtio_9p.h > include/standard-headers/linux/virtio_balloon.h > include/standard-headers/linux/virtio_blk.h > include/standard-headers/linux/virtio_config.h > include/standard-headers/linux/virtio_console.h > include/standard-headers/linux/virtio_gpu.h > include/standard-headers/linux/virtio_ids.h > include/standard-headers/linux/virtio_input.h > include/standard-headers/linux/virtio_net.h > include/standard-headers/linux/virtio_pci.h > include/standard-headers/linux/virtio_ring.h > include/standard-headers/linux/virtio_rng.h > include/standard-headers/linux/virtio_scsi.h > include/standard-headers/linux/virtio_types.h I don't think standard-headers can really be 'maintained', as they are essentially imported by a script. And while there's a certain overlap, the maintainer of a Linux header file is not neccessarily a qemu developer. (...) > linux-headers/COPYING > linux-headers/README > linux-headers/asm-arm/kvm.h > linux-headers/asm-arm/kvm_para.h > linux-headers/asm-arm/unistd.h > linux-headers/asm-arm64/kvm.h > linux-headers/asm-arm64/kvm_para.h > linux-headers/asm-arm64/unistd.h > linux-headers/asm-generic/kvm_para.h > linux-headers/asm-mips/kvm.h > linux-headers/asm-mips/kvm_para.h > linux-headers/asm-mips/unistd.h > linux-headers/asm-powerpc/epapr_hcalls.h > linux-headers/asm-powerpc/kvm.h > linux-headers/asm-powerpc/kvm_para.h > linux-headers/asm-powerpc/unistd.h > linux-headers/asm-s390/kvm.h > linux-headers/asm-s390/kvm_para.h > linux-headers/asm-s390/unistd.h > linux-headers/asm-x86/hyperv.h > linux-headers/asm-x86/kvm.h > linux-headers/asm-x86/kvm_para.h > linux-headers/asm-x86/unistd.h > linux-headers/asm-x86/unistd_32.h > linux-headers/asm-x86/unistd_64.h > linux-headers/asm-x86/unistd_x32.h > linux-headers/linux/kvm.h > linux-headers/linux/kvm_para.h > linux-headers/linux/psci.h > linux-headers/linux/userfaultfd.h > linux-headers/linux/vfio.h > linux-headers/linux/vhost.h > linux-headers/linux/virtio_config.h > linux-headers/linux/virtio_ring.h Same goes for linux-headers. We don't even touch those (beyond the massaging done by the import script). Maybe we could make get_maintainers.pl point at the maintainer for the import script for these headers? Or is there something more clever we could do?
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Markus Armbrusterwrites: > Paolo asked for an update. Another update; HEAD is commit e00da55. > Markus Armbruster writes: > >> Markus Armbruster writes: >> >>> In my experience, too many files are not covered by MAINTAINERS. >>> scripts/get_maintainer.pl falls back to git then, unless you say >>> --no-git-fallback. Copies sent there tends to annoy their recipients >>> without accomplishing all that much. >>> >>> Two obvious improvements: >>> >>> * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. >>> I'll post the obvious patch, please raise your objections there. >>> >>> * Harder: improve MAINTAINERS coverage. >> >> A few folks have started doing that. Much appreciated! >> >> I collected recent patches to MAINTAINERS, and reran my analysis. >> >>> Let me back up subjective experience with hard data. The tree has quite >>> a few files: >>> >>> $ git-ls-files | wc -l >>> 3746 >> >> Now 3752. > > Eleven months later, this is 4387. Another eleven months later, it's 4921. >>> Counting them by extension: >>> >>> $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr >>>1836 c >>> 818 h >>> 133 out >>> 105 S >>> 97 objs >>> 69 s >>> 64 mak >>> 48 json >>> 47 py >>> 41 txt >>> 33 exit >>> 33 err >>> 16 xml >>> 16 bin >>> 13 rom >>> 12 sh >>> 12 dsl >>> [Long tail that doesn't add up to anything interesting omitted] >>> >>> Let's look for .c not in MAINTAINERS: >>> >>> $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f >>> --no-git-fallback $i`" ] || echo $i; done >unmaintained-files >>> $ grep -c '\.c$' unmaintained-files >>> 1066 >>> >>> That's almost 60%. Not good. >> >> Down to 491 our of 1841 (27%). Progress, but not quite enough. > > 461 out of 1945 (24%). At this linear rate, we'll reach 10% > unmaintained in five years. This is now $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f --no-git-fallback $i | grep -v '^qemu-devel@nongnu\.org'`" ] || echo $i; done >unmaintained-files $ grep -c '\.c$' unmaintained-files 402 402 out of 2132 (19%). More progress, but not yet there. > We're still adding unmaintained .c files: > > $ git-diff --diff-filter=A --name-only e668d1b | grep -c '\.c$' > 116 > $ git-diff --diff-filter=A --name-only e668d1b | grep '\.c$' | join > unmaintained-files - | wc -l > 37 > > 37 out of 116 new files (32%) are not covered. That's worse than we do > for old files. Inexcusable. $ git-diff --diff-filter=A --name-only 6138fbd | grep -c '\.c$' 215 $ git-diff --diff-filter=A --name-only 6138fbd | grep '\.c$' | join unmaintained-files - | wc -l 86 This time, it's 86 out of 215 (40%). Getting worse. I'll cook up a patch to make checkpatch.pl catch such additions. >>> Apparently, nobody cares for tests: >>> >>> $ grep '^tests/' unmaintained-files | grep -c '\.c$' >>> 654 >>> $ git-ls-files | grep '^tests/' | grep -c '\.c$' >>> 664 >> >> Now 91 out of 665. > > 105 out of 687. 114 out of 726. >>> Filtering those out leaves us with 412 unmaintained out of of 1172, or >>> 35% unmaintained. Not good even if we (foolishly!) considered tests not >>> worthy of maintenance. >>> >>> Maybe unmaintained files are much smaller. David A. Wheeler's >>> SLOCCount counts 570kSLOC in 1212 maintained files (+140 files sloccount >>> doesn't know how to count) vs. 300kSLOC in 1798 unmaintained files (+596 >>> uncounted), or 35% unmaintained SLOC. With tests/ ignored, it's 30%. >>> So, unmaintained files are indeed smaller, but 30-something percent is >>> still not good. >>> >>> Where are the unmaintained files? Top-scoring directories outside >>> tests/ and include/, files in subdirs not counted: >>> >>> #files directory >>> 84 68% . >>> 63 100% default-configs >>> 48 100% pc-bios >>> 43 97% stubs >>> 39 100% util >>> 37 100% pc-bios/keymaps >>> 35 81% hw/display >>> 32 94% scripts >>> 26 92% docs >>> 26 100% libcacard >>> 23 69% hw/misc >>> 22 57% hw/net >>> 21 63% hw/intc >>> 19 100% roms >>> 18 100% disas >>> 18 56% hw/timer >>> 16 100% hw/core >>> 15 53% hw/char >>> 15 100% qga >>> 14 100% docs/specs >>> 12 92% hw/input >>> 12 100% qobject >>> 12 100% target-m68k >>> 11 100% backends >>> 11 100% pc-bios/s390-ccw >>> 10 71% hw/dma > > Different tack: what are the unmaintained files we actually change? > > Unmaintained files sorted by number of commits in the past year (commit > 1733681): > > $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list > 1733681.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort -rn | > head -n 100 > 79 trace-events > 77 MAINTAINERS >
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Eric Blakewrites: > On 09/22/2015 03:13 AM, Markus Armbruster wrote: > >>> Full list of unmaintained files now: >> [...] >> > >> docs/bitmaps.md >> docs/blkdebug.txt >> docs/blkverify.txt > >> docs/live-block-ops.txt > >> docs/qcow2-cache.txt >> docs/qdev-device-use.txt > >> docs/specs/qcow2.txt >> docs/specs/qed_spec.txt > > Kevin, Stefan - should these be added to Block maintainers? > >> docs/writing-qmp-commands.txt > > Markus: Probably belongs to qapi. QMP, actually. >> include/qapi/dealloc-visitor.h >> include/qapi/opts-visitor.h >> include/qapi/qmp-event.h >> include/qapi/qmp-input-visitor.h >> include/qapi/qmp-output-visitor.h >> include/qapi/qmp/dispatch.h >> include/qapi/qmp/json-lexer.h >> include/qapi/qmp/json-parser.h >> include/qapi/qmp/json-streamer.h >> include/qapi/qmp/qbool.h >> include/qapi/qmp/qdict.h >> include/qapi/qmp/qerror.h >> include/qapi/qmp/qfloat.h >> include/qapi/qmp/qint.h >> include/qapi/qmp/qjson.h >> include/qapi/qmp/qlist.h >> include/qapi/qmp/qobject.h >> include/qapi/qmp/qstring.h >> include/qapi/qmp/types.h >> include/qapi/string-input-visitor.h >> include/qapi/string-output-visitor.h >> include/qapi/util.h >> include/qapi/visitor-impl.h >> include/qapi/visitor.h > > Definitely belongs to qapi. The core visitor stuff is clearly QAPI. The QMP visitor stuff is where QAPI and QMP overlap. As long as they share a maintainer (currently me), it doesn't matter much on which side of the fence we file them. >> include/qemu/throttle.h > > Block? > >> include/qjson.h > > qapi? Nope. Belongs to qjson.c, which has nothing to do with QAPI. It's a (yet another) JSON writer that is currently used by migration. Unfortunate choice of filename, because not only do qjson.[ch] exist elsewhere already, but that qjson.c used to be right here until it got moved elsewhere! Results in a really confusing git-log. Details: commit a372823 moved qjson.c to qobject/qjson.c, and commit 190c882 created it again. Blerch. >> tests/check-qdict.c >> tests/check-qfloat.c >> tests/check-qint.c >> tests/check-qjson.c >> tests/check-qlist.c > >> tests/check-qstring.c > > qapi? Close: QObject. >> tests/test-opts-visitor.c > >> tests/test-qmp-commands.c >> tests/test-qmp-event.c >> tests/test-qmp-input-strict.c >> tests/test-qmp-input-visitor.c >> tests/test-qmp-output-visitor.c > >> tests/test-string-input-visitor.c >> tests/test-string-output-visitor.c > > qapi Again, some QAPI, some QAPI/QMP. I'll prepare patches to update MAINTAINERS for QAPI, QMP and QObject. > Also, should we have some new group for maintainer files, for things like: > > .exrc > .gitignore > .gitmodules > .mailmap > .travis.yml > CODING_STYLE > COPYING > COPYING.LIB > Changelog > HACKING > LICENSE > MAINTAINERS > > README > VERSION > > scripts/get_maintainer.pl If a maintainer steps forward.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Alberto Garciawrites: > On Wed 23 Sep 2015 10:24:55 AM CEST, Kevin Wolf wrote: > >>> > include/qemu/throttle.h >>> >>> Block? >> >> Would be covered if it were in the correct place (include/block/). Let's move it to the correct place then. >> Should we add a separate section for I/O throttling, maintained by >> Berto, as well? So far it's part of the block layer core - that is, >> officially maintained by me and I know next to nothing about it. > > Yes, you can list me as maintainer of the throttling code. Cool, thanks!
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Wed 23 Sep 2015 10:24:55 AM CEST, Kevin Wolfwrote: >> > include/qemu/throttle.h >> >> Block? > > Would be covered if it were in the correct place (include/block/). > > Should we add a separate section for I/O throttling, maintained by > Berto, as well? So far it's part of the block layer core - that is, > officially maintained by me and I know next to nothing about it. Yes, you can list me as maintainer of the throttling code. Thanks for telling, Berto
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Am 22.09.2015 um 20:07 hat Eric Blake geschrieben: > On 09/22/2015 03:13 AM, Markus Armbruster wrote: > > >> Full list of unmaintained files now: > > [...] > > > > > docs/bitmaps.md > > docs/blkdebug.txt > > docs/blkverify.txt > > > docs/live-block-ops.txt > > > docs/qcow2-cache.txt > > docs/qdev-device-use.txt > > > docs/specs/qcow2.txt > > docs/specs/qed_spec.txt > > Kevin, Stefan - should these be added to Block maintainers? Except for docs/qdev-device-use.txt, I guess. Also, they shouldn't be added to block in general, but to the specific block drivers/subsystems like qcow2, qed, block jobs etc. > > include/qemu/throttle.h > > Block? Would be covered if it were in the correct place (include/block/). Should we add a separate section for I/O throttling, maintained by Berto, as well? So far it's part of the block layer core - that is, officially maintained by me and I know next to nothing about it. Kevin pgpHHzYp8j38p.pgp Description: PGP signature
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 09/22/2015 05:13 AM, Markus Armbruster wrote: > Paolo asked for an update. > > Markus Armbrusterwrites: >> >> Full list of unmaintained files now: > [...] > Full list edited down to 'sections' with replies in-line... [ top level confetti/detritus ] [ backends/* ] [ coroutine-* ] [ default-configs/* ] [ disas* ] > dma-helpers.c Block? [ docs/* ] > docs/bitmaps.md Mine, or otherwise at least 'block.' > docs/blkdebug.txt > docs/blkverify.txt > docs/live-block-ops.txt > docs/qcow2-cache.txt > docs/specs/qcow2.txt > docs/specs/qed_spec.txt block? [ fpu/* ] [ hw/bt ] [ hw/char ] [ hw/core ] [ hw/cpu ] [ hw/display ] [ hw/dma ] [ hw/gpio ] [ hw/i2c ] [ hw/input ] [ hw/intc ] [ hw/ipack ] [ hw/isa ] [ hw/m68k ] [ hw/misc ] [ hw/moxie ] [ hw/net ] [ hw/nvram ] [ hw/pci-bridge ] [ hw/pci-host ] [ hw/pcmcia ] [ hw/sd ] [ hw/timer ] [ hw/tpm ] [ hw/virtio ] [ hw/watchdog ] [ hw/xen ] [ hw/xenpv ] [ include/* ] [ include/disas/* ] [ include/exec/* ] [ include/fpu/* ] [ include/hw/{...see hw list above...} ] [ libcacard/* ] forward to libcacard project? [ pc-bios/* ] [ po/* ] > qemu-coroutine-io.c > qemu-coroutine-lock.c > qemu-coroutine-sleep.c > qemu-coroutine.c Stefan ... ? [ roms/* ] [ scripts/* ] -- pretty much a grab-bag of random stuff. [ stubs/* ] -- I think we need a designated "build system" maintainer to take this and other build-system related infrastructure pieces. [ target-m68k/* ] [ target-tilegx/* ] [ tests/acpi-test-data/* ] [ tests/* ] > tests/fdc-test.c Mine, as part of the FDC stanza. > tests/libqos/ahci.c > tests/libqos/ahci.h Mine again, as part of the IDE stanza. > tests/libqos/fw_cfg.c > tests/libqos/fw_cfg.h > tests/libqos/i2c-imx.c > tests/libqos/i2c-omap.c > tests/libqos/i2c.c > tests/libqos/i2c.h > tests/libqos/libqos-pc.c > tests/libqos/libqos-pc.h > tests/libqos/libqos.c > tests/libqos/libqos.h > tests/libqos/malloc-generic.c > tests/libqos/malloc-generic.h > tests/libqos/malloc-pc.c > tests/libqos/malloc-pc.h > tests/libqos/malloc.c > tests/libqos/malloc.h > tests/libqos/pci-pc.c > tests/libqos/pci-pc.h > tests/libqos/pci.c > tests/libqos/pci.h > tests/libqos/usb.c > tests/libqos/usb.h > tests/libqos/virtio-mmio.c > tests/libqos/virtio-mmio.h > tests/libqos/virtio-pci.c > tests/libqos/virtio-pci.h > tests/libqos/virtio.c > tests/libqos/virtio.h > tests/libqtest.c > tests/libqtest.h I wouldn't mind taking these, if that helped instead of being a burden. I expect most of the time that changes to these files will go through other trees. Perhaps as a 'weak' assignment, but allowing e.g. virtio, i2c, etc to be more strongly associated with those subsystems and their maintainers instead; like I will group tests/libqos/ahci.[ch] with my IDE stanza. [ tests/multiboot/* ] [ tests/rocker/* ] [ tests/tcg/* ] > tests/test-hbitmap.c Either me or Paolo, I guess, though I'm not sure if it's worth creating stanzas for each single test file here. We have bigger fish to fry, probably. [ tests/test-qmp-* ] Our good friend Markus. [ util/* ] Another giant grab-bag. --js
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 22/09/2015 20:07, Eric Blake wrote: > On 09/22/2015 03:13 AM, Markus Armbruster wrote: > >>> Full list of unmaintained files now: >> [...] >> > >> docs/bitmaps.md docs/blkdebug.txt docs/blkverify.txt > >> docs/live-block-ops.txt > >> docs/qcow2-cache.txt docs/qdev-device-use.txt > >> docs/specs/qcow2.txt docs/specs/qed_spec.txt > > Kevin, Stefan - should these be added to Block maintainers? Possibly moved to docs/block while at it? Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 09/22/2015 03:13 AM, Markus Armbruster wrote: >> Full list of unmaintained files now: > [...] > > docs/bitmaps.md > docs/blkdebug.txt > docs/blkverify.txt > docs/live-block-ops.txt > docs/qcow2-cache.txt > docs/qdev-device-use.txt > docs/specs/qcow2.txt > docs/specs/qed_spec.txt Kevin, Stefan - should these be added to Block maintainers? > docs/writing-qmp-commands.txt Markus: Probably belongs to qapi. > include/qapi/dealloc-visitor.h > include/qapi/opts-visitor.h > include/qapi/qmp-event.h > include/qapi/qmp-input-visitor.h > include/qapi/qmp-output-visitor.h > include/qapi/qmp/dispatch.h > include/qapi/qmp/json-lexer.h > include/qapi/qmp/json-parser.h > include/qapi/qmp/json-streamer.h > include/qapi/qmp/qbool.h > include/qapi/qmp/qdict.h > include/qapi/qmp/qerror.h > include/qapi/qmp/qfloat.h > include/qapi/qmp/qint.h > include/qapi/qmp/qjson.h > include/qapi/qmp/qlist.h > include/qapi/qmp/qobject.h > include/qapi/qmp/qstring.h > include/qapi/qmp/types.h > include/qapi/string-input-visitor.h > include/qapi/string-output-visitor.h > include/qapi/util.h > include/qapi/visitor-impl.h > include/qapi/visitor.h Definitely belongs to qapi. > include/qemu/throttle.h Block? > include/qjson.h qapi? > tests/check-qdict.c > tests/check-qfloat.c > tests/check-qint.c > tests/check-qjson.c > tests/check-qlist.c > tests/check-qstring.c qapi? > tests/test-opts-visitor.c > tests/test-qmp-commands.c > tests/test-qmp-event.c > tests/test-qmp-input-strict.c > tests/test-qmp-input-visitor.c > tests/test-qmp-output-visitor.c > tests/test-string-input-visitor.c > tests/test-string-output-visitor.c qapi Also, should we have some new group for maintainer files, for things like: .exrc .gitignore .gitmodules .mailmap .travis.yml CODING_STYLE COPYING COPYING.LIB Changelog HACKING LICENSE MAINTAINERS README VERSION scripts/get_maintainer.pl -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 22 September 2015 at 07:58, Daniel P. Berrangewrote: > On Tue, Sep 22, 2015 at 11:13:57AM +0200, Markus Armbruster wrote: >> Paolo asked for an update. >> >> Markus Armbruster writes: >> >> > Markus Armbruster writes: >> Different tack: what are the unmaintained files we actually change? >> >> Unmaintained files sorted by number of commits in the past year (commit >> 1733681): >> >> $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list >> 1733681.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort -rn >> | head -n 100 >> 79 trace-events > > We should probably just kill the trace-events file from git entirely. > Everyone more or less appends to it, which guarantees each patch > series conflicts on it, and no one person is suitable as maintainer > of it really. Strong agreement; a single trace-events file is just nasty. -- PMM
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Paolo asked for an update. Markus Armbrusterwrites: > Markus Armbruster writes: > >> In my experience, too many files are not covered by MAINTAINERS. >> scripts/get_maintainer.pl falls back to git then, unless you say >> --no-git-fallback. Copies sent there tends to annoy their recipients >> without accomplishing all that much. >> >> Two obvious improvements: >> >> * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. >> I'll post the obvious patch, please raise your objections there. >> >> * Harder: improve MAINTAINERS coverage. > > A few folks have started doing that. Much appreciated! > > I collected recent patches to MAINTAINERS, and reran my analysis. > >> Let me back up subjective experience with hard data. The tree has quite >> a few files: >> >> $ git-ls-files | wc -l >> 3746 > > Now 3752. Eleven months later, this is 4387. >> Counting them by extension: >> >> $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr >>1836 c >> 818 h >> 133 out >> 105 S >> 97 objs >> 69 s >> 64 mak >> 48 json >> 47 py >> 41 txt >> 33 exit >> 33 err >> 16 xml >> 16 bin >> 13 rom >> 12 sh >> 12 dsl >> [Long tail that doesn't add up to anything interesting omitted] >> >> Let's look for .c not in MAINTAINERS: >> >> $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f > --no-git-fallback $i`" ] || echo $i; done >unmaintained-files >> $ grep -c '\.c$' unmaintained-files >> 1066 >> >> That's almost 60%. Not good. > > Down to 491 our of 1841 (27%). Progress, but not quite enough. 461 out of 1945 (24%). At this linear rate, we'll reach 10% unmaintained in five years. We're still adding unmaintained .c files: $ git-diff --diff-filter=A --name-only e668d1b | grep -c '\.c$' 116 $ git-diff --diff-filter=A --name-only e668d1b | grep '\.c$' | join unmaintained-files - | wc -l 37 37 out of 116 new files (32%) are not covered. That's worse than we do for old files. Inexcusable. >> Apparently, nobody cares for tests: >> >> $ grep '^tests/' unmaintained-files | grep -c '\.c$' >> 654 >> $ git-ls-files | grep '^tests/' | grep -c '\.c$' >> 664 > > Now 91 out of 665. 105 out of 687. >> Filtering those out leaves us with 412 unmaintained out of of 1172, or >> 35% unmaintained. Not good even if we (foolishly!) considered tests not >> worthy of maintenance. >> >> Maybe unmaintained files are much smaller. David A. Wheeler's >> SLOCCount counts 570kSLOC in 1212 maintained files (+140 files sloccount >> doesn't know how to count) vs. 300kSLOC in 1798 unmaintained files (+596 >> uncounted), or 35% unmaintained SLOC. With tests/ ignored, it's 30%. >> So, unmaintained files are indeed smaller, but 30-something percent is >> still not good. >> >> Where are the unmaintained files? Top-scoring directories outside >> tests/ and include/, files in subdirs not counted: >> >> #files directory >> 84 68% . >> 63 100% default-configs >> 48 100% pc-bios >> 43 97% stubs >> 39 100% util >> 37 100% pc-bios/keymaps >> 35 81% hw/display >> 32 94% scripts >> 26 92% docs >> 26 100% libcacard >> 23 69% hw/misc >> 22 57% hw/net >> 21 63% hw/intc >> 19 100% roms >> 18 100% disas >> 18 56% hw/timer >> 16 100% hw/core >> 15 53% hw/char >> 15 100% qga >> 14 100% docs/specs >> 12 92% hw/input >> 12 100% qobject >> 12 100% target-m68k >> 11 100% backends >> 11 100% pc-bios/s390-ccw >> 10 71% hw/dma Different tack: what are the unmaintained files we actually change? Unmaintained files sorted by number of commits in the past year (commit 1733681): $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list 1733681.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort -rn | head -n 100 79 trace-events 77 MAINTAINERS 74 tests/Makefile 37 hw/core/qdev.c 35 arch_init.c 33 tests/libqos/ahci.c 30 tests/libqos/ahci.h 27 qdev-monitor.c 27 include/hw/boards.h 27 Makefile 26 include/exec/exec-all.h 25 include/hw/virtio/virtio.h 24 hw/xen/xen_pt_config_init.c 23 include/hw/virtio/virtio-scsi.h 22 util/qemu-option.c 22 hw/net/rtl8139.c 22 hw/intc/arm_gic.c 22 VERSION 21 target-tilegx/translate.c 21 include/ui/console.h 21 include/hw/qdev-core.h 19 include/qemu-common.h 19 hw/xen/xen_pt.c 19 hw/display/vga.c 18 include/exec/cpu-all.h 18 disas/mips.c 17 hw/nvram/fw_cfg.c 15 include/sysemu/blockdev.h 15 include/sysemu/block-backend.h 15
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 22/09/15 11:13, Markus Armbruster wrote: ... >> Full list of unmaintained files now: [...] > default-configs/aarch64-linux-user.mak > default-configs/aarch64-softmmu.mak > default-configs/alpha-linux-user.mak > default-configs/alpha-softmmu.mak > default-configs/arm-linux-user.mak > default-configs/arm-softmmu.mak > default-configs/armeb-linux-user.mak > default-configs/cris-linux-user.mak > default-configs/cris-softmmu.mak > default-configs/i386-bsd-user.mak > default-configs/i386-linux-user.mak > default-configs/i386-softmmu.mak > default-configs/lm32-softmmu.mak > default-configs/m68k-linux-user.mak > default-configs/m68k-softmmu.mak > default-configs/microblaze-linux-user.mak > default-configs/microblaze-softmmu.mak > default-configs/microblazeel-linux-user.mak > default-configs/microblazeel-softmmu.mak > default-configs/mips-linux-user.mak > default-configs/mips-softmmu.mak > default-configs/mips64-linux-user.mak > default-configs/mips64-softmmu.mak > default-configs/mips64el-linux-user.mak > default-configs/mips64el-softmmu.mak > default-configs/mipsel-linux-user.mak > default-configs/mipsel-softmmu.mak > default-configs/mipsn32-linux-user.mak > default-configs/mipsn32el-linux-user.mak > default-configs/moxie-softmmu.mak > default-configs/or32-linux-user.mak > default-configs/or32-softmmu.mak > default-configs/pci.mak > default-configs/ppc-linux-user.mak > default-configs/ppc-softmmu.mak > default-configs/ppc64-linux-user.mak > default-configs/ppc64-softmmu.mak > default-configs/ppc64abi32-linux-user.mak > default-configs/ppc64le-linux-user.mak > default-configs/ppcemb-softmmu.mak > default-configs/s390x-linux-user.mak > default-configs/s390x-softmmu.mak > default-configs/sh4-linux-user.mak > default-configs/sh4-softmmu.mak > default-configs/sh4eb-linux-user.mak > default-configs/sh4eb-softmmu.mak > default-configs/sound.mak > default-configs/sparc-bsd-user.mak > default-configs/sparc-linux-user.mak > default-configs/sparc-softmmu.mak > default-configs/sparc32plus-linux-user.mak > default-configs/sparc64-bsd-user.mak > default-configs/sparc64-linux-user.mak > default-configs/sparc64-softmmu.mak > default-configs/tilegx-linux-user.mak > default-configs/tricore-softmmu.mak > default-configs/unicore32-linux-user.mak > default-configs/unicore32-softmmu.mak > default-configs/usb.mak > default-configs/x86_64-bsd-user.mak > default-configs/x86_64-linux-user.mak > default-configs/x86_64-softmmu.mak Can't we give the default softmmu config files to the corresponding machine maintainers? E.g. the x86_64-softmmu to the X86 machine maintainer etc.? > docs/migration.txt Juan? > docs/usb-storage.txt > docs/usb2.txt > include/hw/usb.h > include/hw/usb/ehci-regs.h > include/hw/usb/uhci-regs.h > include/ui/console.h > include/ui/egl-helpers.h > include/ui/gtk.h > include/ui/input.h > include/ui/pixel_ops.h > include/ui/qemu-pixman.h > include/ui/sdl2.h > include/ui/shader.h > include/ui/spice-display.h Gerd? > include/hw/mips/bios.h > include/hw/mips/cpudevs.h > include/hw/mips/mips.h -> MIPS CPU maintainers? > include/hw/ppc/mac_dbdma.h > include/hw/ppc/openpic.h > include/hw/ppc/ppc.h > include/hw/ppc/ppc4xx.h > include/hw/ppc/ppc_e500.h -> PPC CPU maintainer? > include/hw/virtio/dataplane/vring-accessors.h > include/hw/virtio/dataplane/vring.h > include/hw/virtio/vhost-backend.h > include/hw/virtio/vhost-scsi.h > include/hw/virtio/vhost.h > include/hw/virtio/virtio-9p.h > include/hw/virtio/virtio-access.h > include/hw/virtio/virtio-balloon.h > include/hw/virtio/virtio-blk.h > include/hw/virtio/virtio-bus.h > include/hw/virtio/virtio-gpu.h > include/hw/virtio/virtio-net.h > include/hw/virtio/virtio-scsi.h > include/hw/virtio/virtio.h > tests/virtio-balloon-test.c > tests/virtio-blk-test.c > tests/virtio-console-test.c > tests/virtio-net-test.c > tests/virtio-rng-test.c > tests/virtio-scsi-test.c > tests/virtio-serial-test.c Michael? > target-m68k/Makefile.objs > target-m68k/cpu-qom.h > target-m68k/cpu.c > target-m68k/cpu.h > target-m68k/gdbstub.c > target-m68k/helper.c > target-m68k/helper.h > target-m68k/m68k-semi.c > target-m68k/op_helper.c > target-m68k/qregs.def > target-m68k/translate.c There are some 68k people on the list ... maybe one of them could be motivated? ;-) Thomas
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Tue, Sep 22, 2015 at 11:13:57AM +0200, Markus Armbruster wrote: > Paolo asked for an update. > > Markus Armbrusterwrites: > > > Markus Armbruster writes: > > > >> In my experience, too many files are not covered by MAINTAINERS. > >> scripts/get_maintainer.pl falls back to git then, unless you say > >> --no-git-fallback. Copies sent there tends to annoy their recipients > >> without accomplishing all that much. > >> > >> Two obvious improvements: > >> > >> * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. > >> I'll post the obvious patch, please raise your objections there. > >> > >> * Harder: improve MAINTAINERS coverage. > > > > A few folks have started doing that. Much appreciated! > > > > I collected recent patches to MAINTAINERS, and reran my analysis. > > > >> Let me back up subjective experience with hard data. The tree has quite > >> a few files: > >> > >> $ git-ls-files | wc -l > >> 3746 > > > > Now 3752. > > Eleven months later, this is 4387. > > >> Counting them by extension: > >> > >> $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr > >>1836 c > >> 818 h > >> 133 out > >> 105 S > >> 97 objs > >> 69 s > >> 64 mak > >> 48 json > >> 47 py > >> 41 txt > >> 33 exit > >> 33 err > >> 16 xml > >> 16 bin > >> 13 rom > >> 12 sh > >> 12 dsl > >> [Long tail that doesn't add up to anything interesting omitted] > >> > >> Let's look for .c not in MAINTAINERS: > >> > >> $ for i in `git-ls-files`; do [ "`scripts/get_maintainer.pl -f > > --no-git-fallback $i`" ] || echo $i; done >unmaintained-files > >> $ grep -c '\.c$' unmaintained-files > >> 1066 > >> > >> That's almost 60%. Not good. > > > > Down to 491 our of 1841 (27%). Progress, but not quite enough. > > 461 out of 1945 (24%). At this linear rate, we'll reach 10% > unmaintained in five years. > > We're still adding unmaintained .c files: > > $ git-diff --diff-filter=A --name-only e668d1b | grep -c '\.c$' > 116 > $ git-diff --diff-filter=A --name-only e668d1b | grep '\.c$' | join > unmaintained-files - | wc -l > 37 > > 37 out of 116 new files (32%) are not covered. That's worse than we do > for old files. Inexcusable. We could extend the checkpatch.pl script so that it reports an error if the patch contains a new file which is not covered by MAINTAINERS. That would immediately prevent the situation getting any worse. Regards, Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 22/09/2015 12:06, Daniel P. Berrange wrote: > We could extend the checkpatch.pl script so that it reports an error > if the patch contains a new file which is not covered by MAINTAINERS. > That would immediately prevent the situation getting any worse. Actually Linux has such a check. Any volunteer to backport it? :) Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On Tue, Sep 22, 2015 at 11:13:57AM +0200, Markus Armbruster wrote: > Paolo asked for an update. > > Markus Armbrusterwrites: > > > Markus Armbruster writes: > Different tack: what are the unmaintained files we actually change? > > Unmaintained files sorted by number of commits in the past year (commit > 1733681): > > $ for i in `cat unmaintained-files`; do echo -n "$i "; git-rev-list > 1733681.. $i | wc -l; done | awk '{ printf "%7d %s\n", $2, $1 }' | sort -rn | > head -n 100 > 79 trace-events We should probably just kill the trace-events file from git entirely. Everyone more or less appends to it, which guarantees each patch series conflicts on it, and no one person is suitable as maintainer of it really. My personal suggestion would be to have a .t file alongside each source file which has trace events in it. eg if ui/vnc.c includes trace events, then put all VNC trace events in a ui/vnc.t file. The Makefile can trivially concatenate all .t files back into a single trace-events file. This way, we can trivially align maintainers for the .t files with the corresponding maintainer of the .c file. There might be some cases where trace events are used from multiple source files, in which case you could allow a common.t file in each subdirectory too. This gets slightly harder to assign a unique maintainer against though particularly for a dumping ground like util/ or block/ etc, so I'd suggest focusing on .t files matching the .c filename. Regards, Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Hi, > > docs/usb-storage.txt > > docs/usb2.txt > > include/hw/usb.h > > include/hw/usb/ehci-regs.h > > include/hw/usb/uhci-regs.h > > include/ui/console.h > > include/ui/egl-helpers.h > > include/ui/gtk.h > > include/ui/input.h > > include/ui/pixel_ops.h > > include/ui/qemu-pixman.h > > include/ui/sdl2.h > > include/ui/shader.h > > include/ui/spice-display.h > Gerd? Yes. usb obviously to the usb section. The include/ui/ includes to the corresponding ui/ sections (vnc, spice, ...). There are possibly some uncovered files in ui/ too, maybe we need new ui section(s), all the new opengl bits are not yet covered I think. thanks for looking at this, Gerd
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Thomas Huthwrote: > On 22/09/15 11:13, Markus Armbruster wrote: > >> docs/migration.txt > > Juan? Reviewed-by: Juan Quintela O;-)
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Markus Armbruster arm...@redhat.com writes: In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. * Harder: improve MAINTAINERS coverage. A few folks have started doing that. Much appreciated! I collected recent patches to MAINTAINERS, and reran my analysis. Let me back up subjective experience with hard data. The tree has quite a few files: $ git-ls-files | wc -l 3746 Now 3752. Counting them by extension: $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr 1836 c 818 h 133 out 105 S 97 objs 69 s 64 mak 48 json 47 py 41 txt 33 exit 33 err 16 xml 16 bin 13 rom 12 sh 12 dsl [Long tail that doesn't add up to anything interesting omitted] Let's look for .c not in MAINTAINERS: $ for i in `git-ls-files`; do [ `scripts/get_maintainer.pl -f --no-git-fallback $i` ] || echo $i; done unmaintained-files $ grep -c '\.c$' unmaintained-files 1066 That's almost 60%. Not good. Down to 491 our of 1841 (27%). Progress, but not quite enough. Apparently, nobody cares for tests: $ grep '^tests/' unmaintained-files | grep -c '\.c$' 654 $ git-ls-files | grep '^tests/' | grep -c '\.c$' 664 Now 91 out of 665. Filtering those out leaves us with 412 unmaintained out of of 1172, or 35% unmaintained. Not good even if we (foolishly!) considered tests not worthy of maintenance. Maybe unmaintained files are much smaller. David A. Wheeler's SLOCCount counts 570kSLOC in 1212 maintained files (+140 files sloccount doesn't know how to count) vs. 300kSLOC in 1798 unmaintained files (+596 uncounted), or 35% unmaintained SLOC. With tests/ ignored, it's 30%. So, unmaintained files are indeed smaller, but 30-something percent is still not good. Where are the unmaintained files? Top-scoring directories outside tests/ and include/, files in subdirs not counted: #files directory 84 68% . 63 100% default-configs 48 100% pc-bios 43 97% stubs 39 100% util 37 100% pc-bios/keymaps 35 81% hw/display 32 94% scripts 26 92% docs 26 100% libcacard 23 69% hw/misc 22 57% hw/net 21 63% hw/intc 19 100% roms 18 100% disas 18 56% hw/timer 16 100% hw/core 15 53% hw/char 15 100% qga 14 100% docs/specs 12 92% hw/input 12 100% qobject 12 100% target-m68k 11 100% backends 11 100% pc-bios/s390-ccw 10 71% hw/dma Ideas? Takers? Full list of unmaintained files now: .exrc .gitignore .gitmodules .mailmap .travis.yml CODING_STYLE COPYING COPYING.LIB Changelog HACKING LICENSE MAINTAINERS Makefile Makefile.objs Makefile.target README VERSION accel.c arch_init.c backends/Makefile.objs backends/baum.c backends/hostmem-file.c backends/hostmem-ram.c backends/hostmem.c backends/msmouse.c backends/rng-egd.c backends/rng-random.c backends/rng.c backends/testdev.c backends/tpm.c balloon.c bt-host.c bt-vhci.c configure coroutine-gthread.c coroutine-sigaltstack.c coroutine-ucontext.c cpus.c default-configs/aarch64-linux-user.mak default-configs/aarch64-softmmu.mak default-configs/alpha-linux-user.mak default-configs/alpha-softmmu.mak default-configs/arm-linux-user.mak default-configs/arm-softmmu.mak default-configs/armeb-linux-user.mak default-configs/cris-linux-user.mak default-configs/cris-softmmu.mak default-configs/i386-bsd-user.mak default-configs/i386-linux-user.mak default-configs/i386-softmmu.mak default-configs/lm32-softmmu.mak default-configs/m68k-linux-user.mak default-configs/m68k-softmmu.mak default-configs/microblaze-linux-user.mak default-configs/microblaze-softmmu.mak default-configs/microblazeel-linux-user.mak default-configs/microblazeel-softmmu.mak default-configs/mips-linux-user.mak default-configs/mips-softmmu.mak default-configs/mips64-linux-user.mak default-configs/mips64-softmmu.mak default-configs/mips64el-linux-user.mak default-configs/mips64el-softmmu.mak default-configs/mipsel-linux-user.mak default-configs/mipsel-softmmu.mak default-configs/mipsn32-linux-user.mak default-configs/mipsn32el-linux-user.mak default-configs/moxie-softmmu.mak default-configs/or32-linux-user.mak default-configs/or32-softmmu.mak default-configs/pci.mak default-configs/ppc-linux-user.mak default-configs/ppc-softmmu.mak default-configs/ppc64-linux-user.mak default-configs/ppc64-softmmu.mak default-configs/ppc64abi32-linux-user.mak default-configs/ppc64le-linux-user.mak
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Down to 491 our of 1841 (27%). Progress, but not quite enough. I think a better analysis would be on patches, not files. Which is really hard to do, of course. But as a rule of thumb, tests/ and include/ patches should also touch files outside those directories. Not many people, unfortunately, write tests out of a whim. So I wouldn't care much about those. Some low-hanging fruit: libcacard/Makefile libcacard/cac.c libcacard/cac.h libcacard/card_7816.c libcacard/card_7816.h libcacard/card_7816t.h libcacard/event.c libcacard/eventt.h libcacard/libcacard.pc.in libcacard/libcacard.syms libcacard/link_test.c libcacard/vcard.c libcacard/vcard.h libcacard/vcard_emul.h libcacard/vcard_emul_nss.c libcacard/vcard_emul_type.c libcacard/vcard_emul_type.h libcacard/vcardt.c libcacard/vcardt.h libcacard/vcardt_internal.h libcacard/vevent.h libcacard/vreader.c libcacard/vreader.h libcacard/vreadert.h libcacard/vscard_common.h libcacard/vscclient.c Alon? libdecnumber/decContext.c libdecnumber/decNumber.c libdecnumber/dpd/decimal128.c libdecnumber/dpd/decimal128Local.h libdecnumber/dpd/decimal32.c libdecnumber/dpd/decimal64.c Part of TCG PPC. qga/Makefile.objs qga/channel-posix.c qga/channel-win32.c qga/channel.h qga/commands-posix.c qga/commands-win32.c qga/commands.c qga/guest-agent-command-state.c qga/guest-agent-core.h qga/main.c qga/qapi-schema.json qga/service-win32.c qga/service-win32.h qga/vss-win32.c qga/vss-win32.h qga/vss-win32/Makefile.objs qga/vss-win32/install.cpp qga/vss-win32/provider.cpp qga/vss-win32/qga-vss.def qga/vss-win32/qga-vss.idl qga/vss-win32/qga-vss.tlb qga/vss-win32/requester.cpp qga/vss-win32/requester.h qga/vss-win32/vss-common.h Mike Roth? qobject/Makefile.objs qobject/json-lexer.c qobject/json-parser.c qobject/json-streamer.c qobject/qbool.c qobject/qdict.c qobject/qerror.c qobject/qfloat.c qobject/qint.c qobject/qjson.c qobject/qlist.c qobject/qstring.c Part of QMP. Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Paolo Bonzini pbonz...@redhat.com writes: Down to 491 our of 1841 (27%). Progress, but not quite enough. I think a better analysis would be on patches, not files. Which is really hard to do, of course. But as a rule of thumb, tests/ and include/ patches should also touch files outside those directories. Not many people, unfortunately, write tests out of a whim. So I wouldn't care much about those. Focusing on non-test, non-header source code for now seems sensible. Some low-hanging fruit: libcacard/Makefile libcacard/cac.c libcacard/cac.h libcacard/card_7816.c libcacard/card_7816.h libcacard/card_7816t.h libcacard/event.c libcacard/eventt.h libcacard/libcacard.pc.in libcacard/libcacard.syms libcacard/link_test.c libcacard/vcard.c libcacard/vcard.h libcacard/vcard_emul.h libcacard/vcard_emul_nss.c libcacard/vcard_emul_type.c libcacard/vcard_emul_type.h libcacard/vcardt.c libcacard/vcardt.h libcacard/vcardt_internal.h libcacard/vevent.h libcacard/vreader.c libcacard/vreader.h libcacard/vreadert.h libcacard/vscard_common.h libcacard/vscclient.c Alon? libdecnumber/decContext.c libdecnumber/decNumber.c libdecnumber/dpd/decimal128.c libdecnumber/dpd/decimal128Local.h libdecnumber/dpd/decimal32.c libdecnumber/dpd/decimal64.c Part of TCG PPC. Give me a name :) qga/Makefile.objs qga/channel-posix.c qga/channel-win32.c qga/channel.h qga/commands-posix.c qga/commands-win32.c qga/commands.c qga/guest-agent-command-state.c qga/guest-agent-core.h qga/main.c qga/qapi-schema.json qga/service-win32.c qga/service-win32.h qga/vss-win32.c qga/vss-win32.h qga/vss-win32/Makefile.objs qga/vss-win32/install.cpp qga/vss-win32/provider.cpp qga/vss-win32/qga-vss.def qga/vss-win32/qga-vss.idl qga/vss-win32/qga-vss.tlb qga/vss-win32/requester.cpp qga/vss-win32/requester.h qga/vss-win32/vss-common.h Mike Roth? Cc'ed. qobject/Makefile.objs qobject/json-lexer.c qobject/json-parser.c qobject/json-streamer.c qobject/qbool.c qobject/qdict.c qobject/qerror.c qobject/qfloat.c qobject/qint.c qobject/qjson.c qobject/qlist.c qobject/qstring.c Part of QMP. Cc'ing Luiz.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 10/22/2014 01:45 PM, Markus Armbruster wrote: Part of TCG PPC. Give me a name :) This: PowerPC M: Alexander Graf ag...@suse.de L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Quoting Markus Armbruster (2014-10-22 06:45:44) Paolo Bonzini pbonz...@redhat.com writes: Down to 491 our of 1841 (27%). Progress, but not quite enough. I think a better analysis would be on patches, not files. Which is really hard to do, of course. But as a rule of thumb, tests/ and include/ patches should also touch files outside those directories. Not many people, unfortunately, write tests out of a whim. So I wouldn't care much about those. Focusing on non-test, non-header source code for now seems sensible. Some low-hanging fruit: libcacard/Makefile libcacard/cac.c libcacard/cac.h libcacard/card_7816.c libcacard/card_7816.h libcacard/card_7816t.h libcacard/event.c libcacard/eventt.h libcacard/libcacard.pc.in libcacard/libcacard.syms libcacard/link_test.c libcacard/vcard.c libcacard/vcard.h libcacard/vcard_emul.h libcacard/vcard_emul_nss.c libcacard/vcard_emul_type.c libcacard/vcard_emul_type.h libcacard/vcardt.c libcacard/vcardt.h libcacard/vcardt_internal.h libcacard/vevent.h libcacard/vreader.c libcacard/vreader.h libcacard/vreadert.h libcacard/vscard_common.h libcacard/vscclient.c Alon? libdecnumber/decContext.c libdecnumber/decNumber.c libdecnumber/dpd/decimal128.c libdecnumber/dpd/decimal128Local.h libdecnumber/dpd/decimal32.c libdecnumber/dpd/decimal64.c Part of TCG PPC. Give me a name :) qga/Makefile.objs qga/channel-posix.c qga/channel-win32.c qga/channel.h qga/commands-posix.c qga/commands-win32.c qga/commands.c qga/guest-agent-command-state.c qga/guest-agent-core.h qga/main.c qga/qapi-schema.json qga/service-win32.c qga/service-win32.h qga/vss-win32.c qga/vss-win32.h qga/vss-win32/Makefile.objs qga/vss-win32/install.cpp qga/vss-win32/provider.cpp qga/vss-win32/qga-vss.def qga/vss-win32/qga-vss.idl qga/vss-win32/qga-vss.tlb qga/vss-win32/requester.cpp qga/vss-win32/requester.h qga/vss-win32/vss-common.h Mike Roth? Cc'ed. Of course, just never thought to add it. Just sent a patch for MAINTAINERS. qobject/Makefile.objs qobject/json-lexer.c qobject/json-parser.c qobject/json-streamer.c qobject/qbool.c qobject/qdict.c qobject/qerror.c qobject/qfloat.c qobject/qint.c qobject/qjson.c qobject/qlist.c qobject/qstring.c Part of QMP. Cc'ing Luiz.
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Paolo Bonzini pbonz...@redhat.com writes: On 10/22/2014 01:45 PM, Markus Armbruster wrote: Part of TCG PPC. Give me a name :) This: PowerPC M: Alexander Graf ag...@suse.de L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ Paolo Something like this, I presume: diff --git a/MAINTAINERS b/MAINTAINERS index e52e75c..52ac491 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -138,6 +138,7 @@ L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ +F: libdecnumber S390 M: Richard Henderson r...@twiddle.net
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 22.10.14 15:06, Markus Armbruster wrote: Paolo Bonzini pbonz...@redhat.com writes: On 10/22/2014 01:45 PM, Markus Armbruster wrote: Part of TCG PPC. Give me a name :) This: PowerPC M: Alexander Graf ag...@suse.de L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ Paolo Something like this, I presume: I think the best way to figure these out would be to have checkpatch.pl check whether an unmaintained file gets introduced. If that happens, warn the user. I always run checkpatch.pl on every patch I apply. Alex
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 10/22/2014 03:06 PM, Markus Armbruster wrote: Paolo Bonzini pbonz...@redhat.com writes: On 10/22/2014 01:45 PM, Markus Armbruster wrote: Part of TCG PPC. Give me a name :) This: PowerPC M: Alexander Graf ag...@suse.de L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ Paolo Something like this, I presume: diff --git a/MAINTAINERS b/MAINTAINERS index e52e75c..52ac491 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -138,6 +138,7 @@ L: qemu-...@nongnu.org S: Maintained F: target-ppc/ F: hw/ppc/ +F: libdecnumber with a slash at the end :) Paolo
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Markus Armbruster arm...@redhat.com writes: In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. As it happens I do that in my .git/config, but... * Harder: improve MAINTAINERS coverage. Well one problem is no MAINTAINER == no obvious tree to take you patches. This is my main bugbear. I have a few patch series that touch a smattering of files (e.g. logging improvements) that don't fall under one particular sub-system but are probably a little too broad for the trivial tree. Where are the unmaintained files? Top-scoring directories outside tests/ and include/, files in subdirs not counted: #files directory 84 68% . I suspect there is a bunch of general infrastructure bits that has this sort of property. Maybe some effort be made to move related bits into sub-directories (with MAINTAINERS) where they are less likely to fall in-between the cracks? snip Ideas? Takers? My 0.2c ;-) -- Alex Bennée
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
Alex Bennée alex.ben...@linaro.org writes: Markus Armbruster arm...@redhat.com writes: In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. As it happens I do that in my .git/config, but... * Harder: improve MAINTAINERS coverage. Well one problem is no MAINTAINER == no obvious tree to take you patches. This is my main bugbear. I have a few patch series that touch a smattering of files (e.g. logging improvements) that don't fall under one particular sub-system but are probably a little too broad for the trivial tree. I've been there quite a few times. No easy answers. Where are the unmaintained files? Top-scoring directories outside tests/ and include/, files in subdirs not counted: #files directory 84 68% . I suspect there is a bunch of general infrastructure bits that has this sort of property. Maybe some effort be made to move related bits into sub-directories (with MAINTAINERS) where they are less likely to fall in-between the cracks? No objection to moving stuff to more appropriate homes. But it's not necessary for MAINTAINERS coverage. Just add the necessary F: lines. snip Ideas? Takers? My 0.2c ;-) Thanks!
[Qemu-devel] MAINTAINERS leaves too many files uncovered
In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. * Harder: improve MAINTAINERS coverage. Let me back up subjective experience with hard data. The tree has quite a few files: $ git-ls-files | wc -l 3746 Counting them by extension: $ git-ls-files | sed -n 's#.*/##;s#.*\.##p' | sort | uniq -c | sort -nr 1836 c 818 h 133 out 105 S 97 objs 69 s 64 mak 48 json 47 py 41 txt 33 exit 33 err 16 xml 16 bin 13 rom 12 sh 12 dsl [Long tail that doesn't add up to anything interesting omitted] Let's look for .c not in MAINTAINERS: $ for i in `git-ls-files`; do [ `scripts/get_maintainer.pl -f --no-git-fallback $i` ] || echo $i; done unmaintained-files $ grep -c '\.c$' unmaintained-files 1066 That's almost 60%. Not good. Apparently, nobody cares for tests: $ grep '^tests/' unmaintained-files | grep -c '\.c$' 654 $ git-ls-files | grep '^tests/' | grep -c '\.c$' 664 Filtering those out leaves us with 412 unmaintained out of of 1172, or 35% unmaintained. Not good even if we (foolishly!) considered tests not worthy of maintenance. Maybe unmaintained files are much smaller. David A. Wheeler's SLOCCount counts 570kSLOC in 1212 maintained files (+140 files sloccount doesn't know how to count) vs. 300kSLOC in 1798 unmaintained files (+596 uncounted), or 35% unmaintained SLOC. With tests/ ignored, it's 30%. So, unmaintained files are indeed smaller, but 30-something percent is still not good. Where are the unmaintained files? Top-scoring directories outside tests/ and include/, files in subdirs not counted: #files directory 84 68% . 63 100% default-configs 48 100% pc-bios 43 97% stubs 39 100% util 37 100% pc-bios/keymaps 35 81% hw/display 32 94% scripts 26 92% docs 26 100% libcacard 23 69% hw/misc 22 57% hw/net 21 63% hw/intc 19 100% roms 18 100% disas 18 56% hw/timer 16 100% hw/core 15 53% hw/char 15 100% qga 14 100% docs/specs 12 92% hw/input 12 100% qobject 12 100% target-m68k 11 100% backends 11 100% pc-bios/s390-ccw 10 71% hw/dma Ideas? Takers?
Re: [Qemu-devel] MAINTAINERS leaves too many files uncovered
On 10/20/2014 11:19 AM, Markus Armbruster wrote: In my experience, too many files are not covered by MAINTAINERS. scripts/get_maintainer.pl falls back to git then, unless you say --no-git-fallback. Copies sent there tends to annoy their recipients without accomplishing all that much. Two obvious improvements: * Easy: Flip scripts/get_maintainer.pl's default to --no-git-fallback. I'll post the obvious patch, please raise your objections there. In many cases it annoys recipients. In other cases, the top 1-2 results are actually a good match for a prospective maintainer. I suspect this is the case for most tests, in fact. Paolo