Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge settings one place instead of five places #15934

Merged
merged 6 commits into from Nov 8, 2019

Conversation

@ryanofsky
Copy link
Contributor

@ryanofsky ryanofsky commented May 1, 2019

This is a refactoring-only change that makes it easier to add a new settings source.

This PR doesn't change behavior. The util_ArgsMerge and util_ChainMerge tests added in #15869 and #15988 were written specifically to confirm that ArgsManager settings are parsed, merged, and returned the same way before and after this change.

This change:

The original motivation for this change was to make it easy to add a new persistent setting source without introducing more bugs and inconsistencies. Two commits building on top of this to add a persistent -wallet setting are pretty straightforward and show how the new code can be extended:

  • 70675c3 from #15935Add <datadir>/settings.json persistent settings storage
  • 04c80c4 from #15937Add loadwallet and createwallet RPC load_on_startup options
@DrahtBot
Copy link
Contributor

@DrahtBot DrahtBot commented May 2, 2019

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #17385 (WIP: refactor: Use our own integer parsing/formatting everywhere by laanwj)
  • #15454 (Remove the automatic creation and loading of the default wallet by achow101)
  • #14866 (Improve property evaluation way in bitcoin.conf by AkioNak)
  • #11082 (Add new bitcoin_rw.conf file that is used for settings modified by this software itself by luke-jr)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

Copy link
Member

@promag promag left a comment

I had a refactor (which I did't submit) that supported chaining ArgsManager. The idea was to support changing some args when calling some RPC, so a ArgsManager is created with the "overridden" args and passed thru. Is this something you are considering supporting or do you see a different approach?

Concept ACK.

src/util/system.cpp Outdated Show resolved Hide resolved
src/util/system.cpp Outdated Show resolved Hide resolved
@ryanofsky ryanofsky force-pushed the pr/mergeset branch 5 times, most recently from 19e84b7 to 1d543ad May 8, 2019
@ryanofsky
Copy link
Contributor Author

@ryanofsky ryanofsky commented May 8, 2019

re: #15934 (review) from promag

I had a refactor (which I did't submit) that supported chaining ArgsManager. The idea was to support changing some args when calling some RPC, so a ArgsManager is created with the "overridden" args and passed thru. Is this something you are considering supporting or do you see a different approach?

This change does make it easier to add new settings sources (with consistent handling of negated args and things), so it should be compatible with your idea and maybe helpful.

Depending on the situation, I think having chained or scoped settings could be a good idea or not. I do think that in wallet code and application code generally it's good to get away from using key-value storage classes like ArgsManager or UniValue as quickly as possible, and switch to more direct representations like CCoinControl that are type safe and can be accessed more simply.

@ryanofsky ryanofsky changed the title WIP: Dedup settings merge code Dedup settings merge code May 14, 2019
@ryanofsky ryanofsky marked this pull request as ready for review May 14, 2019
@fanquake
Copy link
Member

@fanquake fanquake commented May 24, 2019

Concept ACK

Copy link
Member

@jamesob jamesob left a comment

Tested ACK 1d543ad

Generated and reviewed the test output locally. Mucked around with various argument formulations using the following config file:

dbcache=100
[main]
dbcache=200
[test]
dbcache=300

and commandline invocations e.g.

./src/bitcoind -conf=$(pwd)/test.conf -dbcache=1000 -dbcache=500 | grep Using

to verify dbcache being set as expected.


This is a well-written change that cleans up a lot of gnarly, duplicated settings munging. It explicitly outlines surprising corner cases in existing behavior (with docs too), and makes reasoning about settings merge order easier. This change also introduces substantial test coverage to settings management (util::Settings).

After this is merged, adding a read-write settings file (whether it's JSON or something else) will be much easier.

src/util/settings.cpp Outdated Show resolved Hide resolved
src/util/settings.cpp Outdated Show resolved Hide resolved
src/util/system.cpp Outdated Show resolved Hide resolved
// Weird behavior preserved for backwards compatibility: command line
// options with section prefixes are allowed but ignored. It would be
// better if these options triggered the IsArgKnown error below, or were
// actually used instead of silently ignored.
Copy link
Member

@jamesob jamesob May 28, 2019

Choose a reason for hiding this comment

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

Thanks for the nice comment. Potentially out of scope: could we log warnings for this instead of silently ignoring?

Copy link
Contributor Author

@ryanofsky ryanofsky May 29, 2019

Choose a reason for hiding this comment

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

re: #15934 (comment)

Potentially out of scope: could we log warnings for this instead of silently ignoring?

I'm planning on making followup PRs that simplify and clean up all these "Weird behavior preserved for backwards compatibility" instances. I'd rather not add warnings in this PR partly because I'm disinclined to mix up behavior changes and refactoring changes in the same PR, but also because having some invalid options result in warnings and other invalid options result in errors seems even more strange and complicated than what the code does now.

// test parses and merges settings, representing the results as strings that get
// compared against an expected hash. To debug, the result strings can be dumped
// to a file (see comments below).
BOOST_FIXTURE_TEST_CASE(Merge, MergeTestingSetup)
Copy link
Member

@jamesob jamesob May 28, 2019

Choose a reason for hiding this comment

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

Cool test! The formatted output is really helpful. Encourage other reviewers to run and inspect with

SETTINGS_MERGE_TEST_OUT=results.txt ./src/test/test_bitcoin --run_test=settings_tests/Merge

src/test/util.h Outdated Show resolved Hide resolved
src/test/settings_tests.cpp Show resolved Hide resolved
@ryanofsky ryanofsky changed the title Dedup settings merge code Separate settings merging from parsing May 29, 2019
Copy link
Contributor Author

@ryanofsky ryanofsky left a comment

Updated 1d543ad -> 2dfeff1 (pr/mergeset.6 -> pr/mergeset.7), compare) with suggested changes.
Rebased 2dfeff1 -> 955c782 (pr/mergeset.7 -> pr/mergeset.8) to share common code with #15988.

src/test/settings_tests.cpp Show resolved Hide resolved
src/util/settings.cpp Outdated Show resolved Hide resolved
src/util/settings.cpp Outdated Show resolved Hide resolved
src/util/system.cpp Outdated Show resolved Hide resolved
// Weird behavior preserved for backwards compatibility: command line
// options with section prefixes are allowed but ignored. It would be
// better if these options triggered the IsArgKnown error below, or were
// actually used instead of silently ignored.
Copy link
Contributor Author

@ryanofsky ryanofsky May 29, 2019

Choose a reason for hiding this comment

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

re: #15934 (comment)

Potentially out of scope: could we log warnings for this instead of silently ignoring?

I'm planning on making followup PRs that simplify and clean up all these "Weird behavior preserved for backwards compatibility" instances. I'd rather not add warnings in this PR partly because I'm disinclined to mix up behavior changes and refactoring changes in the same PR, but also because having some invalid options result in warnings and other invalid options result in errors seems even more strange and complicated than what the code does now.

src/test/util.h Outdated Show resolved Hide resolved
@jamesob
Copy link
Member

@jamesob jamesob commented May 29, 2019

re-tACK 955c782 based on the interdiff and running an abbreviated version of the testing above.

@ryanofsky
Copy link
Contributor Author

@ryanofsky ryanofsky commented Jun 27, 2019

Rebased 955c782 -> 14a6dfc (pr/mergeset.8 -> pr/mergeset.9) due to conflict with #16278

@jamesob
Copy link
Member

@jamesob jamesob commented Jun 27, 2019

reACK 14a6dfc based on interdiff. Only change since pr/mergeset.8 is a trivial LogPrintf fix.

HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
includeconf -> conf_file_names
to_include -> conf_file_name
include_config -> conf_file_stream

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Easier to review ignoring whitespace

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Suggested by James O'Beirne <james.obeirne@gmail.com>
bitcoin#15934 (comment)

This commit does not change behavior.
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Suggested by Antoine Riard <ariard@student.42.fr>
bitcoin#15934 (comment)

and John Newbery <john@johnnewbery.com>
bitcoin#15934 (comment)

This commit does not change behavior.
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Rename suggested by João Barbosa <joao.paulo.barbosa@gmail.com>
bitcoin#16545 (comment)

This also gets rid of ArgsManager::NONE constant, which was an implementation
detail not meant to be used by ArgsManager callers.

Finally this reverts a change from 7f40528
bitcoin#15934 adding "-" characters to argument
names. Better for GetArgFlags to require "-" prefixes for consistency with
other ArgsManager methods, and to be more efficient later when GetArg functions
need to call GetArgFlags (bitcoin#16545)

This commit does not change behavior.
HashUnlimited pushed a commit to HashUnlimited/chaincoin that referenced this issue Apr 17, 2020
Suggested by John Newbery <john@johnnewbery.com>
bitcoin#15934 (comment)

This commit does not change behavior.
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 27, 2020
Summary: This feature doesn't exist in Core, so reducing its surface make sense. It is not strictly limited to forced args at the moment, but the name provide intent and we'll get there after backporting Core [[bitcoin/bitcoin#15934 | PR15934]] .

Test Plan:
  make check

Updated test to reflect the new behavior.

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D5850
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 29, 2020
Summary:
Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin/bitcoin#15934 (comment)

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@dc8e1e7

Test Plan:
  ninja all check-all

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D5884
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 29, 2020
Summary:
includeconf -> conf_file_names
to_include -> conf_file_name
include_config -> conf_file_stream

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin/bitcoin#15934 (comment)

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@5a84aa8

Test Plan:
  make check

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D5885
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 29, 2020
Summary:
Implement merging of settings from different sources (command line and config
file) separately from parsing code in system.cpp, so it is easier to add new
sources.

Document current inconsistent merging behavior without changing it.

This commit only adds new settings code without using it. The next commit calls
the new code to replace existing code in system.cpp.

Co-authored-by: John Newbery <john@johnnewbery.com>

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@9dcb952

Test Plan:
  make check

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D5886
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 30, 2020
Summary:
Easier to review ignoring whitespace

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin/bitcoin#15934 (comment)

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@e2e37cf

Test Plan:
  ninja all check

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D5905
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 30, 2020
Summary:
Get rid of settings merging code in util/system.cpp repeated 5 places,
inconsistently:

- ArgsManagerHelper::GetArg
- ArgsManagerHelper::GetNetBoolArg
- ArgsManager::GetArgs
- ArgsManager::IsArgNegated
- ArgsManager::GetUnsuitableSectionOnlyArgs

Having settings merging code separated from parsing simplifies parsing somewhat
(for example negated values can simply be represented as false values instead
of partially cleared or emply placeholder lists).

Having settings merge happen one place instead of 5 makes it easier to add new
settings sources and harder to introduce new inconsistencies in the way
settings are merged.

This commit does not change behavior in any way.

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@7f40528

This PR had to be modified due to ClearForcedArg and ForceSetMultiArg not being supported by Core.

Depends on D5905

Test Plan:
  make check

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D5903
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 30, 2020
Summary:
Co-authored-by: James O'Beirne <james.obeirne@gmail.com>

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@083c954

Depends on D5903

Test Plan:
  ninja all check

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D5904
deadalnix added a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue Apr 30, 2020
Summary:
 * refactor: Clean up includeconf comments

Suggested by Antoine Riard <ariard@student.42.fr>
bitcoin/bitcoin#15934 (comment)

and John Newbery <john@johnnewbery.com>
bitcoin/bitcoin#15934 (comment)

This commit does not change behavior.

 * refactor: Replace FlagsOfKnownArg with GetArgFlags

Rename suggested by João Barbosa <joao.paulo.barbosa@gmail.com>
bitcoin/bitcoin#16545 (comment)

This also gets rid of ArgsManager::NONE constant, which was an implementation
detail not meant to be used by ArgsManager callers.

Finally this reverts a change from 7f40528cd50fc43ac0bd3e785de24d661adddb7a
bitcoin/bitcoin#15934 adding "-" characters to argument
names. Better for GetArgFlags to require "-" prefixes for consistency with
other ArgsManager methods, and to be more efficient later when GetArg functions
need to call GetArgFlags (bitcoin/bitcoin#16545)

This commit does not change behavior.

 * refactor: Get rid of ArgsManagerHelper class

Suggested by John Newbery <john@johnnewbery.com>
bitcoin/bitcoin#15934 (comment)

This commit does not change behavior.

 * refactor: Add ArgsManager::GetSettingsList method

Add for consistency with ArgsManager::GetSetting method and to make setting
types accessible to ArgsManager callers and tests (test added next commit).

This commit does not change behavior.

 * refactor: Add util_CheckValue test

Test GetSetting and GetArg type coercion, negation, and default value handling.
Test is expanded later to cover other flags besides ALLOW_ANY when they are
implemented in bitcoin/bitcoin#16545

This commit does not change behavior.

 * scripted-diff: Remove unused ArgsManager type flags in tests

The bool/int/string flags were added speculatively in #16097 and trigger errors
when type checking is actually implemented in
bitcoin/bitcoin#16545

-BEGIN VERIFY SCRIPT-
sed -i 's/ALLOW_\(BOOL\|INT\|STRING\)/ALLOW_ANY/g' src/test/util_tests.cpp src/test/getarg_tests.cpp
-END VERIFY SCRIPT-

This commit does not change behavior.

 * refactor: Remove null setting check in GetSetting()

Also rename the "result_complete" variable in GetSettingsList() to "done" to be
more consistent with GetSetting().

This change doesn't affect current behavior but could be useful in the future
to support dynamically changing settings at runtime and adding new settings
sources, because it lets high priority sources reset settings back to default
(see test).

By removing a special case for null, this change also helps merge code treat
settings values more like black boxes, and interfere less with settings parsing
and retrieval.

This is a backport of Core [[bitcoin/bitcoin#17473 | PR17473]]

Depends on D5904

Test Plan:
  ninja all check-all

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D5910
ftrader added a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this issue Aug 17, 2020
Summary:
Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin/bitcoin#15934 (comment)

This is a partial backport of Core [[bitcoin/bitcoin#15934 | PR15934]] : bitcoin/bitcoin@dc8e1e7

Test Plan:
  ninja all check-all

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D5884
sidhujag added a commit to syscoin-core/syscoin that referenced this issue Nov 10, 2020
Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
sidhujag added a commit to syscoin-core/syscoin that referenced this issue Nov 10, 2020
includeconf -> conf_file_names
to_include -> conf_file_name
include_config -> conf_file_stream

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
sidhujag added a commit to syscoin-core/syscoin that referenced this issue Nov 10, 2020
Easier to review ignoring whitespace

Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin#15934 (comment)
sidhujag added a commit to syscoin-core/syscoin that referenced this issue Nov 10, 2020
083c954 Add settings_tests (Russell Yanofsky)
7f40528 Deduplicate settings merge code (Russell Yanofsky)
9dcb952 Add util::Settings struct and helper functions. (Russell Yanofsky)
e2e37cf Remove includeconf nested scope (Russell Yanofsky)
5a84aa8 Rename includeconf variables for clarity (Russell Yanofsky)
dc8e1e7 Clarify emptyIncludeConf logic (Russell Yanofsky)

Pull request description:

  This is a refactoring-only change that makes it easier to add a new settings source.

  This PR doesn't change behavior. The [`util_ArgsMerge`](https://github.com/bitcoin/bitcoin/blob/deb2327b435925c6a39ca654a79283b8eb6aeb86/src/test/util_tests.cpp#L626-L822) and [`util_ChainMerge`](https://github.com/bitcoin/bitcoin/blob/deb2327b435925c6a39ca654a79283b8eb6aeb86/src/test/util_tests.cpp#L843-L924) tests added in bitcoin#15869 and bitcoin#15988 were written specifically to confirm that ArgsManager settings are parsed, merged, and returned the same way before and after this change.

  This change:

  - Makes it easier to add new settings sources that can get merged with existing sources (see 70675c3 from bitcoin#15935).
  - Separates parsing of settings from merging of settings, and deduplicates merging code so it doesn't happen five different places ([GetArg](https://github.com/bitcoin/bitcoin/blob/c459c5f70176928adcee4935813a2dbe7f4dbd51/src/util/system.cpp#L221-L244), [GetNetBoolArg](https://github.com/bitcoin/bitcoin/blob/c459c5f70176928adcee4935813a2dbe7f4dbd51/src/util/system.cpp#L255-L261), [GetArgs](https://github.com/bitcoin/bitcoin/blob/c459c5f70176928adcee4935813a2dbe7f4dbd51/src/util/system.cpp#L460-L467), [IsArgNegated](https://github.com/bitcoin/bitcoin/blob/c459c5f70176928adcee4935813a2dbe7f4dbd51/src/util/system.cpp#L482-L491), [GetUnsuitableSectionOnlyArgs](https://github.com/bitcoin/bitcoin/blob/c459c5f70176928adcee4935813a2dbe7f4dbd51/src/util/system.cpp#L343-L352)) in inconsistent ways.
  - Documents and tests current strange merging behaviors, so they be cleaned up in the future if resulting code simplifications and UX improvements warrant loss of backwards compatibility. The newly documented behaviors are: command line [ignored arguments](https://github.com/ryanofsky/bitcoin/blob/69d44f3cc75a68d404ca0e1ca2b4831fd2bac4bb/src/util/system.cpp#L323-L326) and [more ignored arguments](https://github.com/ryanofsky/bitcoin/blob/69d44f3cc75a68d404ca0e1ca2b4831fd2bac4bb/src/util/settings.cpp#L67-L72), and config file [reverse precedence](https://github.com/ryanofsky/bitcoin/blob/69d44f3cc75a68d404ca0e1ca2b4831fd2bac4bb/src/util/settings.cpp#L61-L65), [inconsistently applied top-level settings](https://github.com/ryanofsky/bitcoin/blob/69d44f3cc75a68d404ca0e1ca2b4831fd2bac4bb/src/util/settings.cpp#L55-L59), and [zombie values](https://github.com/ryanofsky/bitcoin/blob/69d44f3cc75a68d404ca0e1ca2b4831fd2bac4bb/src/util/settings.cpp#L101-L108).

  The original motivation for this change was to make it easy to add a new persistent setting source without introducing more bugs and inconsistencies. Two commits building on top of this to add a persistent `-wallet` setting are pretty straightforward and show how the new code can be extended:

  * 70675c3 from bitcoin#15935 – _Add \<datadir>/settings.json persistent settings storage_
  * 04c80c4 from bitcoin#15937 – _Add loadwallet and createwallet RPC load_on_startup options_

ACKs for top commit:
  ariard:
    ACK 083c954
  jnewbery:
    ACK 083c954
  jamesob:
    ACK 083c954

Tree-SHA512: 5d106746a44d64d3963c4ef3f4a2fa668a4bedcc9018d3ea12c86beae2fda48a0b036241665837f68685712366f70f2e1faba84d193fa1f456013503097b7659
sidhujag added a commit to syscoin-core/syscoin that referenced this issue Nov 10, 2020
e9fd366 refactor: Remove null setting check in GetSetting() (Russell Yanofsky)
cba2710 scripted-diff: Remove unused ArgsManager type flags in tests (Russell Yanofsky)
425bb30 refactor: Add util_CheckValue test (Russell Yanofsky)
0fa5435 refactor: Add ArgsManager::GetSettingsList method (Russell Yanofsky)
3e18552 refactor: Get rid of ArgsManagerHelper class (Russell Yanofsky)
dc0f148 refactor: Replace FlagsOfKnownArg with GetArgFlags (Russell Yanofsky)
57e8b7a refactor: Clean up includeconf comments (Russell Yanofsky)
3f7dc9b refactor: Clean up long lines in settings code (Russell Yanofsky)

Pull request description:

  This PR doesn't change behavior. It just implements some suggestions from bitcoin#15934 and bitcoin#16545 and few other small cleanups.

ACKs for top commit:
  jnewbery:
    Code review ACK e9fd366
  MarcoFalke:
    ACK e9fd366 🚟

Tree-SHA512: 6e100d92c72f72bc39567187ab97a3547b3c06e5fcf1a1b74023358b8bca552124ca6a53c0ab53179b7f1329c03d9a73faaef6d73d2cd1a2321568a0286525e2
silence48 added a commit to FantasyGold/FantasyGold-Core that referenced this issue Nov 15, 2020
Suggestion from John Newbery <john@johnnewbery.com> in
bitcoin/bitcoin#15934 (comment)
@MarcoFalke
Copy link
Member

@MarcoFalke MarcoFalke commented Jan 30, 2021

Hidden by GitHub, but the "Up for grabs" refers to #15934 (comment)

backpacker69 added a commit to peercoin/peercoin that referenced this issue Mar 28, 2021
Suggested by James O'Beirne <james.obeirne@gmail.com>
bitcoin/bitcoin#15934 (comment)

This commit does not change behavior.
backpacker69 added a commit to peercoin/peercoin that referenced this issue Mar 28, 2021
Suggested by Antoine Riard <ariard@student.42.fr>
bitcoin/bitcoin#15934 (comment)

and John Newbery <john@johnnewbery.com>
bitcoin/bitcoin#15934 (comment)

This commit does not change behavior.
backpacker69 added a commit to peercoin/peercoin that referenced this issue Mar 28, 2021
Rename suggested by João Barbosa <joao.paulo.barbosa@gmail.com>
bitcoin/bitcoin#16545 (comment)

This also gets rid of ArgsManager::NONE constant, which was an implementation
detail not meant to be used by ArgsManager callers.

Finally this reverts a change from 7f40528
bitcoin/bitcoin#15934 adding "-" characters to argument
names. Better for GetArgFlags to require "-" prefixes for consistency with
other ArgsManager methods, and to be more efficient later when GetArg functions
need to call GetArgFlags (bitcoin/bitcoin#16545)

This commit does not change behavior.
backpacker69 added a commit to peercoin/peercoin that referenced this issue Mar 28, 2021
Suggested by John Newbery <john@johnnewbery.com>
bitcoin/bitcoin#15934 (comment)

This commit does not change behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet