<p></p>
<blockquote>
<p dir="auto">As for directly including the version files, I think something less ugly can be worked out</p>
</blockquote>
<p dir="auto">I was too harsh. The earlier suggestion was really no worse than the version parsing you'll find in Lexilla's <a href="https://github.com/ScintillaOrg/lexilla/blob/a35a59845e793d9d37d249cf097e71fecc5f4bcd/scripts/LexillaGen.py#L106-L109">development scripts</a>:</p>
<div class="highlight highlight-source-python"><pre>    <span class="pl-c"># Discover version information</span>
    <span class="pl-s1">version</span> <span class="pl-c1">=</span> (<span class="pl-s1">lexillaDir</span> <span class="pl-c1">/</span> <span class="pl-s">"version.txt"</span>).<span class="pl-en">read_text</span>().<span class="pl-en">strip</span>()
    <span class="pl-s1">versionDotted</span> <span class="pl-c1">=</span> <span class="pl-s1">version</span>[<span class="pl-c1">0</span>] <span class="pl-c1">+</span> <span class="pl-s">'.'</span> <span class="pl-c1">+</span> <span class="pl-s1">version</span>[<span class="pl-c1">1</span>] <span class="pl-c1">+</span> <span class="pl-s">'.'</span> <span class="pl-c1">+</span> <span class="pl-s1">version</span>[<span class="pl-c1">2</span>]
    <span class="pl-s1">versionCommad</span> <span class="pl-c1">=</span> <span class="pl-s1">versionDotted</span>.<span class="pl-en">replace</span>(<span class="pl-s">"."</span>, <span class="pl-s">", "</span>) <span class="pl-c1">+</span> <span class="pl-s">', 0'</span></pre></div>
<p dir="auto">or <a href="https://sourceforge.net/p/scintilla/code/ci/da6ead58cc1bdb16a4ee063497c3d25e10b5e586/tree/scripts/ScintillaData.py" rel="nofollow">Scintilla's</a>:</p>
<div class="highlight highlight-source-python"><pre><span class="pl-k">class</span> <span class="pl-v">ScintillaData</span>:
    <span class="pl-k">def</span> <span class="pl-en">__init__</span>(<span class="pl-s1">self</span>, <span class="pl-s1">scintillaRoot</span>):
        <span class="pl-c"># Discover version information</span>
        <span class="pl-s1">self</span>.<span class="pl-s1">version</span> <span class="pl-c1">=</span> (<span class="pl-s1">scintillaRoot</span> <span class="pl-c1">/</span> <span class="pl-s">"version.txt"</span>).<span class="pl-en">read_text</span>().<span class="pl-en">strip</span>()
        <span class="pl-s1">self</span>.<span class="pl-s1">versionDotted</span> <span class="pl-c1">=</span> <span class="pl-s1">self</span>.<span class="pl-s1">version</span>[<span class="pl-c1">0</span>] <span class="pl-c1">+</span> <span class="pl-s">'.'</span> <span class="pl-c1">+</span> <span class="pl-s1">self</span>.<span class="pl-s1">version</span>[<span class="pl-c1">1</span>] <span class="pl-c1">+</span> <span class="pl-s">'.'</span> <span class="pl-c1">+</span> \
            <span class="pl-s1">self</span>.<span class="pl-s1">version</span>[<span class="pl-c1">2</span>]
        <span class="pl-s1">self</span>.<span class="pl-s1">versionCommad</span> <span class="pl-c1">=</span> <span class="pl-s1">self</span>.<span class="pl-s1">versionDotted</span>.<span class="pl-en">replace</span>(<span class="pl-s">"."</span>, <span class="pl-s">", "</span>) <span class="pl-c1">+</span> <span class="pl-s">', 0'</span></pre></div>
<p dir="auto">But then, how does SciTE manage all those version numbers in the About dialog?</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/59004801/150643789-97dd70d0-e816-4384-b3cc-928fef0af7a8.png"><img src="https://user-images.githubusercontent.com/59004801/150643789-97dd70d0-e816-4384-b3cc-928fef0af7a8.png" alt="scite_516_show_versions" style="max-width: 100%;"></a></p>
<p dir="auto"><a href="https://sourceforge.net/p/scintilla/scite/ci/93067c476e2c34e8620ad73cdfe842cfcc49cafe/tree/src/SciTE.h" rel="nofollow">Ah!</a></p>
<div class="highlight highlight-source-c++"><pre>#<span class="pl-k">ifndef</span> SCITE_H
#<span class="pl-k">define</span> <span class="pl-en">SCITE_H</span>

<span class="pl-c"><span class="pl-c">//</span> Version numbers and dates</span>
#<span class="pl-k">define</span> <span class="pl-en">VERSION_SCITE</span> <span class="pl-s"><span class="pl-pds">"</span>5.1.6<span class="pl-pds">"</span></span>
#<span class="pl-k">define</span> <span class="pl-en">VERSION_WORDS</span> <span class="pl-c1">5</span>, <span class="pl-c1">1</span>, <span class="pl-c1">6</span>, <span class="pl-c1">0</span>
#<span class="pl-k">define</span> <span class="pl-en">COPYRIGHT_DATES</span> <span class="pl-s"><span class="pl-pds">"</span>December 1998-December 2021<span class="pl-pds">"</span></span>
#<span class="pl-k">define</span> <span class="pl-en">COPYRIGHT_YEARS</span> <span class="pl-s"><span class="pl-pds">"</span>1998-2021<span class="pl-pds">"</span></span>
#<span class="pl-k">define</span> <span class="pl-en">VERSION_SCINTILLA</span> <span class="pl-s"><span class="pl-pds">"</span>5.1.5<span class="pl-pds">"</span></span>
#<span class="pl-k">define</span> <span class="pl-en">VERSION_LEXILLA</span> <span class="pl-s"><span class="pl-pds">"</span>5.1.4<span class="pl-pds">"</span></span></pre></div>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/geany/geany/discussions/3108#discussioncomment-2023230">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ7YV26H4BZLZEXGNQLUXLCD5ANCNFSM5MPS4YVA">unsubscribe</a>.<br />Triage notifications on the go with GitHub Mobile for <a href="https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675">iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub">Android</a>.
<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAIOWJY5LBVGVU5UQMEPCH3UXLCD5A5CNFSM5MPS4YVKYY3PNVWWK3TUL52HS4DFWFCGS43DOVZXG2LPNZBW63LNMVXHJKTDN5WW2ZLOORPWSZGOAAPN6PQ.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><geany/geany/repo-discussions/3108/comments/2023230</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/discussions/3108#discussioncomment-2023230",
"url": "https://github.com/geany/geany/discussions/3108#discussioncomment-2023230",
"name": "View Discussion"
},
"description": "View this Discussion on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>