Giter Club home page Giter Club logo

pasta's People

Contributors

8sd avatar basakerdamar avatar bulwahn avatar ditzlike avatar metp avatar rralf avatar rsarky avatar shubhampandey28 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pasta's Issues

Identify and evaluate ignored/re-submitted patches

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:

  • The patch has been provided to the mailing list.
  • The patch was not included in the git repository
  • The patch was not discussed on the mailing list

Further, an re-submitted patch is defined as follows:

  • The first patch has been provided to the mailing list.
  • The first patch was not discussed on the mailing list
  • A similar patch was re-submitted to the mailing list by a second person
  • The second patch was included into the git repository

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 absolute number of patches in the kernel development over time (for the last ten years and as far as lore.kernel.org data is available) for the two categories (ignored, re-submitted)
  • the relative number of patches for the two categories compared to the absolute number of patches over time
  • interpretation of the trending of that development over time
  • differentiation of this data according to the Linux kernel subsystems
  • refinement of the data to three relevant product kernel configurations (refinement can probably be done using the patch-impact tester)
  • classification of ignored and re-submitted patches to determine the root cause. Categories shall be critical bug fixes (with determination of CWE if applicable), optimisations, features or stylistic changes, i.e., documentation, code style issues, code readability, patch conflicts, i.e., the patch could not be applied due to another change that happened in parallel.
  • interpretation of the data after the classification with recommendations to the three relevant product kernel configurations and the Linux kernel development in general
  • evaluation if the determined ratios for the subsystems are in line with the expert opinion and community recognition of subsystem maintainers, e.g., overload of maintainer, maintainer policy, through an email/online questionnaire and interview session on a Linux kernel conference, e.g., Linux plumbers.

Update Readme for Getting PaStA

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.

Proposal

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

Patch groups file is not created

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-resultfile is created.

set_config shows invalid literal for int with base 10

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$

Provide detailed information on object comparison

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.

Compute relation between patch series

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?

Create a ML model for the patch recipients based on the recipients of sent patches

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:

  1. Prepare the existing data to learn the model.
  2. Do we pass the whole patch content as-is for learning, or do we already preselect specific information, such as files, significant keywords in commit message and diff?
  3. What is the precision and recall of the learned model?
  4. Do certain points, e.g., the sender of a patch, have an impact for the model?
  5. Can we relate this model and the information in get_maintainers.pl?

Combine PaStA with the cregit tool

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.

Support mailbox import from public-inbox (lore.kernel.org mailing list archives)

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.

Measure dynamics on the patches during the patch discussion and evolution

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

  • Measure changes of Lines added, Lines deleted over time, i.e., patch versions
  • Identify patch splitting, patch merging, patch reorderings
  • Classify code changes with heuristics:
    • measure modified lines compared to added/deleted, using Greg KH's script to identify modifications
    • use cregit tokenizer to identify the level of changes, i.e., number of changed tokens

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.

Linux Kernel Internship - Patch Trace Analysis with PaStA

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!

(1) https://wiki.linuxfoundation.org/lkmp/lkmp_project_list

Analysis jailhouse repo with PaSta

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:

  • Ran ./pasta select jailhouse
  • Ran ./pasta sync
    The above two commands run successfully.
    My next step was to run ./pasta sync -mbox
    The output of this command is as follows:
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!

Error: process_mail.sh failed, probably due to long pathnames

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.

Have an option to only run representative analyses (No repository required)

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?

Visualize and summarize patch set evolution over versions

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:

  • how many out-of-tree patches are modified from one kernel release to the next,
  • how many out-of-tree patches were merged from one kernel release to the next,
  • which out-of-tree patches were provided for submission on the mailing list, which were discussed and with which intensity

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

Collect user feedback on relating patches in patchwork tool to improve Pasta

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.

Investigate matching alternatives for diff hunk header

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:

  • it seems that some patches are created where the patches are cut off after 40 characters
  • sometimes the line of the diff hunk header is refactored between patch creation and inclusion

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.

Running "pasta analyse succ" in mbox mode doesnt show appropriate error message

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

`git -C resources submodule update` is taking a huge amount of time

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'...

Demonstrate PaStA capabilities for interested visitors

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:

  • Provide a dashboard service of insights from implemented analysis in Pasta
  • Provide a public service (Web frontend) of the Pasta result
  • Provide a yearly report where the analysis with PaStA are interpreted, and changes that can be identified with PaStA are described, interpreted and explained.

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.

Fix erroneous behaviour in LinuxMaintainers

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.

Linux weekly digest

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.

Derive a rule set for the patch recipients based on the existing email data

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.

Measure discussion engagement of developers

Task: Determine and measure to which extent each developer actively participated in discussion of patch submissions.

Differentiate this measurement depending on:

  • if the developer was in the CC list of the patch submission
  • if the developer was not in the CC list of the patch submission
  • if the developer was added to the patch with a signed-off-by/reviewed-by/etc. tag

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.

Correct hint in error message

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'?

Assess usage and impact of tools in the development process

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:

  1. Assess capabilities of used tools
  2. Assess usage/impact of tools in the development process
  3. Analyse the output of verification tools on the current codebase

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:

  • Based on keywords mentioned in the patch change history
  • Based on email responses from automatic testing infrastructure

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:

  • the absolute number of patches in the kernel development over time (for the last ten years and as far as lore.kernel.org data is available) that have been impacted by verification tools.
  • the relative number of patches impacted by verification tools to the absolute number of patches over time
  • interpretation of the trending of that development over time
  • differentiation of this data according to the Linux kernel subsystems
  • refinement of the data to three relevant product kernel configurations (refinement can probably be done using the patch-impact tester)
  • classification of changes due to tool findings. Categories shall be critical bug fixes (with determination of CWE if applicable), stylistic changes, i.e., documentation, code style issues, code readability.
  • interpretation of the data after the classification with recommendations to the three relevant product kernel configurations and the Linux kernel development in general
  • evaluation if the determined ratios for the subsystems are in line with the expert opinion and community recognition of subsystem maintainers, e.g., overload of maintainer, maintainer policy, through an email/online questionnaire and interview session on a Linux kernel conference, e.g., Linux plumbers.

Measure and evaluate review and discussion degree for commits

For each commit that ended in the repository, we would like to know:

  • who was engaged in the email discussion and to which degree
  • to which degree did the discussion take place:
    • when was who involved in the discussion over time/over patch versions
  • what was the conclusion of the discussion, acceptance to inclusion or rejection to inclusion, which reviewers took which position (acceptance or rejection)

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.

Support identification of kernel developers for improving the precision of analysis

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?

Combine PaStA with the patchwork tool

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.

[1] http://jk.ozlabs.org/projects/patchwork/

git and MAINTAINERS only: plot mailing lists over time

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.

Introduce Redis to handle resources

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

Provide an overall configuration state summary

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 sha identifier of the pasta source git repository (or some pasta release version number)
  • the relevant parts of the config file, if not covered by the further information in this list
  • the sha identifiers of all the public-inbox git repositories
  • a hash for each raw mbox file
  • a hash of the mail index
  • a hash of the caches
  • and probably some further hashes of some internal processing that is reused from one analysis to the next.

The ultimate goal would be that:

  1. Given that configuration state summary, it is possible to re-create the same configuration for an analysis. e.g., on a different system or by a second user.
  2. when the configuration state summary is completely identical, the analysis with pasta will produce exactly the same results.

Determine the relevant entries and maintainers for a provided list of files

Here is a simple first exercise to learn about kernel development process analysis:

  1. step: read on the structure and content of the MAINTAINERS file in the Linux kernel and the get_maintainers.pl script.

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

  1. step: understand what the LinuxMaintainers class in Pasta already offers:

https://github.com/lfd/PaStA/blob/master/pypasta/LinuxMaintainers.py

  1. step: Write a small script in python, that takes the list of relevant files as input and uses the LinuxMaintainers Class to parse a given MAINTAINERS file.

Then, the script shall:

  • print out the list of relevant maintainer entries (with the entry name) for the list of relevant files, and
  • print out the list of maintainers of all relevant entries.
  • allow some basic information on how large the entries are in LoC total and in LoC of the relevant files
  • aggregate this LoC for each relevant maintainer (as there are maintainers that will be mentioned in multiple (non-overlapping) entries).
  1. step: By extending this quick script above, create proper pasta commands in ./bin with a reasonable bash options:

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.

  1. step: Provide a pull request to the pasta repository.

Rename config files

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.

[GSOC] Add a requirements.txt to make setup easier

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.

Identify similar patches to patch under development/submission

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.