[dpdk-dev] [PATCH v3 0/4] One versionfile to rule them all...

Thomas Monjalon thomas at monjalon.net
Wed Mar 27 01:34:03 CET 2019


15/03/2019 19:20, Bruce Richardson:
> 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:
> 
> * 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.
> 
> * 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
>      manageable 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.
> 
> * 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
> 
> 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.
> 
> ---
> V3: Reworked following review from Thomas Monjalon. Main change is to how
>     the RTE_VER_RELEASE value is computed for non-release candidates.
>     Also added int() conversion to each version value to remove leading
>     zeros
> V2: Updated following review from David Marchand.
> 
> Bruce Richardson (4):
>   build: add single source of DPDK version number
>   build: move meson version handling to config directory
>   build: use version number from config file
>   eal: remove unneeded version logic

Applied, thanks




More information about the dev mailing list