Releases will now use the empty string for the prerelease field and
"release.local" for build metadata. This indicates that the code is for
a release, but the release was built from the repo or using go get
without the release build tool.
Development versions will use "pre" for the prerelease and default to
no build metadata.
In particular, this will result in the following cases:
- Development builds performed on the master branch will show as
"version X.Y.Z-pre" (where either X or Y is one version greater than
the current release)
- Builds performed on the release branch without using reproducible
build tools will show as "version X.Y.Z+release.local"
- Builds performed on the release branch using reproducible build tools
will show as "version X.Y.Z+release"
Consequently, this this removes the "dev" marker from the build metadata
on the master branch.
This allows a caller-provided tag to be associated with orphan
transactions. This is useful since the caller can use the tag for
purposes such as keeping track of which peers orphans were first seen
from.
Also, since a parameter is required now anyways, it associates the peer
ID with processed transactions from remote peers.
This continues progress towards being able to split the rpcserver into a
separate internal package.
It moves the rpcserverSyncManager interface to the internal package as
the SyncManager interface so it becomes rpcserver.SyncManager and
updates the code to use the moved interface.
This continues progress towards being able to split the rpcserver into a
separate internal package.
It moves the rpcserverConnManager interface to the internal package as
the ConnManager interface so it becomes rpcserver.ConnManager and
updates the code to use the moved interface.
This is the first of a series of commits that aims to make progress
towards being able to split the rpcserver into a separate internal
package.
It consists of creating the package, moving the rpcserverPeer interface
to the new package as the Peer interface so it becomes rpcserver.Peer
and updating the code to use the moved interface.
This introduces a new internal package named version to house the
version information and updates the various code to use it. This allows
both dcrd and dcrctl to make use of the package so the version
information only needs to be bumped in one place and also ensure that
any link-time overrides to the pre-release and/or build metadata apply
to both.
Also, while here, include the OS and architecture in the version log at
start of day as well as the output from the version CLI flag.