Skip to content

Commit 4949369

Browse files
committed
Merge branch 'development' into testnet
2 parents 3778d5e + e0c3d8e commit 4949369

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1858
-145
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ src/test-suite.log
1111
src/test/test_gridcoin.log
1212
src/test/test_gridcoin.trs
1313

14+
build
15+
build_macos
16+
build_win64
17+
build_linux_depends
18+
1419
src/build.h
1520
src/obj/build.h
1621
src/qt/forms/*.h
@@ -62,7 +67,6 @@ qrc_*.cpp
6267
*.pro.user.*
6368
#mac specific
6469
.DS_Store
65-
build
6670
background.tiff
6771
background.tiff.png
6872
background.tiff@2x.png

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ HunterGate(
2323
# =====================
2424

2525
project("Gridcoin"
26-
VERSION 5.4.9.11
26+
VERSION 5.4.9.12
2727
DESCRIPTION "POS-based cryptocurrency that rewards BOINC computation"
2828
HOMEPAGE_URL "https://gridcoin.us"
2929
LANGUAGES C CXX

README.md

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,29 @@ What is Gridcoin?
44
Gridcoin is a POS-based cryptocurrency that rewards users for participating on the [BOINC](https://boinc.berkeley.edu/) network.
55
Gridcoin uses peer-to-peer technology to operate with no central authority - managing transactions, issuing money and contributing to scientific research are carried out collectively by the network.
66

7-
For Gridcoin binaries, as well as more information, see https://gridcoin.us/.
7+
For Gridcoin binaries, see the [GitHub releases page](https://github.com/gridcoin-community/Gridcoin-Research/releases). For more information, see https://gridcoin.us/.
88

99
Building Gridcoin
1010
=================
1111

12-
These dependencies are required:
12+
The easiest way to build Gridcoin is with the included build script, which automatically installs dependencies for a wide range of Linux distributions and macOS:
1313

14-
Library | Purpose | Description
15-
-------------|------------------|----------------------------------------------------------------
16-
cmake | Build | Build system
17-
pkgconf | Build | Learn library inter-dependencies
18-
openssl | Crypto | Random Number Generation, Elliptic Curve Cryptography
19-
libboost | Utility | Library for threading, data structures, etc
20-
libcurl | Utility | URL client library
21-
libzip | Utility | Library for manipulating zip archives
22-
miniupnpc | UPnP Support | Firewall-jumping support (optional)
23-
qt5 | GUI | GUI toolkit (optional)
24-
libqrencode | QR codes in GUI | Library for encoding data in a QR Code symbol (optional, depends on GUI)
14+
```bash
15+
./build_targets.sh TARGET=native
16+
```
2517

26-
To build, run:
18+
The script supports several targets and options:
2719

28-
`mkdir -p build && cd build && cmake .. && cmake --build .`
20+
| Target | Description |
21+
|--------|-------------|
22+
| `native` | Dynamic linking against system libraries (development, packaging) |
23+
| `depends` | Static linking for portable release binaries |
24+
| `win64` | Windows cross-compilation from Linux |
25+
| `macos` | macOS build (from macOS host) |
2926

30-
For more detailed and platform-specific instructions, see [the doc folder.](doc/)
27+
Run `./build_targets.sh --help` for all options, including Qt5/Qt6 selection, ccache, build type, and more.
28+
29+
For manual builds and platform-specific instructions, see [doc/build.md](doc/build.md).
3130

3231
Development process
3332
===================
@@ -37,7 +36,7 @@ development branch when they think their feature or bug fix is ready.
3736

3837
The patch will be accepted if there is broad consensus that it is a
3938
good thing. Developers should expect to rework and resubmit patches
40-
if they don't match the project's coding conventions (see [coding.txt](doc/coding.txt))
39+
if they don't match the project's coding conventions (see [developer-notes.md](doc/developer-notes.md))
4140
or are controversial.
4241

4342
The master branch is regularly built and tested, but is not guaranteed
@@ -50,32 +49,38 @@ worked on by several people.
5049
Branching strategy
5150
==================
5251

53-
Gridcoin uses four branches to ensure stability without slowing down
54-
the pace of the daily development activities - *development*, *staging*, *master*
55-
and *hotfix*.
52+
Gridcoin uses five branches to ensure stability without slowing down
53+
the pace of the daily development activities - *development*, *testnet*,
54+
*staging*, *master* and *hotfix*.
5655

5756
The *development* branch is used for day-to-day activities. It is the most
5857
active branch and is where pull requests go by default. This branch may contain
5958
code which is not yet stable or ready for production, so it should only be
6059
executed on testnet to avoid disrupting fellow Gridcoiners.
6160

62-
When a decision has been made that the development branch should be moving
63-
towards a final release it is merged to *staging* where no new development
64-
takes place. This branch is purely to stabilize the code base and squash out
65-
bugs rained down from development. This is Gridcoin's beta testing phase.
61+
When development is ready for broader testing, it is merged to *testnet* where
62+
tagged testnet pre-releases are published. This branch is used extensively for
63+
integration testing of consensus changes, hard fork activation, and new features
64+
on the Gridcoin test network before any production release.
65+
66+
When a testnet release has been validated and a decision has been made to move
67+
towards a production release, it is merged to *staging* as a final review step
68+
before release.
6669

67-
Once the staging branch is stable and runs smoothly, it is merged to *master*, a tag is created,
70+
Once staging is confirmed ready, it is merged to *master*, a tag is created,
6871
and a release is made available to the public.
6972

7073
When a bug is found in a production version and an update needs to be
7174
released quickly, the changes go into a *hotfix* branch for testing before
7275
being merged to *master* for release. This allows for production updates without having to merge straight to
7376
master if the staging branch is busy.
7477

78+
The typical release path is: *development**testnet**staging**master*.
79+
7580
Community
7681
=========
7782

78-
For general questions, please visit our Discord server at https://discord.gg/UMWUnMjN4x, or Libera Chat in #gridcoin-help. We also have a Slack channel at [teamgridcoin.slack.com](https://join.slack.com/t/teamgridcoin/shared_invite/zt-3s81akww-GHt~_KvtxfhxUgi3yW3~Bg).
83+
For general questions, please visit our [Discord server](https://discord.gg/UMWUnMjN4x), [Matrix room](https://matrix.to/#/#gridcoin:matrix.org), or Libera Chat in #gridcoin-help.
7984

8085
License
8186
-------
@@ -86,6 +91,8 @@ information.
8691
Build Status
8792
============
8893

89-
| Development | Staging | Master |
90-
|----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
91-
| ![Build Status](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/ci.yml/badge.svg?branch=development) | ![Build Status](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/ci.yml/badge.svg?branch=staging) | ![Build Status](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/ci.yml/badge.svg?branch=master) |
94+
| Branch | Quality Gate | Production Builds | Compatibility | Distros |
95+
|--------|-------------|-------------------|---------------|---------|
96+
| Development | [![Quality Gate](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml/badge.svg?branch=development)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml?query=branch%3Adevelopment) | [![Production Builds](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml/badge.svg?branch=development)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml?query=branch%3Adevelopment) | [![Compatibility](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml/badge.svg?branch=development)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml?query=branch%3Adevelopment) | [![Distros](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml/badge.svg?branch=development)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml?query=branch%3Adevelopment) |
97+
| Testnet | [![Quality Gate](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml/badge.svg?branch=testnet)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml?query=branch%3Atestnet) | [![Production Builds](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml/badge.svg?branch=testnet)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml?query=branch%3Atestnet) | [![Compatibility](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml/badge.svg?branch=testnet)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml?query=branch%3Atestnet) | [![Distros](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml/badge.svg?branch=testnet)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml?query=branch%3Atestnet) |
98+
| Master | [![Quality Gate](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml/badge.svg?branch=master)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_quality.yml?query=branch%3Amaster) | [![Production Builds](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml/badge.svg?branch=master)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_production.yml?query=branch%3Amaster) | [![Compatibility](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml/badge.svg?branch=master)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_compatibility.yml?query=branch%3Amaster) | [![Distros](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml/badge.svg?branch=master)](https://github.com/gridcoin-community/Gridcoin-Research/actions/workflows/cmake_distros.yml?query=branch%3Amaster) |
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# bash programmable completion for gridcoinresearch(1)
2+
# Copyright (c) 2012-present The Bitcoin Core developers
3+
# Copyright (c) 2026 The Gridcoin developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or https://opensource.org/licenses/MIT.
6+
7+
_gridcoinresearch() {
8+
local cur prev words=() cword
9+
local gridcoinresearch
10+
11+
# save and use original argument to invoke gridcoinresearch for -help
12+
# it might not be in $PATH
13+
gridcoinresearch="$1"
14+
15+
COMPREPLY=()
16+
_get_comp_words_by_ref -n = cur prev words cword
17+
18+
case "$cur" in
19+
-conf=*|-pid=*|-loadblock=*|-wallet=*|-settings=*|-debuglogfile=*|-rpcsslcertificatechainfile=*|-rpcsslprivatekeyfile=*)
20+
cur="${cur#*=}"
21+
_filedir
22+
return 0
23+
;;
24+
-datadir=*|-boincdatadir=*|-backupdir=*)
25+
cur="${cur#*=}"
26+
_filedir -d
27+
return 0
28+
;;
29+
-*=*) # prevent nonsense completions
30+
return 0
31+
;;
32+
*)
33+
34+
# only parse -help if sensible
35+
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
36+
local helpopts
37+
helpopts=$($gridcoinresearch -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
38+
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
39+
fi
40+
41+
# Prevent space if an argument is desired
42+
if [[ $COMPREPLY == *= ]]; then
43+
compopt -o nospace
44+
fi
45+
return 0
46+
;;
47+
esac
48+
} &&
49+
complete -F _gridcoinresearch gridcoinresearch
50+
51+
# Local variables:
52+
# mode: shell-script
53+
# sh-basic-offset: 4
54+
# sh-indent-comment: t
55+
# indent-tabs-mode: nil
56+
# End:
57+
# ex: ts=4 sw=4 et filetype=sh
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# bash programmable completion for gridcoinresearchd(1)
2+
# Copyright (c) 2012-present The Bitcoin Core developers
3+
# Copyright (c) 2026 The Gridcoin developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or https://opensource.org/licenses/MIT.
6+
7+
_gridcoinresearchd() {
8+
local cur prev words=() cword
9+
local gridcoinresearchd
10+
11+
# save and use original argument to invoke gridcoinresearchd for -help
12+
# it might not be in $PATH
13+
gridcoinresearchd="$1"
14+
15+
COMPREPLY=()
16+
_get_comp_words_by_ref -n = cur prev words cword
17+
18+
case "$cur" in
19+
-conf=*|-pid=*|-loadblock=*|-wallet=*|-settings=*|-debuglogfile=*|-rpcsslcertificatechainfile=*|-rpcsslprivatekeyfile=*)
20+
cur="${cur#*=}"
21+
_filedir
22+
return 0
23+
;;
24+
-datadir=*|-boincdatadir=*|-backupdir=*)
25+
cur="${cur#*=}"
26+
_filedir -d
27+
return 0
28+
;;
29+
-*=*) # prevent nonsense completions
30+
return 0
31+
;;
32+
*)
33+
34+
# only parse -help if sensible
35+
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
36+
local helpopts
37+
helpopts=$($gridcoinresearchd -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
38+
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
39+
fi
40+
41+
# Prevent space if an argument is desired
42+
if [[ $COMPREPLY == *= ]]; then
43+
compopt -o nospace
44+
fi
45+
return 0
46+
;;
47+
esac
48+
} &&
49+
complete -F _gridcoinresearchd gridcoinresearchd
50+
51+
# Local variables:
52+
# mode: shell-script
53+
# sh-basic-offset: 4
54+
# sh-indent-comment: t
55+
# indent-tabs-mode: nil
56+
# End:
57+
# ex: ts=4 sw=4 et filetype=sh

0 commit comments

Comments
 (0)