[LEDE-DEV] LEDE version numbers?
Roman Yeryomin
roman at advem.lv
Tue Nov 7 15:46:25 PST 2017
On 2017-11-07 22:17, Matthias Schiffer wrote:
> On 11/07/2017 06:20 PM, Bjørn Mork wrote:
>> Matthias Schiffer <mschiffer at universe-factory.net> writes:
>>
>>> Fixing our revision numbering to include the branch name to make this
>>> more
>>> or less unambiguous is the intent of the two patches I linked. The
>>> commit
>>> ID should still be included in this revision number (e.g.
>>> lede-17.01-r9000-abcdef), as developers could still set the "upstream
>>> branch" to an inofficial branch without changing the branch name,
>>> thus
>>> making the number ambiguous again.
>>
>> FWIW, if we are going to have this discussion again: I still think
>> the
>> output of 'git describe' is a simple, good and precise description of
>> the
>> "current revision".
>>
>> All releases will then be named by their tags. Other revisions are
>> named relative to their most current tag, but including the exact
>> commit
>> hash so that there is no ambiguity even with multiple branches.
>>
>> For example:
>>
>> The current lede-17.01 branch HEAD is:
>>
>> bjorn at canardo:/usr/local/src/lede$ git describe origin/lede-17.01
>> v17.01.4-20-g6b6578feec74
>>
>> The 17.01 release tags are not part of the master branch, so that one
>> is
>> still named relative to 'reboot':
>>
>> bjorn at canardo:/usr/local/src/lede$ git describe origin/master
>> reboot-5279-g2b6facc8d4b3
>>
>> The last commit before the 17.01.0 release was named:
>>
>> bjorn at canardo:/usr/local/src/lede$ git describe v17.01.0^
>> reboot-3205-g59508e309e91
>>
>>
>> As you can see, there is a lot in common with the current scheme for
>> the
>> master branch, where the base tag is 'reboot'. But I believe the
>> scheme
>> is better because it
>> a) works with more than one branch
>> b) scales even when there are a million commits after 'reboot'
>> c) nicely describes the offset from the last release for e.g. the
>> stable branch
>> d) nicely compresses to a simple tag name for any tagged release
>> e) precisely identifies the revision even for branches with local
>> commits
>>
>> I don't see the point of reinventing the wheel by counting commits the
>> way scripts/getver.sh does, blindly assuming a single branch, and
>> special casing release versions by using a separate file to hold the
>> version for those.
>>
>>
>>
>> Bjørn
>>
>
> I pretty much agree. But if we use `git describe`, we should probably
> introduce weekly "ridiculous count" tags in the master like Linux has.
>
> The way getver.sh bases its number and commit ID on the last common
> commit
> with the upstream branch seems like a good idea to me, it's more useful
> than having a local commit ID in the revision number (especially for
> bug
> reports). Combining this with `git describe` would be easy.
>
> While not directy related, I'm also not really a fan of our linear
> history,
> as merge commits for feature branches/patchsets (possibly including
> cover
> letters) can also contain useful information about the development
> history.
>
> Well, just some food for thought, based on my personal preferences. Our
> current versioning scheme and linear history also work well, so unless
> other developers have similar ideas, let's just continue with that for
> now.
>
I fully agree with Bjorn.
I would add `--dirty` to see if the reported version has local
uncommited changes.
Also I would keep one branch for all releases. That is releases are
tagged and merged back from master.
Regards,
Roman
More information about the Lede-dev
mailing list