Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/guix-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}
path: dash
fetch-depth: 0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
AC_PREREQ([2.69])
dnl Don't forget to push a corresponding tag when updating any of _CLIENT_VERSION_* numbers
define(_CLIENT_VERSION_MAJOR, 20)
define(_CLIENT_VERSION_MINOR, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)

@PastaPastaPasta PastaPastaPasta Nov 17, 2023

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dropping the RC here? Ah, rc is purely based on tag now

define(_CLIENT_VERSION_IS_RELEASE, false)
define(_COPYRIGHT_YEAR, 2023)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Dash Core]])
AC_INIT([Dash Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/dashpay/dash/issues],[dashcore],[https://dash.org/])
AC_INIT([Dash Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD),[https://github.com/dashpay/dash/issues],[dashcore],[https://dash.org/])
AC_CONFIG_SRCDIR([src/validation.cpp])
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
AC_CONFIG_AUX_DIR([build-aux])
Expand Down
7 changes: 4 additions & 3 deletions contrib/containers/guix/scripts/guix-check
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@ if [[ ! -d "$WORKSPACE_PATH" ]]; then
fi

cd "$WORKSPACE_PATH"
COMMIT_ID="$(git rev-parse --short=12 HEAD)"

source "contrib/guix/libexec/prelude.bash"

printf "\nBinaries:\n\n"
( \
SRC_PATH_PREFIX="guix-build-${COMMIT_ID}/distsrc-" && \
SRC_PATH_PREFIX="${VERSION_BASE}/distsrc-" && \
sha256sum ${SRC_PATH_PREFIX}*/src/dash{d,-cli,-tx,-wallet}{,.exe} && \
sha256sum ${SRC_PATH_PREFIX}*/src/qt/dash-qt{,.exe} && \
sha256sum ${SRC_PATH_PREFIX}*/src/test/test_dash{,.exe} \
) | sort -k 2

printf "\nArchives:\n\n"
find "guix-build-${COMMIT_ID}/output" -type f | grep -v SHA256 | xargs sha256sum | sort -k 2
find "${OUTDIR_BASE}" -type f | grep -v SHA256 | xargs sha256sum | sort -k 2
8 changes: 2 additions & 6 deletions contrib/guix/libexec/codesign.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,8 @@ ACTUAL_OUTDIR="${OUTDIR}"
OUTDIR="${DISTSRC}/output"

git_head_version() {
local recent_tag
if recent_tag="$(git -C "$1" describe --exact-match HEAD 2> /dev/null)"; then
echo "${recent_tag#v}"
else
git -C "$1" rev-parse --short=12 HEAD
fi
recent_tag="$(git -C "$1" describe --abbrev=12 --dirty 2> /dev/null)"
echo "${recent_tag#v}"
}

CODESIGNATURE_GIT_ARCHIVE="${DIST_ARCHIVE_BASE}/${DISTNAME}-codesignatures-$(git_head_version "$DETACHED_SIGS_REPO").tar.gz"
Expand Down
8 changes: 2 additions & 6 deletions contrib/shell/git-utils.bash
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ git_root() {
}

git_head_version() {
local recent_tag
if recent_tag="$(git describe --exact-match HEAD 2> /dev/null)"; then
echo "${recent_tag#v}"
else
git rev-parse --short=12 HEAD
fi
recent_tag="$(git describe --abbrev=12 --dirty 2> /dev/null)"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is git describe --abbrev=12 produce same output on different platform/copies of repo/etc?

This string should be reproducable at any system/git status because it is included in binaries.
If it is not true, this issue will revive with new face: #5222

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be identical (assuming 12 digits is enough)

--abbrev=
Instead of using the default number of hexadecimal digits (which will vary according to the number of objects in the repository with a default of 7) of the abbreviated object name, use digits, or as many digits as needed to form a unique object name. An of 0 will suppress long format, only showing the closest tag.

https://www.git-scm.com/docs/git-describe#Documentation/git-describe.txt---abbrevltngt

echo "${recent_tag#v}"
}
3 changes: 1 addition & 2 deletions doc/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ Release Process

* [ ] Update translations, see [translation_process.md](https://github.com/dashpay/dash/blob/master/doc/translation_process.md#synchronising-translations).
* [ ] Update manpages, see [gen-manpages.sh](https://github.com/dashpay/dash/blob/master/contrib/devtools/README.md#gen-manpagessh).
* [ ] Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`)

Before every minor and major release:

* [ ] Update [bips.md](bips.md) to account for changes since the last release.
* [ ] Update DIPs with any changes introduced by this release (see [this pull request](https://github.com/dashpay/dips/pull/142) for an example)
* [ ] Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_IS_RELEASE` to `true`) (don't forget to set `CLIENT_VERSION_RC` to `0`)
* [ ] Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_IS_RELEASE` to `true`)
* [ ] Write release notes (see below)
* [ ] Update `src/chainparams.cpp` `nMinimumChainWork` with information from the `getblockchaininfo` rpc.
* [ ] Update `src/chainparams.cpp` `defaultAssumeValid` with information from the `getblockhash` rpc.
Expand Down
20 changes: 5 additions & 15 deletions share/genbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,17 @@ else
exit 1
fi

GIT_TAG=""
GIT_COMMIT=""
GIT_DESCRIPTION=""
if [ "${BITCOIN_GENBUILD_NO_GIT}" != "1" ] && [ -e "$(command -v git)" ] && [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
# clean 'dirty' status of touched files that haven't been modified
git diff >/dev/null 2>/dev/null

# if latest commit is tagged and not dirty, then override using the tag name
RAWDESC=$(git describe --abbrev=0 2>/dev/null)
if [ "$(git rev-parse HEAD)" = "$(git rev-list -1 $RAWDESC 2>/dev/null)" ]; then
git diff-index --quiet HEAD -- && GIT_TAG=$RAWDESC
fi

# otherwise generate suffix from git, i.e. string like "59887e8-dirty"
GIT_COMMIT=$(git rev-parse --short=12 HEAD)
git diff-index --quiet HEAD -- || GIT_COMMIT="$GIT_COMMIT-dirty"
# override using the tag name from git, i.e. string like "v20.0.0-beta.8-5-g99786590df6f-dirty"
GIT_DESCRIPTION=$(git describe --abbrev=12 --dirty 2>/dev/null)
fi

if [ -n "$GIT_TAG" ]; then
NEWINFO="#define BUILD_GIT_TAG \"$GIT_TAG\""
elif [ -n "$GIT_COMMIT" ]; then
NEWINFO="#define BUILD_GIT_COMMIT \"$GIT_COMMIT\""
if [ -n "$GIT_DESCRIPTION" ]; then
NEWINFO="#define BUILD_GIT_DESCRIPTION \"$GIT_DESCRIPTION\""
else
NEWINFO="// No build information available"
fi
Expand Down
23 changes: 12 additions & 11 deletions src/clientversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,26 @@ const std::string CLIENT_NAME("Dash Core");
#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
// - "#define BUILD_GIT_DESCRIPTION ...", 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"$
//! git will put "#define ARCHIVE_GIT_DESCRIPTION ..." on the next line inside archives. $Format:%n#define ARCHIVE_GIT_DESCRIPTION "%(describe:abbrev=12)"$

#ifdef BUILD_GIT_TAG
#define BUILD_DESC BUILD_GIT_TAG
#if CLIENT_VERSION_IS_RELEASE
#define BUILD_DESC "v" PACKAGE_VERSION
#define BUILD_SUFFIX ""
#else
#define BUILD_DESC "v" PACKAGE_VERSION
#if CLIENT_VERSION_IS_RELEASE
#if defined(BUILD_GIT_DESCRIPTION)
// build in a cloned folder
#define BUILD_DESC BUILD_GIT_DESCRIPTION
#define BUILD_SUFFIX ""
#elif defined(ARCHIVE_GIT_DESCRIPTION)
// build in a folder from git archive
#define BUILD_DESC ARCHIVE_GIT_DESCRIPTION
#define BUILD_SUFFIX ""
#elif defined(BUILD_GIT_COMMIT)
#define BUILD_SUFFIX "-" BUILD_GIT_COMMIT
#elif defined(GIT_COMMIT_ID)
#define BUILD_SUFFIX "-g" GIT_COMMIT_ID
#else
#define BUILD_DESC "v" PACKAGE_VERSION
#define BUILD_SUFFIX "-unk"
#endif
#endif
Expand Down