Show a cover letter.

GET /api/covers/454/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 454,
    "url": "http://patches.dpdk.org/api/covers/454/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20231204102429.106709-1-juraj.linkes@pantheon.tech/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231204102429.106709-1-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231204102429.106709-1-juraj.linkes@pantheon.tech",
    "date": "2023-12-04T10:24:08",
    "name": "[v9,00/21] dts: docstrings update",
    "submitter": {
        "id": 1626,
        "url": "http://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20231204102429.106709-1-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 30441,
            "url": "http://patches.dpdk.org/api/series/30441/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30441",
            "date": "2023-12-04T10:24:08",
            "name": "dts: docstrings update",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/30441/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/454/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id C8E604366A;\n\tMon,  4 Dec 2023 11:24:31 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B129D40DD8;\n\tMon,  4 Dec 2023 11:24:31 +0100 (CET)",
            "from mail-wm1-f54.google.com (mail-wm1-f54.google.com\n [209.85.128.54]) by mails.dpdk.org (Postfix) with ESMTP id 0374D4028C\n for <dev@dpdk.org>; Mon,  4 Dec 2023 11:24:31 +0100 (CET)",
            "by mail-wm1-f54.google.com with SMTP id\n 5b1f17b1804b1-40838915cecso43541665e9.2\n for <dev@dpdk.org>; Mon, 04 Dec 2023 02:24:31 -0800 (PST)",
            "from jlinkes-PT-Latitude-5530.pantheon.local ([81.89.53.154])\n by smtp.gmail.com with ESMTPSA id\n m28-20020a05600c3b1c00b0040b2b38a1fasm14255415wms.4.2023.12.04.02.24.29\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 04 Dec 2023 02:24:30 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1701685470; x=1702290270; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=5dt0oGNpqoCZbWd8FbMS1M+XHeE5Mw+LD3qjFQQq4L0=;\n b=dnng9syqq32y0SBQPOABSyTLXIjlY4JweXJ3iwyGVdn97PMwWsJghHdDYHVt8GAEle\n 9EJCejIYgr7/ivEZJQ/e+S8mCU6lyLCpkxoA2+Qun6jljHbilDNBQ2Qb+jvu6U3Gfuau\n Ah4qslNO8CRGZU1OJ+5mujeWkFIpEk32jnHCYfpN68MbiJaGEIfW/QTh2iZ0R9TkDkmP\n 8pE/whhXix9sSRRjiBxP6qRy3x4CKnkJX/jUAETPiWD49wt6nHEFSCiVF1gdZsuFvo7a\n 16Q8DCZzA8Hbz4zMob8CRUVVCNYrTX9oiE4GVqnZHjsmTK0nK8LwWp5Xt2TbawR6vYOn\n jfHQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1701685470; x=1702290270;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=5dt0oGNpqoCZbWd8FbMS1M+XHeE5Mw+LD3qjFQQq4L0=;\n b=BHfRKoxLmeCFW7ksLfBGgFqoQpEZMGfe0xP/tiqZonKTnW8nuLEB4WZm1rHHaf7UKe\n yrJFLk295UGqDcIi/aU8Y9JIlXJrC9LSsPkoZ6enUPFOjQYbzvI4z7nRAKBGNlP97CiV\n n8Z9VmxtEIOcL5LZiKAsW297Gd43rzWGSbbvkC4AQYdn4MXozFl9w55HslhypdQSr6o8\n uC8ai90HZFR+kQBf0wY7VaHudSHPpK59LAvEHcE6PYXVd1qwSdI+dPaNWfZDL6FedkCJ\n 8WzubJu8N50tezcANTF9QzhRSPcOFKAY5JWnEtsSOSA+3QJWl7DAFG1sV+EOJQCvhNm2\n i6vg==",
        "X-Gm-Message-State": "AOJu0Yz5N+s1bdCogFaEcddNL8cp9691GQNw1BjzsKyAVuo9wlv4aYvl\n f8N8CYEOtv6D4/2H1K4S9iWJ7Q==",
        "X-Google-Smtp-Source": "\n AGHT+IFvoVEMMoiHfsKhoFTwzKGSJ9/9msnh4XgdHiXuy6xsoz417DuYlqieK5fJDJa8Erq3rJUejg==",
        "X-Received": "by 2002:a7b:cd0a:0:b0:40b:5e59:da94 with SMTP id\n f10-20020a7bcd0a000000b0040b5e59da94mr2044181wmj.167.1701685470593;\n Mon, 04 Dec 2023 02:24:30 -0800 (PST)",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, jspewock@iol.unh.edu,\n probb@iol.unh.edu, paul.szczepanek@arm.com, yoan.picchi@foss.arm.com,\n Luca.Vizzarro@arm.com",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[PATCH v9 00/21] dts: docstrings update",
        "Date": "Mon,  4 Dec 2023 11:24:08 +0100",
        "Message-Id": "<20231204102429.106709-1-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20231123151344.162812-1-juraj.linkes@pantheon.tech>",
        "References": "<20231123151344.162812-1-juraj.linkes@pantheon.tech>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The first commit makes changes to the code. These code changes mainly\nchange the structure of the code so that the actual API docs generation\nworks. There are also some code changes which get reflected in the\ndocumentation, such as making functions/methods/attributes private or\npublic.\n\nThe rest of the commits deal with the actual docstring documentation\n(from which the API docs are generated). The format of the docstrings\nis the Google format [0] with PEP257 [1] and some guidelines captured\nin the last commit of this group covering what the Google format\ndoesn't.\nThe docstring updates are split into many commits to make review\npossible. When accepted, they may be squashed.\nThe docstrings have been composed in anticipation of [2], adhering to\nmaximum line length of 100. We don't have a tool for automatic docstring\nformatting, hence the usage of 100 right away to save time.\n\nNOTE: The logger.py module is not fully documented, as it's being\nrefactored and the refactor will be submitted in the near future.\nDocumenting it now seems unnecessary.\n\n[0] https://google.github.io/styleguide/pyguide.html#s3.8.4-comments-in-classes\n[1] https://peps.python.org/pep-0257/\n[2] https://patches.dpdk.org/project/dpdk/list/?series=29844\n\nv7:\nSplit the series into docstrings and api docs generation and addressed\ncomments.\n\nv8:\nAddressed review comments, all of which were pretty minor - small\ngramatical changes, a little bit of rewording to remove confusion here\nand there, additional explanations and so on.\n\nv9:\nAddressed review comments, again all minor grammar fixes.\n\nJuraj Linkeš (21):\n  dts: code adjustments for doc generation\n  dts: add docstring checker\n  dts: add basic developer docs\n  dts: exceptions docstring update\n  dts: settings docstring update\n  dts: logger and utils docstring update\n  dts: dts runner and main docstring update\n  dts: test suite docstring update\n  dts: test result docstring update\n  dts: config docstring update\n  dts: remote session docstring update\n  dts: interactive remote session docstring update\n  dts: port and virtual device docstring update\n  dts: cpu docstring update\n  dts: os session docstring update\n  dts: posix and linux sessions docstring update\n  dts: node docstring update\n  dts: sut and tg nodes docstring update\n  dts: base traffic generators docstring update\n  dts: scapy tg docstring update\n  dts: test suites docstring update\n\n doc/guides/tools/dts.rst                      |  73 +++\n dts/framework/__init__.py                     |  12 +-\n dts/framework/config/__init__.py              | 375 +++++++++++++---\n dts/framework/config/types.py                 | 132 ++++++\n dts/framework/dts.py                          | 162 +++++--\n dts/framework/exception.py                    | 156 ++++---\n dts/framework/logger.py                       |  72 ++-\n dts/framework/remote_session/__init__.py      |  80 ++--\n .../interactive_remote_session.py             |  36 +-\n .../remote_session/interactive_shell.py       | 150 +++++++\n dts/framework/remote_session/os_session.py    | 284 ------------\n dts/framework/remote_session/python_shell.py  |  32 ++\n .../remote_session/remote/__init__.py         |  27 --\n .../remote/interactive_shell.py               | 131 ------\n .../remote_session/remote/python_shell.py     |  12 -\n .../remote_session/remote/remote_session.py   | 168 -------\n .../remote_session/remote/testpmd_shell.py    |  45 --\n .../remote_session/remote_session.py          | 230 ++++++++++\n .../{remote => }/ssh_session.py               |  28 +-\n dts/framework/remote_session/testpmd_shell.py |  84 ++++\n dts/framework/settings.py                     | 188 ++++++--\n dts/framework/test_result.py                  | 301 ++++++++++---\n dts/framework/test_suite.py                   | 236 +++++++---\n dts/framework/testbed_model/__init__.py       |  29 +-\n dts/framework/testbed_model/{hw => }/cpu.py   | 209 ++++++---\n dts/framework/testbed_model/hw/__init__.py    |  27 --\n dts/framework/testbed_model/hw/port.py        |  60 ---\n .../testbed_model/hw/virtual_device.py        |  16 -\n .../linux_session.py                          |  70 ++-\n dts/framework/testbed_model/node.py           | 214 ++++++---\n dts/framework/testbed_model/os_session.py     | 422 ++++++++++++++++++\n dts/framework/testbed_model/port.py           |  93 ++++\n .../posix_session.py                          |  85 +++-\n dts/framework/testbed_model/sut_node.py       | 238 ++++++----\n dts/framework/testbed_model/tg_node.py        |  69 ++-\n .../traffic_generator/__init__.py             |  43 ++\n .../capturing_traffic_generator.py            |  49 +-\n .../{ => traffic_generator}/scapy.py          | 110 +++--\n .../traffic_generator.py                      |  47 +-\n dts/framework/testbed_model/virtual_device.py |  29 ++\n dts/framework/utils.py                        | 122 ++---\n dts/main.py                                   |  19 +-\n dts/poetry.lock                               |  12 +-\n dts/pyproject.toml                            |   6 +-\n dts/tests/TestSuite_hello_world.py            |  16 +-\n dts/tests/TestSuite_os_udp.py                 |  20 +-\n dts/tests/TestSuite_smoke_tests.py            |  61 ++-\n 47 files changed, 3452 insertions(+), 1628 deletions(-)\n create mode 100644 dts/framework/config/types.py\n rename dts/framework/remote_session/{remote => }/interactive_remote_session.py (76%)\n create mode 100644 dts/framework/remote_session/interactive_shell.py\n delete mode 100644 dts/framework/remote_session/os_session.py\n create mode 100644 dts/framework/remote_session/python_shell.py\n delete mode 100644 dts/framework/remote_session/remote/__init__.py\n delete mode 100644 dts/framework/remote_session/remote/interactive_shell.py\n delete mode 100644 dts/framework/remote_session/remote/python_shell.py\n delete mode 100644 dts/framework/remote_session/remote/remote_session.py\n delete mode 100644 dts/framework/remote_session/remote/testpmd_shell.py\n create mode 100644 dts/framework/remote_session/remote_session.py\n rename dts/framework/remote_session/{remote => }/ssh_session.py (82%)\n create mode 100644 dts/framework/remote_session/testpmd_shell.py\n rename dts/framework/testbed_model/{hw => }/cpu.py (50%)\n delete mode 100644 dts/framework/testbed_model/hw/__init__.py\n delete mode 100644 dts/framework/testbed_model/hw/port.py\n delete mode 100644 dts/framework/testbed_model/hw/virtual_device.py\n rename dts/framework/{remote_session => testbed_model}/linux_session.py (77%)\n create mode 100644 dts/framework/testbed_model/os_session.py\n create mode 100644 dts/framework/testbed_model/port.py\n rename dts/framework/{remote_session => testbed_model}/posix_session.py (73%)\n create mode 100644 dts/framework/testbed_model/traffic_generator/__init__.py\n rename dts/framework/testbed_model/{ => traffic_generator}/capturing_traffic_generator.py (68%)\n rename dts/framework/testbed_model/{ => traffic_generator}/scapy.py (71%)\n rename dts/framework/testbed_model/{ => traffic_generator}/traffic_generator.py (51%)\n create mode 100644 dts/framework/testbed_model/virtual_device.py"
}