From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by dpdk.org (Postfix) with ESMTP id 2E03C4C99 for ; Thu, 7 Mar 2019 13:09:47 +0100 (CET) Received: by mail-wr1-f68.google.com with SMTP id w17so17128818wrn.12 for ; Thu, 07 Mar 2019 04:09:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=ncYpFF8fQyvWipJC/OZzNTETojaWScsgvP9zAAYDmQ4=; b=Kx5JjEyt1E/8pcwaFWzoKbHBLGWVIUrG2kDQ9Xd06gptKxEw7FKfG/6IRdIz50Fq/t dia3uo5gwR5eZGLUG7J9tUdk6C9ua8srwEpnlq2EqF9yX+PQt35xMcFPk6D6xENVTrOS NwvMmBGTqM7WfodRlVrwAI0iJ2pxiS/WaEhainKettFGIALsiqyN5h/qAPDuKLXXQS33 2fU1BmPDvwD/l67sjNSyigDR3mD1UoroM9A34UzAQOau8BMde+oK9m4h389YjJ7zIvFO h4OD8lK9b1hni4kH6NLJBtOEGwsP/pzFKJxBmwAUNF+dfmQe0CyRfR6KOFh3PoNj+n1C +1Iw== X-Gm-Message-State: APjAAAVFNT30LWhAAAkGHq0P6of/QEFJ0qnJ7RrXObUY1Up3ngNHaT4b Ea0xhXUNMxrabbMg20rqbbU= X-Google-Smtp-Source: APXvYqxLhzSfiK8pbhXyTtthtDfRgm/iV0ifOBBsqkkDCgDk/+3i3eF9P7L/ta+isp+iX3ezF7G4xw== X-Received: by 2002:a5d:6846:: with SMTP id o6mr6475389wrw.160.1551960586533; Thu, 07 Mar 2019 04:09:46 -0800 (PST) Received: from localhost ([2a01:4b00:f419:6f00:b00c:66c8:99df:336]) by smtp.gmail.com with ESMTPSA id a131sm6295009wmh.34.2019.03.07.04.09.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Mar 2019 04:09:45 -0800 (PST) Message-ID: From: Luca Boccassi To: Bruce Richardson , dev@dpdk.org Date: Thu, 07 Mar 2019 12:09:44 +0000 In-Reply-To: <20190307115448.54041-1-bruce.richardson@intel.com> References: <20190307115448.54041-1-bruce.richardson@intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.30.5-1 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC PATCH 0/4] One versionfile to rule them all... X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Mar 2019 12:09:47 -0000 On Thu, 2019-03-07 at 11:54 +0000, Bruce Richardson wrote: > Right now with DPDK we have two sources of version information - the > rte_version.h header file containing macros for C use, and the > project > version number in the project definition in meson.build. This is not > optimal, so this patchset aims to provide a single source for the > DPDK > version. The options considered are: >=20 > * Keep version info in rte_version.h only. The two reasons this was > not > chosen were: > 1) parsing the version number from the header is awkward, as seen > in the > rte.sdkconfig.mk file, and a script to do so would be needed to > integrate that into the meson build project definition. > 2) rte_version.h is not in an obvious location inside the project > when > a user clones from git. It's hidden away in the > "lib/librte_eal/common/include" folder. Ideally the version > number > should be evident at the top level of the DPDK tree. >=20 > * Keep version info in meson.build file only. This seemed a better > option > than keeping the info in rte_version.h, but it still had > disadvantages: > 1) For make, using grep on meson.build to extract the version > seemed a > bit awkward, though doable. Splitting the version was tricky > too, but > managable with a small amount of scripting. > 2) There was no easy way to have users access the version number > when > "make showversion" was deprecated with the make build system. >=20 > * Store the version number in a new version file at the root level of > the > repo. > * This did have the advantage of being easily discoverable on clone > * Still had the disadvantage of needing some parsing to generate > the > defines from rte_version.h >=20 > Since the last option seemed best, that is what is implemented in > this set. > The file DPDK_VERSION is added to store the version number, and make > and > meson both use that as their source of version info. For C code, the > rte_version.h header remains, except that the basic definitions of > the > release YEAR, MONTH, MINOR etc. are moved to be automatically > generated as > part of rte_config.h. For make builds, this is done via using the > preprocessor to insert the values when it generates the config. For > meson > builds, this is done by just adding the values to the dpdk_conf > configuration object. >=20 > Bruce Richardson (4): > build: add single source of DPDK version number > build: use version number from config file > build: move meson version handling to config directory > eal: remove unneeded version logic >=20 > DPDK_VERSION | 1 + > config/common_base | 14 ++++++++ > config/meson.build | 26 +++++++++++++++ > config/rte_config.h | 5 +++ > lib/librte_eal/common/include/rte_version.h | 36 +---------------- > ---- > meson.build | 14 +------- > mk/rte.sdkconfig.mk | 18 +++-------- > 7 files changed, 52 insertions(+), 62 deletions(-) > create mode 100644 DPDK_VERSION Series-acked-by: Luca Boccassi This is a good change, thanks for that. Too bad there's not yet a meson --project-version option - it's been discussed but not implemented: https://github.com/mesonbuild/meson/issues/3535 --=20 Kind regards, Luca Boccassi