lfd / pasta Goto Github PK
View Code? Open in Web Editor NEWThe Patch Stack Analysis
License: GNU General Public License v2.0
The Patch Stack Analysis
License: GNU General Public License v2.0
Motivation: Ignored patches in the kernel development can indicate process weaknesses in the Linux kernel development. These must be identified for a proper assessment of the process strength of the kernel development, e.g., for trustable software.
This issue can be split into the following two tasks:
Task 1: Extend Pasta such that the following two classes of patches can be identified.
As first approximation, an ignored patch is defined as follows:
Further, an re-submitted patch is defined as follows:
Given a Pasta project definition (mailing lists and git repositories), Pasta shall be extended to provide the list of patches according to those definitions above.
Task 2: Evaluate ignored and re-submitted patches for the Linux kernel development
With the identification of ignored and re-submitted patches at hand, we want to evaluate the current kernel development.
The evaluation shall produce a written report to be published as a technical report/white paper/scientific publication (to a Linux-development related/empirical software engineering-related workshop/conference).
The evaluation shall include:
The commands for Getting PaStA state that the following command is required to be executed :
$ ./tools/update_resources.sh # This might take some time to complete
However, as stated by @rralf it is not necessary for contributors to download all the submodules whose size can get really huge and pretty time-consuming.
Let us add a label/heading for the Command : Only for maintainers
.So that it won't confuse future contributors
We could also Add alternatives for testing PaStA such as checking out the alsa-minconfig
for relevant resources
The README mentions:
This will create a patch-groups file inside the resources directory of your project
However no patch-groups
file is created.
Instead an mbox-result
file is created.
Pulled the latest branch and ran
./pasta set_config linux
I had installed all dependencies and ./pasta -h ran successfully
adi@u16:~/OpenSoruce/PaStA$ ./pasta set_config linux
2020-07-29 22:19:29,447 PaStA INFO Cmdline: ./pasta set_config linux
2020-07-29 22:19:29,448 pypasta.Config INFO Loading configuration: linux
2020-07-29 22:19:29,453 PaStA ERROR Unable to load configuration linux:
2020-07-29 22:19:29,453 PaStA ERROR invalid literal for int() with base 10: '1970-01-01'
2020-07-29 22:19:29,453 PaStA INFO Shutting down
adi@u16:~/OpenSoruce/PaStA$
To determine in more detail why two objects, i.e., patch messages and commits, were matched or were not matched in an analysis, we would need a command that can give detailed information on that.
For example, ./pasta compare <id1> <id2>
could output something like this:
Considered in preevaluation: MATCHED
- message date (2019-01-01) and commit date (2019-01-07) within time bound
- patch author and commit author match
- ... (whatever else is considered in preevaluation)
Considered in patch/commit comparison: NOT MATCHED
- patch/commit message diff score: 0.6
- code diff score: 0.4
- ... (whatever else is considered when comparing)
- overall: 0.5 is below threshold (0.8)
Then, further manual analysis could determine which factors and which aspects can be tuned to improve precision and recall, e.g., which metrics for the comparison could be extended by further refined metrics.
Currently PaStA only analyzes patches (thus of course the name). As Patchwork will support both, patches and cover letters to be in a relation, the question arises whether we shall support analyzing cover letters as well?
We have a lot of data from patches and we can use this for creating a ML model to predict the recipients a patch would be sent to, based on the existing data.
Various questions immediately arise:
Motivation:
Currently, Pasta is a tool developed by a single developer and only has a small (academic) user base. When we integrate with cregit, we hope that this significantly increases the interest, user base and eventually the development community around this tool. This will help to keep Pasta maintained and evolve over time.
Task:
Integrate the automatic tracking from PaStA into the WebGUI of the cregit tool, such that the user can see the different versions of the patches and where it was integrated in the repositories.
Cregit already has a very basic heuristics to link mails and commits. After integration into cregit, we can also consider comparing both heuristics.
So first, here is my expectation from a user perspective:
My linux.cfg
would be defined as follows:
PROJECT_NAME = Linux
### REPOSITORIES
REPOSITORY_URL_torvalds = git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
REPOSITORY_URL_stable = git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
REPOSITORY_URL_linux-next = git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
### MAILBOXES
PUBLIC_INBOX_URL_lkml = git://git.kernel.org/pub/scm/public-inbox/vger.kernel.org/lkml/[0-9].git
PUBLIC_INBOX_URL_selinux = git://git.kernel.org/pub/scm/public-inbox/vger.kernel.org/selinux/0.git
...
Now, I would expect that pasta init
takes that information into account, clones all repositories, initializes all the PaSta-related caches, and does the analysis. For that purpose, it needs to understand the data in the public inbox git repositories.
And pasta update
updates all repositories and re-runs the analysis on the new data in the git repository and public inbox repositories.
@rralf I am just formulating and collecting the ideas here; there is no need for you to immediately implement that. Your expert opinion is of course welcome.
@mszczepankiewicz This might be a good first task to understand the PAStA sources and implement a first valuable feature. What do you think?
A related follow-up task would be to provide a step-by-step tutorial how to set up the system, do the analysis initially and redo the analysis when the repositories update and how to access the information through the web frontend.
Motivation:
Large and complex changes that has been included without some discussion and change might indicate missing attention to certain patches.
Task: Gather metrics of the dynamics of the patches during the discussion
As part of the implementation, also assess and evaluate the heuristics with respect to correctness based on an data set of 100 random selected instances.
Hi folks, As linked and told on email, I am interested in the linux kernel internship Patch Trace Analysis with PaStA, as the linux kernel internship deadline is in next few days, I will be using this ticket where ever required as this is just one present on GitHub. Sincere apologies for any extra work required as I don't think we would get a lot of time for interactions. As I don't require most of the listed mentee application activities, I will directly work on the tickets listed. Thanks a lot, Tapasweni!
I wanted to analyse the jailhouse repo as it is much smaller than the other repos.
I was getting stuck at some places so needed some help in getting the setup done.
What I have done till now:
./pasta select jailhouse
./pasta sync
./pasta sync -mbox
2020-03-17 18:52:12,674 PaStA INFO Cmdline: ./pasta sync -mbox
2020-03-17 18:52:12,675 pypasta.Config INFO Active configuration: jailhouse
2020-03-17 18:52:12,680 Repository.Mbox INFO Loading mailbox subsystem
2020-03-17 18:52:12,681 Repository.Mbox INFO ↪ loaded invalid mail index: found 0 invalid mails
2020-03-17 18:52:12,682 pypasta.Config INFO Renewing upstream commit hash file
2020-03-17 18:52:12,728 pypasta.Config INFO ↪ done
2020-03-17 18:52:12,729 Repository.Mbox INFO Loading mailbox subsystem
2020-03-17 18:52:12,729 Repository.Mbox INFO ↪ loaded invalid mail index: found 0 invalid mails
2020-03-17 18:52:12,730 tory.Repository INFO Loading upstream commit cache
2020-03-17 18:52:12,923 tory.Repository INFO ↪ Loaded 2706 commits from cache file
2020-03-17 18:52:12,926 tory.Repository INFO Writing 2706 commits to cache file
2020-03-17 18:52:13,326 tory.Repository INFO Loading mbox commit cache
2020-03-17 18:52:13,326 tory.Repository INFO ↪ Warning, commit cache file /home/rohit/Projects/PaStA/resources/jailhouse/resources/commit_cache_mbox.pkl not found!
2020-03-17 18:52:13,326 tory.MailThread WARNING MailThread cache not existing
2020-03-17 18:52:13,326 tory.MailThread INFO Updating mail thread cache
2020-03-17 18:52:13,326 tory.MailThread INFO Cache is already up to date
2020-03-17 18:52:13,327 PaStA INFO Shutting down
However I think I havent set up my mbox properly. Can someone guide me with this?
Thanks!
When processing a raw mailbox, the process_mail.sh script fails:
2019-03-15 06:29:14,943 Repository.Mbox INFO Processing raw mailbox gmail-export
./process_mail.sh: line 43: $MAIL: ambiguous redirect
Unable to parse Message ID for : empty Message-ID
xargs: ./process_mail.sh: exited with status 255; aborting
2019-03-15 06:29:15,244 Repository.Mbox INFO Executing ./process_mailbox_maildir.sh gmail-export /home/lukas/repositories/github.com/lfd/PaStA/resources/linux/resources/mbox/ /home/lukas/mbox-archives/latest
2019-03-15 06:29:15,245 Repository.Mbox ERROR Mail processor failed!
My first investigation showed that this issue only appears when called in my setup with a quite deep path, namely /home/lukas/repositories/github.com/lfd/PaStAresources/linux/resources/mbox/raw
, but the issue does not appear when executing the same command with the same input data on a shorter path as /home/lukas/tmp
.
Probably we are hitting here the limit of passing a command in bash that is larger than 127 characters and hence, we need to take some special care to actually get the arguments properly, alternatively the needed values could simply be passed by shell environment variables to the script.
There have been situations when I setup PaStA and I only want to use it for representative analyses of a mailbox. In this case I dont need an upstream repository, I dont want to clone the entire linux kernel. What I end up doing is just setting up a dummy repository in place of the project repository as a work around now.
Would it be useful to provide an option to run representative analyses without requiring the user to have a upstream repository?
Motivation:
Complex features are commonly first developed in out-of-tree developments and then slowly merged step-by-step over multiple kernel releases (multiple merge windows). PaStA can be used to indicate how such a patch set evolves due to improvements or adjustments to upstream development and how the patch set is included over time.
Task:
For a given repository of a patch set, provide a generally applicable report with core metrics of the evolution over time.
The report should state:
Note: Ralf has already done this kind of evaluations for some examples. Possibly, we just need to provide documentation how this can be done with PaStA and show this with some few example evaluations.
Examples: PREEMPT_RT, gr_security, Xenomai, vendor-specific trees
When the relations from pasta are included in the patchwork instances, they will be available to users and hence, users might notice mistakes in the computed relation, e.g., that certain patches are wrongly related to each other, or that certain patches have wrongly not been related to each other.
Patchwork should allow users to manually relate them to each other and we should record all those events of manual adjustments and we may analyse them to determine how we can improve the current heuristics.
Currently, the matching in pasta requires the diff hunk header of patches and commits to 100% identical to be matched against each other.
The investigation on off-list patch detection showed a number of cases where matching failed due to the diff hunk header being different:
With these insights, we might find a better compare function and threshold to match patches and commits.
At first, we would need to identify all patches that might be matched with alternatives for the diff hunk header and estimate to which differences this leads and what improves and what possibly decreases.
Analysing successive patches should only be possible in patch stack mode.
Currently, if I run patch analyse succ
with Linux as my selected configuration this is the output:
2020-03-18 00:28:48,876 PaStA INFO Cmdline: ./pasta analyse succ
2020-03-18 00:28:48,876 pypasta.Config INFO Active configuration: linux
2020-03-18 00:28:48,931 Repository.Mbox INFO Loading mailbox subsystem
2020-03-18 00:28:52,341 Repository.Mbox INFO ↪ loaded invalid mail index: found 3830608 invalid mails
2020-03-18 00:28:52,341 Repository.Mbox INFO Loading public inboxes
2020-03-18 00:28:55,423 Repository.Mbox INFO ↪ loaded mail index for [email protected] (shard 0): found 207512 mails
2020-03-18 00:29:01,327 n.pasta_analyse INFO Regarding mails in time window 2010-01-01--2010-03-01
2020-03-18 00:29:01,327 tory.Repository INFO Loading mbox commit cache
2020-03-18 00:29:01,329 tory.Repository INFO ↪ Warning, commit cache file /home/rohit/Projects/PaStA/resources/linux/resources/commit_cache_mbox.pkl not found!
Traceback (most recent call last):
File "./pasta", line 178, in <module>
ret = main(deepcopy(sys.argv))
File "./pasta", line 143, in main
return analyse(config, sub, argv)
File "/home/rohit/Projects/PaStA/bin/pasta_analyse.py", line 217, in analyse
victims = config.psd.commits_on_stacks
File "/home/rohit/Projects/PaStA/pypasta/Config.py", line 338, in psd
return self.patch_stack_definition
AttributeError: 'Config' object has no attribute 'patch_stack_definition'
Although it should throw an error saying Analysis mode succ is not available in mailbox mode!
This error is due to a bug in the argument parsing sequence in pasta_analyse.py
It has been 2 days since I ran git -C resources submodule update
and it has not been completed yet. I have installed the gnutls and also tried rebuilding git with openssl before but nothing seems to work for me. My internet speed is around 700 kb/s.
When I checked the amount of data in resources is only 1.6 GB. What should I do now?
I have used alsa-minconfig to update it.
Here is the whole cloning happened in 2 days.
(lfd-pasta) dark_matter@DarkMatter ~/l/l/PaStA (master)> git -C resources submodule update
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.freedesktop.org/dri-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-arm-kernel/1.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-mtd/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-nvme/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-parport/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-riscv/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-rockchip/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-rpi-kernel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-snps-arc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-um/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/linux-unisoc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.infradead.org/wcn36xx/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.librecores.org/openrisc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linaro.org/greybus-dev/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linaro.org/linaro-mm-sig/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linbit.com/drbd-dev/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linux-foundation.org/bridge/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linux-foundation.org/iommu/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linux-foundation.org/netem/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linux-foundation.org/virtualization/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linux.it/ltp/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.linuxfoundation.org/ksummit-discuss/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.one-eyed-alien.net/usb-storage/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.open-mesh.org/b.a.t.m.a.n/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.openwall.com/kernel-hardening/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.openwrt.org/openwrt-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.orangefs.org/devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.osdn.me/tomoyo-users-en/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.osdn.me/tomoyo-users/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.osmocom.org/osmocom-net-gprs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ozlabs.org/linux-aspeed/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ozlabs.org/linux-erofs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ozlabs.org/linuxppc-dev/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ozlabs.org/linuxppc-users/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ozlabs.org/openbmc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.samba.org/samba-technical/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/ibm-acpi-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/industrypack-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/jfs-discussion/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/kgdb-bugreport/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/legousb-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/linux-decnet-user/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/linux-f2fs-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/linux-ntfs-dev/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/linux-uvc-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/linux1394-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/mjpeg-users/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/openipmi-developer/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/oprofile-list/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/osst-users/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/squashfs-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/tboot-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/tipc-discussion/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/tpmdd-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.sourceforge.net/v9fs-developer/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.ubuntu.com/apparmor/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.xenproject.org/xen-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.xenproject.org/xen-devel/1.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/lists.zx2c4.com/wireguard/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/listserv.isdn4linux.de/isdn4linux/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/nongnu.org/qemu-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/nongnu.org/qemu-devel/1.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/osuosl.org/intel-wired-lan/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/other.debian.org/nbd/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/redhat.com/blinux-list/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/redhat.com/cluster-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/redhat.com/dm-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/redhat.com/linux-audit/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/redhat.com/linux-cachefs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/st-md-mailman.stormreply.com/linux-stm32/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/st-md-mailman.stormreply.com/uboot-stm32/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/systeme.lip6.fr/cocci/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/autofs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/bpf/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/ceph-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/cgroups/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/dccp/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/devicetree/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/dmaengine/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/ecryptfs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/io-uring/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/kernel-janitors/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/keyrings/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/kvm-ppc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/kvm/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-acpi/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-alpha/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-api/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-arch/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-arm-msm/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-bcache/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-block/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-bluetooth/0.git'...
fatal: read error: Connection reset by peer
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'git://git.kernel.org/pub/scm/public-inbox/vger.kernel.org/linux-bluetooth/0.git' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-bluetooth/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-bluetooth/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-btrfs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-can/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-cifs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-clk/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-crypto/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-csky/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-doc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-edac/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-efi/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-embedded/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-ext4/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-fbdev/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-fpga/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-fscrypt/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-fsdevel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-gpio/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-hams/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-hexagon/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-hwmon/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-hyperv/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-i2c/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-ia64/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-ide/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-iio/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-input/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-integrity/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-kbuild/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-kselftest/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-leds/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-m68k/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-man/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-media/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-mips/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-mmc/0.git'...
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'https://lore.kernel.org/linux-mmc/0' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-mmc/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-mmc/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-modules/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-next/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-nfs/0.git'...
fatal: read error: Connection reset by peer
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'git://git.kernel.org/pub/scm/public-inbox/vger.kernel.org/linux-nfs/0.git' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-nfs/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-nfs/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-nilfs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-omap/0.git'...
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'https://lore.kernel.org/linux-omap/0' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-omap/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-omap/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-parisc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-pci/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-pm/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-ppp/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-pwm/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-raid/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-rdma/0.git'...
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'https://lore.kernel.org/linux-rdma/0' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-rdma/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-rdma/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-remoteproc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-renesas-soc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-rtc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-s390/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-samsung-soc/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-scsi/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-sctp/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-security-module/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-serial/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-sgx/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-sh/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-sparse/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-spdx/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-spi/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-tegra/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-tip-commits/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-trace-devel/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-unionfs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-usb/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-watchdog/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-wireless/0.git'...
fatal: read error: Connection reset by peer
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'git://git.kernel.org/pub/scm/public-inbox/vger.kernel.org/linux-wireless/0.git' into submodule path '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-wireless/0.git' failed
Failed to clone 'linux/resources/mbox/pubin/vger.kernel.org/linux-wireless/0.git'. Retry scheduled
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-wpan/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/linux-xfs/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/live-patching/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/lkml/0.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/lkml/1.git'...
Cloning into '/home/dark_matter/linux_work/lfd-pasta/PaStA/resources/linux/resources/mbox/pubin/vger.kernel.org/lkml/2.git'...
Motivation: Before interested visitors would setup PaStA, they would like to see the capabilities of PaStA with a demonstrator. This would generally increase and simplify the outreach for this project.
Task: Provide some demonstrators for PaStA's functionalities
Examples:
In the discussion of the example of a dashboard service identified that it is challenging to provide a useful dashboard service, as most metrics cannot be considered in isolation, but it requires an expert interpretation and judgement of various metrics to come to a proper interpretation.
tbd.
Lukas:
I was using your LinuxMaintainers class in Pasta to find files that
are not part of any maintainer entry other than THE REST. Joe Perches
pointed out that get_maintainers.pl has a check to add slashes when it
is directory. See below. I think we need to add that to the
LinuxMaintainers file as well. This will require to have the list of
all directories in the git repository, though; so some refactoring of
LinuxMaintainers.
A weekly (could be for any appropriate timescale) digest that presents a number of statistics about the Linux kernel development process in a concise and informative way. Eg. Patches accepted/rejected/ignored by subsystem. top patch submitters, top reviewers, number of lines of code added/deleted etc.
We have a lot of data from patches and we can use this for deriving specific rules for generic rule patterns.
Formulate patterns,, such as:
When the patch touches file X, it is sent to Y.
When the patch includes the term X in the commit message, it is sent to Y.
Then, compute the best match on the current email data.
I believe the command "pip3 install --local pipenv" does not work; at least, it did not work on an Ubuntu 18.04 system.
"pip3 install pipenv" did the job; possibly you mean the option "--user"?
Task: Determine and measure to which extent each developer actively participated in discussion of patch submissions.
Differentiate this measurement depending on:
Present results in different aspects, aggregate and provide measurement for each developer, for each subsystems and for each reviewer group, i.e., identified clusters of developers largely reviewing the same set of patches.
The error message mentions pasta mbox_prepare
, but the command does not exist.
2018-11-01 12:16:30,587 Repository.Mbox INFO Loading Mailbox
2018-11-01 12:16:30,603 tory.Repository ERROR Unable to load mailbox: [Errno 2] No such file or directory: '/PaStA/resources/PreemptRT/mbox/lists'
2018-11-01 12:16:30,603 tory.Repository ERROR Did you forget to run 'pasta mbox_prepare'?
Motivation:
Concerning testing and verification methods and tools, i.e., static and dynamic analysis, we would like to argue a good coverage of the safety standards’ objectives by the following assessment. We assess the current state and identify gaps through the following three investigations:
For the second investigation, we would like to build upon some analysis with Pasta.
Pre-existing Investigation
todo: mention Philipp Klocke's work.
Implementation Task in Pasta
We would like to determine where patches have been induced to be modified by testing and verification tool output.
Identify those patches with modification due to testing and verification:
Evaluation Task with this data
With the identification of impact of tool findings, we want to evaluate the current kernel development.
Evaluate and summarize which tools are applied at which stage in the patch submission and integration process.
The evaluation shall produce a written report to be published as a technical report/white paper/scientific publication (to a Linux-development related/empirical software engineering-related workshop/conference).
The evaluation shall include:
For each commit that ended in the repository, we would like to know:
Implementation task in Pasta: Pasta shall be extended to provide this data. Implementation might require some NLP techniques to extract the reviewer's position.
For each commit, this information shall be aggregated and presented with a list of reviewers and a suitable metric for the level of engagement in the review.
TODO: Look at a few example contributions to define the expected outcome and presentation.
Motivation:
We would like to identify the variability and differences for the various subsystems, and identify outlier patches/patch sets with respect to depth of review.
We would like to refine the assessment of reviewers for patches, git commits, files, kernel subsystems etc.
This is probably a minor documentation quirk
According to the README: The detection phase is split in four steps:
But there are only 3 explicitly mentioned steps.
Many kernel developers use multiple different email addresses while engaging on the mailing list and mention different email addresses in the MAINTAINERS file. Hence, statistics that aggregate based on email identities and try to map engagements to roles in MAINTAINERS.
Hence, it would be helpful if we have some support that we can use to uniquely identify a kernel developer and map the various identities to a unique identifier.
We probably should start looking at what Jonathan Corbet does in gitdm to identify developers and make optimal reuse of that. Maybe Wolfgang has also some functionality for that as well?
Motivation:
Currently, Pasta is a tool developed by a single developer and only has a small (academic) user base. When we integrate with patchwork, we hope that this significantly increases the interest, user base and eventually the development community around this tool. This will help to keep Pasta maintained and evolve over time.
Task:
Integrate the automatic tracking from PaStA into the WebGUI of the patchwork tool, such that the user can see the different versions of the patches and where it was integrated in the repositories.
Further, it should be possible to show similar patches on the mailing list/git repositories in Patchwork [1]. This indicates concurrent activities on the mailing list.
Possibly, we can also provide these functionalities as a simple command line tool for the kernel developers to inform them about the current state of their patches and to point out similar changes that are happening elsewhere (and where the developer might not been aware). This would then not be integrated in Patchwork, but would be part of PaStA as self-contained tool.
Motivation:
This would allow to show to which extent the MAINTAINERS file reflects the current practice and the mismatch.
Open question:
Does this even need the mailing list, or could this be determined just by considering the git history, i.e., the git committer of each commit and the MAINTAINERS file?
We want to know which kernel mailing lists were mentioned over the history of the kernel development.
I can think of two reasonable visualisations:
The data is probably again a bit dirty, but probably with a bit of manual tweaking (simply ignore email addresses that are not really mailing list), we can a nice visualisation.
It is probably simple for us to go back to v2.6.12; before that it is a bit more tricky.
@rralf You know where we find the mentioning of mailing lists; let us see if others know this as well.
The next challenge would be to plot the earliest available mailing list archive data we have for each list in the same diagram.
After a conversation with @rralf I realised that a lot of the problems and hacky things we do in PaStA is while trying to persist stuff. Currently we are persisting stuff in an ad-hoc way in text files and caches and trying to simulate a database.
What if we actually used a database instead? I dont have a lot of experience with Redis but seems like it could be a good fit for this usecase.
Other database options can be considered too
Considering executing an analysis, there are several different input sources, internal cache states that are constructed to previous runs and an evolving implementation. All of those factors, that could be considered the configuration state on which an analysis is based on, lead to slightly different results when executing an analysis on slightly different configurations.
In order to clearly and unambigiously determine this configuration state, specifically for the purpose of providing analysis results to others that then independently may reproduce them with the same outcome, pasta should report a short configuration state summary
that mentions short unique identifiers of the overall configuration state.
I would imagine that it needs to report:
The ultimate goal would be that:
Here is a simple first exercise to learn about kernel development process analysis:
https://www.kernel.org/doc/html/latest/process/submitting-patches.html#select-the-recipients-for-your-patch
https://www.kernel.org/doc/html/latest/process/maintainers.html
https://github.com/lfd/PaStA/blob/master/pypasta/LinuxMaintainers.py
Then, the script shall:
E.g.,
pasta maintainers show entry --filter <filelist text file> [--file <MAINTAINERS file>; if not provided, it shall default to MAINTAINERS]
pasta maintainers show maintainers --filter <filelist text file> [--file <MAINTAINERS file>; if not provided, it shall default to MAINTAINERS]
Follow the general structure for implementation that you find for the other pasta commands in ./bin of the repository.
Naming scheme of project specific configuration files in the resources/
directory currently have a redundant naming scheme (e.g.: resources/linux/linux.cfg
). Rename them consistently to resources/project/config
.
Furthermore, replace the symlink in the root directory of PaStA with a regular file pointing to the active configuration. The active configuration can be chosen with pasta select project
or echo project > config
.
I was trying to setup PaSta on my local and was getting various errors related to dependencies not being there on my system. I think a requirements.txt
would be a step towards streamlining the setup process.
Motivation:
If we find systematic shortcomings between to whom the patches are usually sent to and get_maintainer.pl
recommendation, we can improve get_maintainer.pl
in this regard.
Motivation:
Regularly, multiple developers, especially kernel janitors, address the same code issues concurrently without knowledge of the work of each other. So, some patches, especially cleanup patches, are developed and submitted to the mailing list that have been already addressed in very similar way by another patch submitted to the mailing list.
Task: Provide an interface for developers to identify similar patches to the patches they have under development, they consider for submission or that they have submitted to the mailing list.
For patches under development or considered for submission, this interface shall be a simple web-based interface (as online webservice) and a command-line tool (that should synchronize data when connected, but also work without internet connection).
For patches that are submitted, the interface should be an extension to patchwork and an email bot service for developers that opt-in to that service.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.