mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
a3a7a22268
8f7b93047581c67f2133cdb8c7845471de66c30f Drop the leading 0 from the version number (Andrew Chow)
Pull request description:
Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number.
The CLIENT_VERSION remains the same format as previous as previously, as the Major version was 0 so it never actually got included in it.
The user agent string formatter is updated to follow this new versioning.
***
Honestly I'm just tired of all of the people asking for "1.0" that maybe this'll shut them up. Skip the whole 1.0 thing and go straight to version 22.0!
Also, this means that the terminology we commonly use lines up with how the variables are named. So major versions are actually bumping the major version number, etc.
ACKs for top commit:
jnewbery:
Code review ACK 8f7b930475
MarcoFalke:
review ACK 8f7b93047581c67f2133cdb8c7845471de66c30f 🎻
Tree-SHA512: b5c3fae14d4c0a9c0ab3b1db7c949ecc0ac3537646306b13d98dd0efc17c489cdd16d43f0a24aaa28e9c4a92ea360500e05480a335b03f9fb308010cdd93a436
74 lines
2.3 KiB
C++
74 lines
2.3 KiB
C++
// Copyright (c) 2012-2014 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <clientversion.h>
|
|
|
|
#include <tinyformat.h>
|
|
|
|
|
|
/**
|
|
* Name of client reported in the 'version' message. Report the same name
|
|
* for both dashd and dash-qt, to make it harder for attackers to
|
|
* target servers or GUI users specifically.
|
|
*/
|
|
const std::string CLIENT_NAME("Dash Core");
|
|
|
|
|
|
#ifdef HAVE_BUILD_INFO
|
|
#include <obj/build.h>
|
|
// The <obj/build.h>, which is generated by the build environment (share/genbuild.sh),
|
|
// could contain only one line of the following:
|
|
// - "#define BUILD_GIT_TAG ...", if the top commit is tagged
|
|
// - "#define BUILD_GIT_COMMIT ...", if the top commit is not tagged
|
|
// - "// No build information available", if proper git information is not available
|
|
#endif
|
|
|
|
//! git will put "#define GIT_COMMIT_ID ..." on the next line inside archives. $Format:%n#define GIT_COMMIT_ID "%H"$
|
|
|
|
#ifdef BUILD_GIT_TAG
|
|
#define BUILD_DESC BUILD_GIT_TAG
|
|
#define BUILD_SUFFIX ""
|
|
#else
|
|
#define BUILD_DESC "v" STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_BUILD)
|
|
#ifdef BUILD_GIT_COMMIT
|
|
#define BUILD_SUFFIX "-" BUILD_GIT_COMMIT
|
|
#elif defined(GIT_COMMIT_ID)
|
|
#define BUILD_SUFFIX "-g" GIT_COMMIT_ID
|
|
#else
|
|
#define BUILD_SUFFIX "-unk"
|
|
#endif
|
|
#endif
|
|
|
|
const std::string CLIENT_BUILD(BUILD_DESC BUILD_SUFFIX);
|
|
|
|
std::string FormatVersion(int nVersion)
|
|
{
|
|
return strprintf("%d.%d.%d", nVersion / 10000, (nVersion / 100) % 100, nVersion % 100);
|
|
}
|
|
|
|
std::string FormatFullVersion()
|
|
{
|
|
return CLIENT_BUILD;
|
|
}
|
|
|
|
/**
|
|
* Format the subversion field according to BIP 14 spec (https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki)
|
|
*/
|
|
std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector<std::string>& comments)
|
|
{
|
|
std::ostringstream ss;
|
|
ss << "/";
|
|
ss << name << ":" << FormatVersion(nClientVersion);
|
|
if (!comments.empty())
|
|
{
|
|
std::vector<std::string>::const_iterator it(comments.begin());
|
|
ss << "(" << *it;
|
|
for(++it; it != comments.end(); ++it)
|
|
ss << "; " << *it;
|
|
ss << ")";
|
|
}
|
|
ss << "/";
|
|
return ss.str();
|
|
}
|