dash/doc
UdjinM6 f72650d2de
feat: Set client version for non-release binaries and version in guix based on git tags (#5653)
## Issue being fixed or feature implemented
Client version string is inconsistent. Building `v20.0.0-beta.8` tag
locally produces binaries that report `v20.0.0-beta.8` version but
binaries built in guix would report
`v20.0.0rc1-g3e732a952226a20505f907e4fd9b3fdbb14ea5ee` instead. Building
any commit after `v20.0.0-beta.8` locally would result in versions like
`v20.0.0rc1-8c94153d2497` which is close but it's still yet another
format. And both versions with `rc1` in their names are confusing cause
you'd expect them to mention `beta.8` instead maybe (or is it just me?
:D ).

## What was done?
Change it so that the version string would look like this:
on tag: ~`v20.0.0-beta.8-dev` or `v20.0.0-beta.8-gitarc`~
`v20.0.0-beta.8`
post-tag: ~`v20.0.0-beta.8-1-gb837e08164-gitarc`~
`v20.0.0-beta.8-1-gb837e08164`

post-tag format is
`recent tag`-`commits since that tag`-`g+12 chars of commit hash`-`dirty
(optional)` ~-`dev or gitarc`~

~`dev`/`gitarc` suffixes should help avoiding confusion with the release
versions and they also indicate the way non-release binaries were
built.~

Note that release binaries do not use any of this, they still use
`PACKAGE_VERSION` from `configure` like before.

Also, `CLIENT_VERSION_RC` is no longer used in this setup so it was
removed.

Few things aren't clear to me yet:
1. Version bump in `configure.ac` no longer affects the reported version
(unless it's an actual release). Are there any downsides I might be
missing?
2. Which tag should we use on `develop` once we bump version in
configure? `v21.0.0-init`? `v21.0.0-alpha1`?
3. How is it going to behave once `merge master back into develop` kind
of PR is merged? E.g. say `develop` branch is on `v21.0.0-alpha1` tag
and we merge v20.1.0 from `master` back into it. Will this bring
`v20.1.0` release tag into `develop`? Will it become the one that will
be used from that moment? If so we will probably need another tag on
`develop` every time such PR is merged e.g. `v21.0.0-alpha2` (or
whatever the next number is).

Don't think these are blockers but would like to hear thoughts from
others.

## How Has This Been Tested?
Built binaries locally, built them using guix at a specific tag and at
some commit on top of it.

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2024-01-11 21:43:42 -06:00
..
man docs: update man pages (#5672) 2023-11-07 08:04:39 -06:00
release-notes/dash docs: archive v20.0.2 release notes and create v20.0.3 release notes 2023-12-24 12:04:42 -06:00
.gitignore
assets-attribution.md
benchmarking.md Merge #17081: doc: fix Makefile target in benchmarking.md 2022-05-17 01:20:21 -04:00
bips.md Merge #17111: doc: update bips.md with buried BIP9 deployments 2023-12-06 11:40:14 -06:00
bitcoin_logo_doxygen.png
build-freebsd.md Merge bitcoin/bitcoin#24646: doc: remove unneeded documentation on basic package management on FreeBSD 2024-01-01 17:48:18 -06:00
build-netbsd.md merge bitcoin#18340: mention MAKE=gmake workaround when building on a BSD 2023-05-27 23:15:05 +05:30
build-openbsd.md Merge #19903: Update build-openbsd.md with GUI support 2024-01-10 19:22:58 -06:00
build-osx.md merge bitcoin#20527: Do not ignore Homebrew's SQLite on macOS 2024-01-10 12:11:18 -06:00
build-unix.md (partial) Merge #17934: doc: Use CONFIG_SITE variable instead of --prefix option 2023-12-03 20:32:22 -06:00
build-windows.md Merge #21342: doc: Remove outdated comment 2023-08-28 11:24:41 -05:00
dash-conf.md
dependencies.md Merge bitcoin/bitcoin#28561: build: Update qt package up to 5.15.10 2023-12-07 09:14:57 -06:00
descriptors.md Merge #18032: rpc: Output a descriptor in createmultisig and addmultisigaddress 2023-04-06 20:15:47 +03:00
developer-notes.md Merge bitcoin/bitcoin#24808: doc: update RPC argument and field naming guideline in developer notes 2024-01-02 11:17:47 -06:00
dnsseed-policy.md
Doxyfile.in
files.md merge bitcoin#22570: Ignore banlist.dat 2023-09-24 09:50:50 -05:00
fuzzing.md Merge #19173: build: turn on --enable-c++17 by --enable-fuzz 2024-01-09 08:13:05 -06:00
guix.md Merge #20619: guix: Quality of life improvements 2023-03-26 16:50:26 -05:00
i2p.md docs: update tor and i2p docs (#5673) 2023-11-06 09:23:20 -06:00
init.md Merge #16556: Fix systemd service file configuration directory setup 2023-04-06 20:14:58 +03:00
instantsend.md
JSON-RPC-interface.md merge bitcoin#19762: Allow named and positional arguments to be used together 2023-07-28 00:18:27 -05:00
managing-wallets.md Merge bitcoin/bitcoin#22523: Document about wallet backup and restoration 2023-12-11 15:48:44 -06:00
masternode-budget.md
productivity.md Merge #19058: doc: Drop protobuf stuff 2023-04-25 23:41:20 -05:00
psbt.md Merge #16047: doc: analyzepsbt description in doc/psbt.md 2023-02-10 23:34:57 +03:00
README_doxygen.md
README_windows.txt
README.md Merge bitcoin/bitcoin#22739: doc: link to managing-wallets from docs README 2023-12-11 15:48:44 -06:00
reduce-memory.md
reduce-traffic.md merge bitcoin#19191: Extract download permission from noban 2023-06-05 10:11:03 -05:00
release-notes-5342.md docs: add release notes for 5342 (#5568) 2023-09-09 12:26:36 -05:00
release-notes-5493.md docs: Added release notes for #5493 (#5556) 2023-09-07 12:06:28 -05:00
release-notes-5742.md feat(rpc): gettxchainlocks should return mempool=false when tx not in mempool (#5742) 2023-12-24 11:58:14 -06:00
release-notes-5765.md feat(rpc): submit chainlock signature if needed RPC (#5765) 2023-12-18 22:27:19 -06:00
release-notes-5774.md docs: archive v20.0.2 release notes and create v20.0.3 release notes 2023-12-24 12:04:42 -06:00
release-notes-5775.md chore: do not include dash-qt in the docker images (#5775) 2023-12-21 21:59:01 -06:00
release-notes-5776.md feat(rpc): Asset Unlock status by index (#5776) 2023-12-22 14:27:00 -06:00
release-notes-15367.md Merge #15367: feature: Added ability for users to add a startup command 2023-12-06 12:33:15 -06:00
release-notes-16525.md Merge #16525: Dump transaction version as an unsigned integer in RPC/TxToUniv 2023-12-06 12:33:15 -06:00
release-notes-18309.md Merge #18309: zmq: Add support to listen on multiple interfaces 2023-12-06 12:33:15 -06:00
release-notes-18982.md Merge #18982: wallet: Minimal fix to restore conflicted transaction notifications 2024-01-10 12:07:53 -06:00
release-notes-19725.md (Partial) Merge #19725: [RPC] Add connection type to getpeerinfo, improve logs 2024-01-09 08:15:36 -06:00
release-notes-22407.md Merge bitcoin/bitcoin#22407: rpc: Return block time in getblockchaininfo 2023-12-03 20:13:09 -06:00
release-notes-26896.md Merge bitcoin/bitcoin#26896: build: Remove port-forwarding runtime setting options from configure 2023-12-03 20:01:26 -06:00
release-notes-bitcoin-17219.md Merge bitcoin#19115: doc: Add release notes for 17219 2024-01-09 08:13:05 -06:00
release-notes.md docs: archive v20.0.2 release notes and create v20.0.3 release notes 2023-12-24 12:04:42 -06:00
release-process.md feat: Set client version for non-release binaries and version in guix based on git tags (#5653) 2024-01-11 21:43:42 -06:00
REST-interface.md Merge #17285: doc: Bip70 removal follow-up 2022-04-27 21:08:36 +03:00
shared-libraries.md revert dash#1432: Rename consensus source library and API 2022-08-09 14:16:28 +05:30
tor.md docs: update tor and i2p docs (#5673) 2023-11-06 09:23:20 -06:00
translation_process.md
translation_strings_policy.md
zmq.md Merge #18309: zmq: Add support to listen on multiple interfaces 2023-12-06 12:33:15 -06:00

Dash Core

This is the official reference wallet for Dash digital currency and comprises the backbone of the Dash peer-to-peer network. You can download Dash Core or build it yourself using the guides below.

Running

The following are some helpful notes on how to run Dash Core on your native platform.

Unix

Unpack the files into a directory and run:

  • bin/dash-qt (GUI) or
  • bin/dashd (headless)

Windows

Unpack the files into a directory, and then run dash-qt.exe.

macOS

Drag Dash Core to your applications folder, and then run Dash Core.

Need Help?

Building

The following are developer notes on how to build Dash Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.

Development

The Dash Core repo's root README contains relevant information on the development process and automated testing.

Resources

Miscellaneous

License

Distributed under the MIT software license.