qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Call for Google Summer of Code 2021 project ideas


From: John Snow
Subject: Re: Call for Google Summer of Code 2021 project ideas
Date: Wed, 13 Jan 2021 14:05:17 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

On 1/13/21 4:19 AM, Markus Armbruster wrote:
John Snow <jsnow@redhat.com> writes:

On 1/11/21 6:47 AM, Stefan Hajnoczi wrote:
Dear QEMU, KVM, and rust-vmm community,
QEMU will apply for Google Summer of Code
(https://summerofcode.withgoogle.com/) again this year.  This internship
program offers paid, 10-week, remote work internships for
contributing to open source.  QEMU can act as an umbrella organization
for KVM kernel and rust-vmm projects too.
Please post project ideas on the QEMU wiki before February 14th:
https://wiki.qemu.org/Google_Summer_of_Code_2021
What's new this year:
   * The number of internship hours has been halved to 175 hours over
     10 weeks. Project ideas must be smaller to fit and students will have
     more flexibility with their working hours.
   * Eligibility has been expanded to include "licensed coding school or
     similar type of program".
Good project ideas are suitable for 175 hours (10 weeks half-day)
work by a
competent programmer who is not yet familiar with the codebase.  In
addition, they are:
   * Well-defined - the scope is clear
   * Self-contained - there are few dependencies
   * Uncontroversial - they are acceptable to the community
   * Incremental - they produce deliverables along the way
Feel free to post ideas even if you are unable to mentor the
project.
It doesn't hurt to share the idea!


I have one that is probably way too ambitious, but requires a
particular skillset that might be of good interest to a student that
has some experience in the area already.

The idea is for a TUI qmp-shell (maybe using urwid?) to create an
irssi-like REPL interface for QMP. The idea would be to mimic the
mitmproxy TUI interface (Check it out if you haven't!)

All the ideas below are extremely tentative to give a basic gist of
what I mean; exact layouts/hotkeys/etc are for the sake of explanation
only.

Essentially, I want an interface like this:

-----------------------------------------------------------
| QMP Mode                                                |
|=========================================================|
|                                                         |
| Welcome to the Qemu Machine Protocol shell.             |
| Please type /help or Ctrl+H to see available commands.  |
|                                                         |
|                                                         |
|                                                         |
|---------------------------------------------------------|
| >                                                       |
-----------------------------------------------------------

commands are entered in the bottom and appear in a log window above,
appearing most-recent last, like irssi works.

As an example, let's say we issue block-dirty-bitmap-add:

--------------------------------------------------------
| > block-dirty-bitmap-add node=ide0hd0 name=mybitmap0 |
--------------------------------------------------------

(...syntax up for debate...! We want something easy to parse, but easy
to type. For structured data, that's Hard.)

"Hard" is a red flag for such a brief internship.  We need to solve or
somehow exclude this design problem before we hand the task to the
student.

[...]


Yes, there is a reason I capitalized "Hard". :~)

This task CAN be split out, though. For starters, we can use an extremely simplified parsing strategy while we work on the REPL and and UI elements.

We can accept things of the form:
command arg=value arg2=value

and we can worry about how to input structured data later. I don't think it's a blocker to have someone work on the TUI and asynchronous dispatch elements. I think even just keeping our current parsing but adding some of the features outlined in the proposal would be a big usability win.

--js




reply via email to

[Prev in Thread] Current Thread [Next in Thread]