Catch2 version string could be better
- Dominant language
- C++
- Stars
- 21.5k
- Forks
- 3.5k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 2
Description
**Description**
It would be better if there was a more informative version string output.
**Additional context**
The current implementation does not seem fitting for git.
I would like something like this: `3.0.1 at devel commit: 3a18a688a07e3f7217d7a1b0ae45a324edfdef52`
I am not creating pull request because I don't know the reason for the current implementation.
I am happy to give this as a pull request.
**Sample implementation**
`catch_version.cpp`
```c++
Version::Version
( unsigned int _majorVersion,
unsigned int _minorVersion,
unsigned int _patchNumber,
char const * const _branchName,
char const * const _buildNumber )
: majorVersion( _majorVersion ),
minorVersion( _minorVersion ),
patchNumber( _patchNumber ),
branchName( _branchName ),
buildNumber( _buildNumber )
{}
std::ostream& operator << ( std::ostream& os, Version const& version ) {
os << version.majorVersion << '.'
<< version.minorVersion << '.'
<< version.patchNumber;
// branchName is never null -> 0th char is \0 if it is empty
if (version.branchName[0]) {
os << " at " << version.branchName
<< " commit: " << version.buildNumber;
}
return os;
}
Version const& libraryVersion() {
static Version version( 3, 0, 1, "devel", "3a18a688a07e3f7217d7a1b0ae45a324edfdef52" );
return version;
}
```
`catch_version.hpp`
```c++
// Versioning information
struct Version {
Version( Version const& ) = delete;
Version& operator=( Version const& ) = delete;
Version( unsigned int _majorVersion,
unsigned int _minorVersion,
unsigned int _patchNumber,
char const * const _branchName,
char const * const _buildNumber );
unsigned int const majorVersion;
unsigned int const minorVersion;
unsigned int const patchNumber;
// buildNumber is only used if branchName is not null
char const * const branchName;
char const* const buildNumber;
friend std::ostream& operator << ( std::ostream& os, Version const& version );
};
Version const& libraryVersion();
```
Contributor guide
Assessment
This issue has not been assessed yet.