Skip to content

Commit 12abb0c

Browse files
committed
Merge branch 'main' of https://github.com/RAQ-coin/Raqcoin
2 parents 12de4bd + 3d99306 commit 12abb0c

10 files changed

Lines changed: 1937 additions & 44 deletions

File tree

CONTRIBUTING.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
Contributing to Raqcoin Core
2+
============================
3+
4+
The Raqcoin Core project operates an open contributor model where anyone is
5+
welcome to contribute towards development in the form of peer review, testing
6+
and patches. This document explains the practical process and guidelines for
7+
contributing.
8+
9+
Getting Started
10+
---------------
11+
12+
New contributors are very welcome and needed.
13+
14+
Reviewing and testing is highly valued and the most effective way you can contribute
15+
as a new contributor. It also will teach you much more about the code and
16+
process than opening pull requests.
17+
18+
Before you start contributing, familiarize yourself with the Raqcoin Core build
19+
system and tests. Refer to the documentation in the repository on how to build
20+
Raqcoin Core and how to run the unit tests.
21+
22+
There are many open issues of varying difficulty waiting to be fixed.
23+
If you're looking for somewhere to start contributing, check out the
24+
[good first issue](https://github.com/RAQ-coin/Raqcoin/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
25+
list or changes that are
26+
[up for grabs](https://github.com/RAQ-coin/Raqcoin/issues?utf8=%E2%9C%93&q=label%3A%22Up+for+grabs%22).
27+
Some of them might no longer be applicable. So if you are interested, but
28+
unsure, you might want to leave a comment on the issue first.
29+
30+
### Good First Issue Label
31+
32+
The purpose of the `good first issue` label is to highlight which issues are
33+
suitable for a new contributor without a deep understanding of the codebase.
34+
35+
However, good first issues can be solved by anyone. If they remain unsolved
36+
for a longer time, a frequent contributor might address them.
37+
38+
You do not need to request permission to start working on an issue. However,
39+
you are encouraged to leave a comment if you are planning to work on it. This
40+
will help other contributors monitor which issues are actively being addressed
41+
and is also an effective way to request assistance if and when you need it.
42+
43+
Communication Channels
44+
----------------------
45+
46+
Most communication about Raqcoin Core development happens on GitHub Issues and Pull Requests.
47+
48+
Contributor Workflow
49+
--------------------
50+
51+
The codebase is maintained using the "contributor workflow" where everyone
52+
without exception contributes patch proposals using "pull requests" (PRs). This
53+
facilitates social contribution, easy testing and peer review.
54+
55+
To contribute a patch, the workflow is as follows:
56+
57+
1. Fork repository
58+
1. Create topic branch
59+
1. Commit patches
60+
1. Push changes to your fork
61+
1. Create pull request
62+
63+
The project coding conventions in [doc/coding.md](doc/coding.md) must be followed.
64+
65+
### Committing Patches
66+
67+
In general, commits should be atomic and diffs should be easy to read. For this reason, do not mix any formatting
68+
fixes or code moves with actual code changes.
69+
70+
Make sure each individual commit is hygienic: that it builds successfully on its
71+
own without warnings, errors, regressions, or test failures.
72+
This means tests must be updated in the same commit that changes the behavior.
73+
74+
Commit messages should be verbose by default consisting of a short subject line
75+
(50 chars max), a blank line and detailed explanatory text as separate
76+
paragraph(s), unless the title alone is self-explanatory.
77+
78+
### Creating the Pull Request
79+
80+
The title of the pull request should be prefixed by the component or area that
81+
the pull request affects. Valid areas as:
82+
83+
- `consensus` for changes to consensus critical code
84+
- `doc` for changes to the documentation
85+
- `qt` or `gui` for changes to the GUI
86+
- `mining` for changes to the mining code
87+
- `net` or `p2p` for changes to the peer-to-peer network code
88+
- `refactor` for structural changes that do not change behavior
89+
- `test` or `ci` for changes to the unit tests, QA tests or CI code
90+
- `util` or `lib` for changes to the utils or libraries
91+
- `wallet` for changes to the wallet code
92+
- `build` for changes to the build system
93+
94+
The body of the pull request should contain sufficient description of *what* the
95+
patch does, and even more importantly, *why*, with justification and reasoning.
96+
97+
### Work in Progress Changes and Requests for Comments
98+
99+
If a pull request is not to be considered for merging (yet), please
100+
prefix the title with [WIP] or use Task Lists
101+
in the body of the pull request to indicate tasks are pending.
102+
103+
### Address Feedback
104+
105+
At this stage, one should expect comments and review from other contributors. You
106+
can add more commits to your pull request by committing them locally and pushing
107+
to your fork.
108+
109+
You are expected to reply to any review comments before your pull request is
110+
merged. You may update the code or reject the feedback if you do not agree with
111+
it, but you should express so in a reply. If there is outstanding feedback and
112+
you are not actively working on it, your pull request may be closed.
113+
114+
Pull Request Philosophy
115+
-----------------------
116+
117+
Patchsets should always be focused. For example, a pull request could add a
118+
feature, fix a bug, or refactor code; but not a mixture. Please also avoid super
119+
pull requests which attempt to do too much, are overly large, or overly complex
120+
as this makes review difficult.
121+
122+
### Features
123+
124+
When adding a new feature, thought must be given to the long term technical debt
125+
and maintenance that feature may require after inclusion. Before proposing a new
126+
feature that will require maintenance, please consider if you are willing to
127+
maintain it (including bug fixing).
128+
129+
### Refactoring
130+
131+
Refactoring is a necessary part of any software project's evolution.
132+
Refactoring PRs must not change the behaviour of code within the pull request (bugs must be preserved as is).
133+
134+
"Decision Making" Process
135+
-------------------------
136+
137+
Whether a pull request is merged into Raqcoin Core rests with the project maintainers.
138+
139+
Maintainers will take into consideration if a patch is in line with the general
140+
principles of the project; meets the minimum standards for inclusion; and will
141+
judge the general consensus of contributors.
142+
143+
In general, all pull requests must:
144+
145+
- Have a clear use case, fix a demonstrable bug or serve the greater good of
146+
the project;
147+
- Be reviewed;
148+
- Have unit tests, where appropriate;
149+
- Follow code style guidelines ([doc/coding.md](doc/coding.md));
150+
- Not break the existing test suite;
151+
152+
Patches that change Raqcoin consensus rules are considerably more involved than
153+
normal because they affect the entire ecosystem.
154+
155+
Copyright
156+
---------
157+
158+
Raqcoin Core is released under the terms of the GNU GPL v. 3 license.
159+
See [COPYING](COPYING) for more information or https://www.gnu.org/licenses/gpl-3.0.en.html.

QA/QA.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Q&A

README.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ software which enables the use of this currency.
1616
For more information, as well as an immediately useable, binary version of
1717
the RaqcoinCore client software, see www.Raqcoin.info
1818

19+
Configuration
20+
-------------
21+
22+
Before starting the application, you need to create a configuration file `raqcoin.conf` in the default data directory:
23+
24+
- **Linux**: `~/.abc/raqcoin.conf`
25+
- **macOS**: `~/Library/Application Support/abc/raqcoin.conf`
26+
- **Windows**: `%APPDATA%\abc\raqcoin.conf` (typically `C:\Users\YourUsername\AppData\Roaming\abc\raqcoin.conf`)
27+
28+
You can find a configuration file example at [contrib/debian/examples/raqcoin.conf](contrib/debian/examples/raqcoin.conf).
29+
30+
Alternatively, you can specify a custom data directory using the `-datadir` parameter or a custom configuration file using the `-conf` parameter when starting the application.
31+
1932
License
2033
-------
2134

@@ -24,11 +37,10 @@ RaqcoinCore is released under the terms of the GNU GPL v. 3 license. See https:/
2437
THIRD PARTY SOFTWARE DISCLOSURE, ATTRIBUTIONS, COPYRIGHT NOTICES, AND LICENSES
2538

2639
Certain open source third-party software and data components are integrated and/or redistributed with
27-
ABCMintCore. Such third-party components include terms and conditions, such as attribution and liability disclaimers (collectively "Third Party Disclosures") for which disclosure is required by their respective owners. This notice sets forth such Third Party Disclosures for ABCMintCore.
40+
RaqcoinCore. Such third-party components include terms and conditions, such as attribution and liability disclaimers (collectively "Third Party Disclosures") for which disclosure is required by their respective owners. This notice sets forth such Third Party Disclosures for RaqcoinCore.
2841

2942
RAQCOIN FOUNDATION MAKES NO REPRESENTATION, WARRANTY OR OTHER COMMITMENT REGARDING SUCH THIRD PARTY COMPONENTS. RAQCOINCORE, AND ALL THIRD PARTY COMPONENTS, ARE DISTRIBUTED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, UNLESS PROHIBITED BY APPLICABLE LAW
3043

31-
3244
1. Openssl
3345
• Copyright (c) 1998-2018 The OpenSSL Project, all rights reserved
3446
• Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson, all rights reserved
@@ -118,15 +130,12 @@ o Vadim Barkov
118130
• Version:0.2
119131
• GPL V3
120132

121-
122-
123133
Development process
124134
-------------------
125-
126135
Developers work in their own trees, then submit pull requests when they think
127136
their feature or bug fix is ready.
128137

129-
If it is a simple/trivial/non-controversial change, then one of the ABCMintCore
138+
If it is a simple/trivial/non-controversial change, then one of the RaqcoinCore
130139
development team members simply pulls it.
131140

132141
If it is a *more complicated or potentially controversial* change, then the patch
@@ -139,44 +148,36 @@ match the project's coding conventions (see `doc/coding.md`) or are
139148
controversial.
140149

141150
The `master` branch is regularly built and tested, but is not guaranteed to be
142-
completely stable. [Tags](https://github.com/abcmint/abcmint/tags) are created
151+
completely stable. [Tags](https://github.com/RAQ-coin/Raqcoin/tags) are created
143152
regularly to indicate new official, stable release versions of Raqcoin.
144153

145154
Testing
146155
-------
147-
148156
Testing and code review is the bottleneck for development; we get more pull
149157
requests than we can review and test. Please be patient and help out, and
150158
remember this is a security-critical project where any mistake might cost people
151159
lots of money.
152160

153161
### Automated Testing
154-
155162
Developers are strongly encouraged to write unit tests for new code, and to
156163
submit new unit tests for old code.
157-
158164
Unit tests for the core code are in `src/test/`. To compile and run them:
159-
160165
cd src; make -f makefile.unix test
161-
162166
Unit tests for the GUI code are in `src/qt/test/`. To compile and run them:
163-
164167
qmake RAQCOIN_QT_TEST=1 -o Makefile.test raqcoin-qt.pro
165168
make -f Makefile.test
166169
./raqcoin-qt_test
167-
168170
Every pull request is built for both Windows and Linux on a dedicated server,
169171
and unit and sanity tests are automatically run. The binaries produced may be
170172
used for manual QA testing — a link to them will appear in a comment on the
171-
pull request posted by (https://github.com/RAQ-coin/). See https://github.com/RAQ-coin/test-scripts
172-
for the build/test scripts.
173+
pull request posted by (https://github.com/RAQ-coin/). See https://github.com/RAQ-coin/Raqcoin-test
174+
for the build/Raqcoin-test.
173175

174176
### Manual Quality Assurance (QA) Testing
175-
176177
Large changes should have a test plan, and should be tested by somebody other
177178
than the developer who wrote the code.
178179

179-
See https://github.com/RAQ-coin/QA/ for how to create a test plan.
180+
See https://github.com/RAQ-coin/Raqcoin-Test/tree/main/QA/ for how to create a test plan.
180181

181182
### Mining Algorithm Using GPU
182183
A new program that can be used to do ABC mining on a GPU is recently release at

0 commit comments

Comments
 (0)