Show a cover letter.

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

{
    "id": 406,
    "url": "http://patches.dpdk.org/api/covers/406/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20231115130959.39420-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": "<20231115130959.39420-1-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231115130959.39420-1-juraj.linkes@pantheon.tech",
    "date": "2023-11-15T13:09:38",
    "name": "[v7,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/20231115130959.39420-1-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 30302,
            "url": "http://patches.dpdk.org/api/series/30302/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30302",
            "date": "2023-11-15T13:09:38",
            "name": "dts: docstrings update",
            "version": 7,
            "mbox": "http://patches.dpdk.org/series/30302/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/406/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 5C38243339;\n\tWed, 15 Nov 2023 14:10:38 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0901740294;\n\tWed, 15 Nov 2023 14:10:38 +0100 (CET)",
            "from mail-ed1-f42.google.com (mail-ed1-f42.google.com\n [209.85.208.42]) by mails.dpdk.org (Postfix) with ESMTP id CAAD740285\n for <dev@dpdk.org>; Wed, 15 Nov 2023 14:10:36 +0100 (CET)",
            "by mail-ed1-f42.google.com with SMTP id\n 4fb4d7f45d1cf-5441305cbd1so10334843a12.2\n for <dev@dpdk.org>; Wed, 15 Nov 2023 05:10:36 -0800 (PST)",
            "from jlinkes-PT-Latitude-5530.pantheon.local\n (81.89.53.154.host.vnet.sk. [81.89.53.154])\n by smtp.gmail.com with ESMTPSA id\n tb16-20020a1709078b9000b009f2b7282387sm1011914ejc.46.2023.11.15.05.10.07\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 15 Nov 2023 05:10:20 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1700053836; x=1700658636; 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=eJix6DbRCn7zanFinPlYHLCqQMHPGgGWAKhOH55vojI=;\n b=XwjUFFg2l8YGtjlbHv+DpS0r/In1a9HOV/bKWKii7q6byDNjJqZ8oHBhLxdoNIslW3\n mFMbqL/qDhDWPWS0nY3x1JliSf78B85Mt8sdHUzcvDDwMsHrvH5ZzwiJvuAmjfuCAQua\n 5cq3kqJvn0CWwiQtT0ii5ADoWcpJcbMXye5fu7AKLEuPVvxdkJ9m9J/ZApsqUPuafwMu\n OqDJK+N4Vm1Ckqphq9T+juk5681BYfBNloG9Pr6+D/w9fuLJl0UcvrThB0j3jJxwpdvO\n KoOkn8UDERfKSy06Wwn9eGa8KFICCAjgGbfmBEj40J/08Br805z5yq5HkE4D5m2b4XIh\n jYFg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1700053836; x=1700658636;\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=eJix6DbRCn7zanFinPlYHLCqQMHPGgGWAKhOH55vojI=;\n b=SlX2ULw5uOek84MAH+5PFNZ5i/gjwE/NI4yhf68+IIyCQKECE2VRzYryP+0xIEVtXh\n ggGxNtAL8GCXokALFzcjG377w/13T79eQAUKnDKCDRCW2h5ZOUPfyfn9bl2wwFZsEVVi\n yuvAntj8bKIVuaJs79WjKEFKdFhwFleJcvuGG5NxqJw0QJC2y7xgI9UALyxDPLnaioYZ\n 91HhZknxh51qu0BhCvUPtk4e4qx43AoUWJn6s8G9KFS6arwoi+Uj3iG4qSYSx/Lgwn+7\n wU2DTwiJ5TzkqTjWro+zqBmqQYU6BUkxdWAbxL0dJ8ySvEGxG1agpEcmFVa8PX00Bg3C\n wT5g==",
        "X-Gm-Message-State": "AOJu0YwBSMl+7/6+Wkgjvch1g+hljXer8X974KBAyBFN+7ajYBbO5MU6\n IUfdEi2n5Ib44KTC07czFiEJTw==",
        "X-Google-Smtp-Source": "\n AGHT+IHzc9NPhnMC9kyMYXWGB09cu9wkO6P6S2bc8TjJeT7I+H2THpN8FhJiShMKR185v15TAwenaQ==",
        "X-Received": "by 2002:a17:906:c011:b0:9e5:e7da:8cfd with SMTP id\n e17-20020a170906c01100b009e5e7da8cfdmr9560456ejz.11.1700053836445;\n Wed, 15 Nov 2023 05:10:36 -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",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[PATCH v7 00/21] dts: docstrings update",
        "Date": "Wed, 15 Nov 2023 14:09:38 +0100",
        "Message-Id": "<20231115130959.39420-1-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20231108125324.191005-23-juraj.linkes@pantheon.tech>",
        "References": "<20231108125324.191005-23-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\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              | 379 +++++++++++++---\n dts/framework/config/types.py                 | 132 ++++++\n dts/framework/dts.py                          | 161 +++++--\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       | 152 +++++++\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               | 133 ------\n .../remote_session/remote/python_shell.py     |  12 -\n .../remote_session/remote/remote_session.py   | 172 -------\n .../remote_session/remote/testpmd_shell.py    |  49 --\n .../remote_session/remote_session.py          | 232 ++++++++++\n .../{remote => }/ssh_session.py               |  28 +-\n dts/framework/remote_session/testpmd_shell.py |  86 ++++\n dts/framework/settings.py                     | 190 ++++++--\n dts/framework/test_result.py                  | 296 +++++++++---\n dts/framework/test_suite.py                   | 230 +++++++---\n dts/framework/testbed_model/__init__.py       |  28 +-\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                          |  69 ++-\n dts/framework/testbed_model/node.py           | 216 ++++++---\n dts/framework/testbed_model/os_session.py     | 425 ++++++++++++++++++\n dts/framework/testbed_model/port.py           |  93 ++++\n .../posix_session.py                          |  85 +++-\n dts/framework/testbed_model/sut_node.py       | 232 ++++++----\n dts/framework/testbed_model/tg_node.py        |  70 ++-\n .../testbed_model/traffic_generator.py        |  72 ---\n .../traffic_generator/__init__.py             |  44 ++\n .../capturing_traffic_generator.py            |  52 ++-\n .../{ => traffic_generator}/scapy.py          | 114 ++---\n .../traffic_generator/traffic_generator.py    |  87 ++++\n dts/framework/testbed_model/virtual_device.py |  29 ++\n dts/framework/utils.py                        | 128 +++---\n dts/main.py                                   |  17 +-\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                 |  19 +-\n dts/tests/TestSuite_smoke_tests.py            |  53 ++-\n 48 files changed, 3511 insertions(+), 1692 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 (83%)\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 (79%)\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 (74%)\n delete mode 100644 dts/framework/testbed_model/traffic_generator.py\n create mode 100644 dts/framework/testbed_model/traffic_generator/__init__.py\n rename dts/framework/testbed_model/{ => traffic_generator}/capturing_traffic_generator.py (66%)\n rename dts/framework/testbed_model/{ => traffic_generator}/scapy.py (71%)\n create mode 100644 dts/framework/testbed_model/traffic_generator/traffic_generator.py\n create mode 100644 dts/framework/testbed_model/virtual_device.py"
}