From patchwork Fri Dec 14 13:32:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 52 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B371260B0C for ; Fri, 14 Dec 2018 14:31:34 +0100 (CET) Received: from avalon.bb.dnainternet.fi (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 46F7D5A9 for ; Fri, 14 Dec 2018 14:31:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1544794293; bh=cP+2C8H9AZ/zmwhGKlnuoAHHUlSa5dueA/5Y2hm6PtI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=o7dgMff9S3QOrKa/APPs5xKOI4kCekSptWA2oWGgpUlRpHFGMVGAdQA18uBM5Nas7 vdPq3Ykx7nXgUYvnQrEL+83pSLVxaYtz6LMXeIoq9clVJQXKnuBk4kvdlKLd755Jsj h6S5GAG/+FG9VRQSCa14xrZq1P8g+eIH0b0y07Rs= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 14 Dec 2018 15:32:16 +0200 Message-Id: <20181214133216.18375-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214133216.18375-1-laurent.pinchart@ideasonboard.com> References: <20181214133216.18375-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 2/2] Documentation: Document the style check script X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 13:31:34 -0000 From: Jacopo Mondi Add a section to the coding style documentation to explain usage of the checkstyle.py script. Signed-off-by: Jacopo Mondi Signed-off-by: Laurent Pinchart --- Documentation/coding-style.rst | 113 +++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/Documentation/coding-style.rst b/Documentation/coding-style.rst index 1b67abed3a53..55e195cfc368 100644 --- a/Documentation/coding-style.rst +++ b/Documentation/coding-style.rst @@ -79,3 +79,116 @@ C++-11-specific features: * General-purpose smart pointers (std::unique_ptr), deprecating std::auto_ptr. Smart pointers, as well as shared pointers and weak pointers, shall not be overused. + + +Tools +----- + +The 'astyle' code formatting tool can be used to reformat source files with the +libcamera coding style, defined by the following arguments. + +:: + + --style=linux + --indent=force-tab=8 + --attach-namespaces + --attach-extern-c + --pad-oper + --align-pointer=name + --align-reference=name + --max-code-length=120 + +As astyle is a code formatter, it operates on full files outputs reformatted +source code. While it can be used to reformat code before sending patches, it +may generate unrelated changes. To avoid this, libcamera provides a +'checkstyle.py' script wrapping astyle to only retain related changes. This +should be used to validate modifications before submitting them for review. + +The script operates on one or multiple git commits specified on the command +line. It does not modify the git tree, the index or the working directory and +is thus safe to run at any point. + +Commits are specified using the same revision range syntax as 'git log'. The +most usual use cases are to specify a single commit by sha1, branch name or tag +name, or a commit range with the .. syntax. When no arguments are +given, the topmost commit of the current branch is selected. + +:: + + $ ./utils/checkstyle.py cc7d204b2c51 + ---------------------------------------------------------------------------------- + cc7d204b2c51853f7d963d144f5944e209e7ea29 libcamera: Use the logger instead of cout + ---------------------------------------------------------------------------------- + No style issue detected + +When operating on a range of commits, style checks are performed on each commit +from oldest to newest. + +:: + + $ ../utils/checkstyle.py 3b56ddaa96fb~3..3b56ddaa96fb + ---------------------------------------------------------------------------------- + b4351e1a6b83a9cfbfc331af3753602a02dbe062 libcamera: log: Fix Doxygen documentation + ---------------------------------------------------------------------------------- + No style issue detected + + -------------------------------------------------------------------------------------- + 6ab3ff4501fcfa24db40fcccbce35bdded7cd4bc libcamera: log: Document the LogMessage class + -------------------------------------------------------------------------------------- + No style issue detected + + --------------------------------------------------------------------------------- + 3b56ddaa96fbccf4eada05d378ddaa1cb6209b57 build: Add 'std=c++11' cpp compiler flag + --------------------------------------------------------------------------------- + Commit doesn't touch source files, skipping + +Commits that do not touch any .c, .cpp or .h files are skipped. + +:: + + $ ./utils/checkstyle.py edbd2059d8a4 + ---------------------------------------------------------------------- + edbd2059d8a4bd759302ada4368fa4055638fd7f libcamera: Add initial logger + ---------------------------------------------------------------------- + --- src/libcamera/include/log.h + +++ src/libcamera/include/log.h + @@ -21,11 +21,14 @@ + { + public: + LogMessage(const char *fileName, unsigned int line, + - LogSeverity severity); + - LogMessage(const LogMessage&) = delete; + + LogSeverity severity); + + LogMessage(const LogMessage &) = delete; + ~LogMessage(); + + - std::ostream& stream() { return msgStream; } + + std::ostream &stream() + + { + + return msgStream; + + } + + private: + std::ostringstream msgStream; + + --- src/libcamera/log.cpp + +++ src/libcamera/log.cpp + @@ -42,7 +42,7 @@ + + static const char *log_severity_name(LogSeverity severity) + { + - static const char * const names[] = { + + static const char *const names[] = { + "INFO", + "WARN", + " ERR", + + --- + 2 potential style issues detected, please review + +When potential style issues are detected, they are displayed in the form of a +diff that fixes the issues, on top of the corresponding commit. As the script is +in early development false positive are expected. The flagged issues should be +reviewed, but the diff doesn't need to be applied blindly. + +Happy hacking, libcamera awaits your patches!