[{"id":30691,"web_url":"https://patchwork.libcamera.org/comment/30691/","msgid":"<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>","date":"2024-08-07T15:51:08","subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Laurent\n\nOn 07/08/2024 16:44, Laurent Pinchart wrote:\n> The Camera::create() function is internal. Hide it from the public API\n> documentation.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n\n\nOops, I missed this before. I think it's broadly fine but we'll have to be pretty vigilant to catch \nany new functions with the same problem.\n\nReviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\n>   src/libcamera/camera.cpp | 1 +\n>   1 file changed, 1 insertion(+)\n>\n> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> index aca466c9ba72..382a68f7bddd 100644\n> --- a/src/libcamera/camera.cpp\n> +++ b/src/libcamera/camera.cpp\n> @@ -821,6 +821,7 @@ void Camera::Private::setState(State state)\n>    */\n>   \n>   /**\n> + * \\internal\n>    * \\brief Create a camera instance\n>    * \\param[in] d Camera private data\n>    * \\param[in] id The ID of the camera device","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8537CBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  7 Aug 2024 15:51:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A09A96337F;\n\tWed,  7 Aug 2024 17:51:13 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C39E26337E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  7 Aug 2024 17:51:11 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C8C856AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  7 Aug 2024 17:50:18 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dd1w14om\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723045818;\n\tbh=SHCV+CYR1Pwrw2H4zI/avtahCdpjKVkxWMvIp5gmE8s=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=dd1w14omgb7trVm06LKvvMP3EZaszfVTOKbzVs8KxZ3KwypMBIz0ApMEPhzFSkp5M\n\tkWE835+7js8RDrenRpoYj2AGmLqaV/b1KOlwt4uWLfKCPSt0qq73d9HwhixEEz/JR4\n\tf+Zbu2RQI8RAaqvkcMoimG1aYnlhu8ayY3dW3zwA=","Message-ID":"<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>","Date":"Wed, 7 Aug 2024 16:51:08 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","To":"libcamera-devel@lists.libcamera.org","References":"<20240807154410.9552-1-laurent.pinchart@ideasonboard.com>\n\t<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30698,"web_url":"https://patchwork.libcamera.org/comment/30698/","msgid":"<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>","date":"2024-08-07T20:47:24","subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from\n\tthe public API","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Hi,\n\nLe mercredi 07 août 2024 à 16:51 +0100, Dan Scally a écrit :\n> Hi Laurent\n> \n> On 07/08/2024 16:44, Laurent Pinchart wrote:\n> > The Camera::create() function is internal. Hide it from the public API\n> > documentation.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > ---\n> \n> \n> Oops, I missed this before. I think it's broadly fine but we'll have to be pretty vigilant to catch \n> any new functions with the same problem.\n> \n> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\nI wonder if there is a way to catch accidental API additions in the CI ?\n\nNicolas\n\n> \n> >   src/libcamera/camera.cpp | 1 +\n> >   1 file changed, 1 insertion(+)\n> > \n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index aca466c9ba72..382a68f7bddd 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -821,6 +821,7 @@ void Camera::Private::setState(State state)\n> >    */\n> >   \n> >   /**\n> > + * \\internal\n> >    * \\brief Create a camera instance\n> >    * \\param[in] d Camera private data\n> >    * \\param[in] id The ID of the camera device","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 493B1C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  7 Aug 2024 20:47:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6A2656338D;\n\tWed,  7 Aug 2024 22:47:27 +0200 (CEST)","from mail-vk1-xa35.google.com (mail-vk1-xa35.google.com\n\t[IPv6:2607:f8b0:4864:20::a35])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F72E6337E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  7 Aug 2024 22:47:26 +0200 (CEST)","by mail-vk1-xa35.google.com with SMTP id\n\t71dfb90a1353d-4f50d8ce6e0so110760e0c.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 07 Aug 2024 13:47:26 -0700 (PDT)","from nicolas-tpx395.lan ([2606:6d00:15:820c::580])\n\tby smtp.gmail.com with ESMTPSA id\n\taf79cd13be357-7a37869a3bdsm92090885a.97.2024.08.07.13.47.24\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 07 Aug 2024 13:47:24 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20230601.gappssmtp.com\n\theader.i=@ndufresne-ca.20230601.gappssmtp.com\n\theader.b=\"e95yirZG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20230601.gappssmtp.com; s=20230601; t=1723063645;\n\tx=1723668445; darn=lists.libcamera.org; \n\th=mime-version:user-agent:content-transfer-encoding:references\n\t:in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=GfXgCAJhx4N3lXofUNarkkOfqMQCxTu4g1+HqCJ+uOE=;\n\tb=e95yirZGT8upNoMGqboXo/Y1P7OAjJzS72C+u5Jn5Tx391COfReHs8t1bXOlhfF+33\n\tpVZqb8IcZQDZ2ECytm/up1sovmuldhMcSa1/kMOLL6aEM0B5EFQFd9bwu7rmZM3ha72Y\n\tDp5dptm7C5ASuV4Ur+086FFUZF60epyChxXHwtscBKWSJxfEvl3kEmz99L7eac4stwC8\n\tWVXVJkKNXagsNgVpV5c34Lb2vA8UFOVrbjhQH0V1W4w12YLbge6K0Fo7qoaJR1/j6UbS\n\tLqOgQyYkGMZYwxF9OusYzbuCP7d+IIiTwS3PPYIv9RXgSu6QPxfSXRRRvH1q7GDq5tmF\n\taciA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1723063645; x=1723668445;\n\th=mime-version:user-agent:content-transfer-encoding:references\n\t:in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=GfXgCAJhx4N3lXofUNarkkOfqMQCxTu4g1+HqCJ+uOE=;\n\tb=XaXNnTt0RyP6nfYFUFeDZ2nv8VAS2XnS9HC7SxxxhWwmydN7yctiPNHQXybnv35uxy\n\tEexL7kOOPRKxqyU6ZYFfWGWj0aFNBdST8JRkjz67OMGFoFqRqYOEY77RnedKmGqdNVit\n\tXpmNXzjrVPxAsUpn1N+ETjiseRhC3XlsNZj0UtK4dMz78AVvIvn908UAoWH67KsxHvGL\n\tcvOBPKDCO7VXf4RSzm2jOtF5gKeUysHbdpgYyKnxws4+/4bCB35ko5XljuFKueeaG9SB\n\tThW3931IYROUZtwR9VIJWtSnPYFCgn/EOM6hDZsi0o9meupFZ0ds6Jp8R7uLBg8REj9x\n\tcaNQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCXeXUR4XwTY2Kq9yHTne4gBSHQzg/AERWxKXA5fMHjLcd+8JvpBmGPGSwi1cQo8cVRyGtBPHOpTILO00pR8rRXzACkOqBV4TIxsJnw8tHo9Hn+nnA==","X-Gm-Message-State":"AOJu0YwFUv6enAc99S21fJcdXVSBZqAYe/NJ4+HhzangjnzsmKQOg+Mp\n\twM1yeqGiP/OKkZhBngfNisMCZVstD883OWZQTD9bc+m6N6LpD37ZF0bMNsXcfAO2RPemlAdWkqi\n\tF","X-Google-Smtp-Source":"AGHT+IFOOvUtX6FXyFJAmrC5xTL/Xle3ammmhg2vBWkQpfmq/GGfeRJpdghFc6p1FTfDbM0RYIeDeg==","X-Received":"by 2002:a05:6122:1d13:b0:4ed:12b:ec99 with SMTP id\n\t71dfb90a1353d-4f89ff3a3b1mr24492052e0c.3.1723063644990; \n\tWed, 07 Aug 2024 13:47:24 -0700 (PDT)","Message-ID":"<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>","Subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from\n\tthe public API","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Dan Scally <dan.scally@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 07 Aug 2024 16:47:24 -0400","In-Reply-To":"<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>","References":"<20240807154410.9552-1-laurent.pinchart@ideasonboard.com>\n\t<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>\n\t<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","User-Agent":"Evolution 3.52.4 (3.52.4-1.fc40) ","MIME-Version":"1.0","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30700,"web_url":"https://patchwork.libcamera.org/comment/30700/","msgid":"<172310774473.1650394.13557639631397058238@ping.linuxembedded.co.uk>","date":"2024-08-08T09:02:24","subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Nicolas Dufresne (2024-08-07 21:47:24)\n> Hi,\n> \n> Le mercredi 07 août 2024 à 16:51 +0100, Dan Scally a écrit :\n> > Hi Laurent\n> > \n> > On 07/08/2024 16:44, Laurent Pinchart wrote:\n> > > The Camera::create() function is internal. Hide it from the public API\n> > > documentation.\n> > > \n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > ---\n> > \n> > \n> > Oops, I missed this before. I think it's broadly fine but we'll have to be pretty vigilant to catch \n> > any new functions with the same problem.\n> > \n> > Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> \n> I wonder if there is a way to catch accidental API additions in the CI ?\n\nWe can already compare ABI/API changes between versions with the script\nat ./utils/abi-compat.sh\n\nTo integrate that in CI - I would probably want to find a way to 'store'\nthe pre-built ABI files for each tagged/released version so it doesn't\nget rebuilt for every run. But otherwise - it's just 'another build' so\nmaybe it's fine, especially as most of the time it should be run against\nthe merge base, not necessarily the latest tag release.\n\nThen we can have the CI report an 'error' on ABI breakage, and a Warning\non ABI additions or such.\n\nThe ./utils/abi-compat.sh can already compare two commits directly so\nthis should be trivial to add to CI. Just depends if we want to add the\ncomputational costs to CI. Maybe it's fine.\n\n--\nKieran\n\n\n> \n> Nicolas\n> \n> > \n> > >   src/libcamera/camera.cpp | 1 +\n> > >   1 file changed, 1 insertion(+)\n> > > \n> > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > > index aca466c9ba72..382a68f7bddd 100644\n> > > --- a/src/libcamera/camera.cpp\n> > > +++ b/src/libcamera/camera.cpp\n> > > @@ -821,6 +821,7 @@ void Camera::Private::setState(State state)\n> > >    */\n> > >   \n> > >   /**\n> > > + * \\internal\n> > >    * \\brief Create a camera instance\n> > >    * \\param[in] d Camera private data\n> > >    * \\param[in] id The ID of the camera device\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 530A8C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Aug 2024 09:02:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5307663380;\n\tThu,  8 Aug 2024 11:02:28 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 732BA6337F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Aug 2024 11:02:27 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D85698D0;\n\tThu,  8 Aug 2024 11:01:33 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"hf5w4IoA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723107694;\n\tbh=U4iPOVnUzx3DYdWTEpS7rPhRKXT1iDukBjO97acS/pk=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=hf5w4IoA8Z+SeXVXT0IPWXuF7/Qd1IyYKCPMOtqgiq1zpKJCvHs2+FvlKPLRA6N28\n\tMoAU4U5/mYXZBkL1tFOlTNoUQVbKh/7wmR3Ciu72FwCOo3DzP/Sl0LYkq9nnxLjm8n\n\tMKBSSy+BZdofOPeaXZBnzEslJkJAfVu66rioJjfg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>","References":"<20240807154410.9552-1-laurent.pinchart@ideasonboard.com>\n\t<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>\n\t<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>\n\t<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>","Subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Dan Scally <dan.scally@ideasonboard.com>,\n\tNicolas Dufresne <nicolas@ndufresne.ca>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 08 Aug 2024 10:02:24 +0100","Message-ID":"<172310774473.1650394.13557639631397058238@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30702,"web_url":"https://patchwork.libcamera.org/comment/30702/","msgid":"<20240808092033.GA21245@pendragon.ideasonboard.com>","date":"2024-08-08T09:20:33","subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Aug 08, 2024 at 10:02:24AM +0100, Kieran Bingham wrote:\n> Quoting Nicolas Dufresne (2024-08-07 21:47:24)\n> > Le mercredi 07 août 2024 à 16:51 +0100, Dan Scally a écrit :\n> > > On 07/08/2024 16:44, Laurent Pinchart wrote:\n> > > > The Camera::create() function is internal. Hide it from the public API\n> > > > documentation.\n> > > > \n> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > > ---\n> > > \n> > > \n> > > Oops, I missed this before. I think it's broadly fine but we'll have to be pretty vigilant to catch \n> > > any new functions with the same problem.\n> > > \n> > > Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > \n> > I wonder if there is a way to catch accidental API additions in the CI ?\n> \n> We can already compare ABI/API changes between versions with the script\n> at ./utils/abi-compat.sh\n> \n> To integrate that in CI - I would probably want to find a way to 'store'\n> the pre-built ABI files for each tagged/released version so it doesn't\n> get rebuilt for every run. But otherwise - it's just 'another build' so\n> maybe it's fine, especially as most of the time it should be run against\n> the merge base, not necessarily the latest tag release.\n> \n> Then we can have the CI report an 'error' on ABI breakage, and a Warning\n> on ABI additions or such.\n> \n> The ./utils/abi-compat.sh can already compare two commits directly so\n> this should be trivial to add to CI. Just depends if we want to add the\n> computational costs to CI. Maybe it's fine.\n\nI'd like to at least try to cache the data. If it can't be done, then we\ncan discuss alternatives.\n\n> > > >   src/libcamera/camera.cpp | 1 +\n> > > >   1 file changed, 1 insertion(+)\n> > > > \n> > > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > > > index aca466c9ba72..382a68f7bddd 100644\n> > > > --- a/src/libcamera/camera.cpp\n> > > > +++ b/src/libcamera/camera.cpp\n> > > > @@ -821,6 +821,7 @@ void Camera::Private::setState(State state)\n> > > >    */\n> > > >   \n> > > >   /**\n> > > > + * \\internal\n> > > >    * \\brief Create a camera instance\n> > > >    * \\param[in] d Camera private data\n> > > >    * \\param[in] id The ID of the camera device","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 3589BBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Aug 2024 09:21:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2C57B63380;\n\tThu,  8 Aug 2024 11:21:00 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 734856337F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Aug 2024 11:20:58 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9E1048D0;\n\tThu,  8 Aug 2024 11:20:04 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"jn73M1un\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723108804;\n\tbh=orwmamVDly24zyJ5miUkVCc4PsX/dVNdrFgjOQL8ytY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jn73M1un6RZjvMjvlRq7uLNWSiCu1CBfHM6Y4wRfDIk1HcwPzSOuyWVx6zHEUTQ/I\n\t4E9M2VFFsASKtojc/cmunMhbPXCgWaPJC/RWWWyyOAMeMg+brlFFO1r6TUWvanAR58\n\tnG9fi+uLkXkZwA4UBH/hxKHL+WDx6oWyGkcOIRP4=","Date":"Thu, 8 Aug 2024 12:20:33 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Dan Scally <dan.scally@ideasonboard.com>,\n\tNicolas Dufresne <nicolas@ndufresne.ca>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","Message-ID":"<20240808092033.GA21245@pendragon.ideasonboard.com>","References":"<20240807154410.9552-1-laurent.pinchart@ideasonboard.com>\n\t<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>\n\t<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>\n\t<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>\n\t<172310774473.1650394.13557639631397058238@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<172310774473.1650394.13557639631397058238@ping.linuxembedded.co.uk>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30703,"web_url":"https://patchwork.libcamera.org/comment/30703/","msgid":"<172311034338.1684286.5035125941113393918@ping.linuxembedded.co.uk>","date":"2024-08-08T09:45:43","subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2024-08-08 10:20:33)\n> On Thu, Aug 08, 2024 at 10:02:24AM +0100, Kieran Bingham wrote:\n> > Quoting Nicolas Dufresne (2024-08-07 21:47:24)\n> > > Le mercredi 07 août 2024 à 16:51 +0100, Dan Scally a écrit :\n> > > > On 07/08/2024 16:44, Laurent Pinchart wrote:\n> > > > > The Camera::create() function is internal. Hide it from the public API\n> > > > > documentation.\n> > > > > \n> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > > > ---\n> > > > \n> > > > \n> > > > Oops, I missed this before. I think it's broadly fine but we'll have to be pretty vigilant to catch \n> > > > any new functions with the same problem.\n> > > > \n> > > > Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > > \n> > > I wonder if there is a way to catch accidental API additions in the CI ?\n> > \n> > We can already compare ABI/API changes between versions with the script\n> > at ./utils/abi-compat.sh\n> > \n> > To integrate that in CI - I would probably want to find a way to 'store'\n> > the pre-built ABI files for each tagged/released version so it doesn't\n> > get rebuilt for every run. But otherwise - it's just 'another build' so\n> > maybe it's fine, especially as most of the time it should be run against\n> > the merge base, not necessarily the latest tag release.\n> > \n> > Then we can have the CI report an 'error' on ABI breakage, and a Warning\n> > on ABI additions or such.\n> > \n> > The ./utils/abi-compat.sh can already compare two commits directly so\n> > this should be trivial to add to CI. Just depends if we want to add the\n> > computational costs to CI. Maybe it's fine.\n> \n> I'd like to at least try to cache the data. If it can't be done, then we\n> can discuss alternatives.\n\nAgreed, if theres' a way to store a cache in CI that perhaps deletes\nobjects after 'some time without being referenced' that would be\nsufficient. Anything unavailable would always get rebuilt. I have no\nidea what's avaialble in gitlab CI though in this regards.\n\n./utils/abi-compat.sh will already take advantage of that and only\nrebuild objects for commits that do not yet exist so something elegant\ncould be built if there is an existing cache infrastructure to support\nit.\n\n> \n> > > > >   src/libcamera/camera.cpp | 1 +\n> > > > >   1 file changed, 1 insertion(+)\n> > > > > \n> > > > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > > > > index aca466c9ba72..382a68f7bddd 100644\n> > > > > --- a/src/libcamera/camera.cpp\n> > > > > +++ b/src/libcamera/camera.cpp\n> > > > > @@ -821,6 +821,7 @@ void Camera::Private::setState(State state)\n> > > > >    */\n> > > > >   \n> > > > >   /**\n> > > > > + * \\internal\n> > > > >    * \\brief Create a camera instance\n> > > > >    * \\param[in] d Camera private data\n> > > > >    * \\param[in] id The ID of the camera device\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 1073CC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  8 Aug 2024 09:45:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8CE0F63380;\n\tThu,  8 Aug 2024 11:45:47 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 133D46337F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  8 Aug 2024 11:45:46 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 76B068D0;\n\tThu,  8 Aug 2024 11:44:52 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"hLoMzhnh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723110292;\n\tbh=yYT0a2E+sLM9suoNcZOMnkdX8/+PZFvEABFk5JRp+t0=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=hLoMzhnhtbYugyhBhPCPP4lkUF+a/KLg0n0TELqFWulpf0ifx9xKEle76vvX/fb4p\n\tl4GOcUt0M16orQMMHnpXQjEUpZ7PStdSoDN2YZr9Wl3ZUD3z4kpSSeuw3xUUq+HCln\n\tN4xSrS4ZVgS9cQU9bkEpalzh9mTJGfmwaS69E8FY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240808092033.GA21245@pendragon.ideasonboard.com>","References":"<20240807154410.9552-1-laurent.pinchart@ideasonboard.com>\n\t<20240807154410.9552-6-laurent.pinchart@ideasonboard.com>\n\t<1d26151b-26a2-4ae6-8d0d-4659b4baf4f7@ideasonboard.com>\n\t<3b2c6e5f659ee0f4924f7832bdfdd9b0b701e4d4.camel@ndufresne.ca>\n\t<172310774473.1650394.13557639631397058238@ping.linuxembedded.co.uk>\n\t<20240808092033.GA21245@pendragon.ideasonboard.com>","Subject":"Re: [PATCH v6 5/5] libcamera: camera: Hide Camera::create() from the\n\tpublic API","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Dan Scally <dan.scally@ideasonboard.com>,\n\tNicolas Dufresne <nicolas@ndufresne.ca>,\n\tlibcamera-devel@lists.libcamera.org","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Thu, 08 Aug 2024 10:45:43 +0100","Message-ID":"<172311034338.1684286.5035125941113393918@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]