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

Upstream PRs 993, 1152, 1165, 1126, 1168, 1173, 1055 #243

Merged

Conversation

jonasnick
Copy link
Contributor

[bitcoin-core/secp256k1#993]: Enable non-experimental modules by default
[bitcoin-core/secp256k1#1152]: Update macOS image for CI
[bitcoin-core/secp256k1#1165]: gitignore: Add *.sage.py files autogenerated by sage [skip ci]
[bitcoin-core/secp256k1#1126]: API cleanup with respect to contexts
[bitcoin-core/secp256k1#1168]: Replace deprecated context flags with NONE in benchmarks and tests
[bitcoin-core/secp256k1#1173]: Don't use compute credits for now
[bitcoin-core/secp256k1#1055]: Prepare initial release

This PR can be recreated with ./contrib/sync-upstream.sh -b temp-merge-1156 range 21ffe4b22a9683cf24ae0763359e401d1284cc7a.

  • Switched to none contexts in benchmarks and tests, removed unnecessary contexts
  • Renamed secp256k1_context_no_precomp to secp256k1_context_static
  • Got rid of "initialized for signing" terminology
  • Did not enable non-experimental modules by default, except for the ones enabled upstream
  • Kept versioning in configure.ac as is (v0.1.0)
  • Added a note that the changelog.md is not this repositories changelog.md. Maybe it's useful to have it to see which parts of libsecp have been merged into -zkp

real-or-random and others added 30 commits August 3, 2022 17:09
We don't enable the ECDSA recovery module, because we don't recommend
ECDSA recovery for new protocols. In particular, the recovery API is
prone to misuse: It invites the caller to forget to check the public
key (and the verification function always returns 1).

In general, we also don't recommend ordinary ECDSA for new protocols.
But disabling the ECDSA functions is not possible because they're not
in a module, and let's be honest: disabling ECDSA would mean to ignore
reality blatantly.
…default

41e8704 build: Enable some modules by default (Tim Ruffing)

Pull request description:

  This has been discussed in bitcoin-core/secp256k1#817 (comment) and I agree with the arguments brought up there.

  Alternatively, we could not enable them and add a discussion to the readme why we discourage people from using the modules. I believe enabling ECDH is not very controversial. But what about recovery? Do we want to leave it off and instead give a reason?

ACKs for top commit:
  sipa:
    ACK 41e8704
  jonasnick:
    ACK 41e8704

Tree-SHA512: 1dd21037043f2b2c94a92cd2f31e69b505ba5b43119897bc0934966d9ccd84fc4fc20e7509af634f1c3a096710db1a2253090f5f1f107b9d258945a5546e9ba4
a8494b0 Use compute credits for macOS jobs (Pieter Wuille)
c0ae48c Update macOS image for CI (Pieter Wuille)

Pull request description:

ACKs for top commit:
  real-or-random:
    ACK a8494b0
  jonasnick:
    ACK a8494b0

Tree-SHA512: af99585ef68fc8305785885efaf0a0ebe45e5765661d654523a36ba843fc83e0ac40a554638437fa53804e4aa42dbcd92d597702ee6225b66a044a6304bafd45
…ogenerated by sage [skip ci]

092be61 gitignore: Add *.sage.py files autogenerated by sage (Tim Ruffing)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK 092be61

Tree-SHA512: ee77e8634814ccc1894eb633816da877a4d4511d9e77f5628b19e0e37006d43ae45431dfd1b30977504a5975a92a2b1824ed53c7837fb5600994d11003996b86
4386a23 examples: Switch to NONE contexts (Tim Ruffing)
7289b51 docs: Use doxygen style if and only if comment is user-facing (Tim Ruffing)
e7d0185 docs: Get rid of "initialized for signing" terminology (Tim Ruffing)
0612636 docs: Tidy and improve docs about contexts and randomization (Tim Ruffing)
e02d686 selftest: Expose in public API (Tim Ruffing)
e383fbf selftest: Rename internal function to make name available for API (Tim Ruffing)
d2c6d48 tests: Use new name of static context (Tim Ruffing)
53796d2 contexts: Rename static context (Tim Ruffing)
72fedf8 docs: Improve docs for static context (Tim Ruffing)
316ac76 contexts: Deprecate all context flags except SECP256K1_CONTEXT_NONE (Tim Ruffing)
1a553ee docs: Change signature "validation" to "verification" (Tim Ruffing)
ee7341f docs: Never require a verification context (Tim Ruffing)

Pull request description:

ACKs for top commit:
  sipa:
    utACK 4386a23
  jonasnick:
    ACK 4386a23

Tree-SHA512: 7bf07dfae0ecbf7de1418de64ef743a23dc5f244aeba2c1cf3ecbdc117d6ac12bb6c8f17f739605566074a9b901765ee4a32288b6edc6f9a0040a70cb472f6ee
…ith NONE in benchmarks and tests

d6dc0f4 tests: Switch to NONE contexts in module tests (Jonas Nick)
0c8a5ca tests: Switch to NONE contexts in tests.c (Jonas Nick)
86540e9 tests: add test for deprecated flags and rm them from run_context (Jonas Nick)
caa0ad6 group: add gej_eq_var (Jonas Nick)
37ba744 tests: Switch to NONE contexts in exhaustive and ctime tests (Jonas Nick)
8d7a9a8 benchmarks: Switch to NONE contexts (Jonas Nick)

Pull request description:

  Based on #1126.

ACKs for top commit:
  real-or-random:
    ACK d6dc0f4 diff looks good and tests pass locally
  sipa:
    utACK d6dc0f4

Tree-SHA512: 1fb1dc1336409b52827787a03c791a21ee1d6b1bdc388d1fa126600572f348ba16865a01d29bac67b36b8f29f30cda117d82913e2044ccb9d073f5d04338ac9f
The suffix -dev is slightly clearer.

Also, since the package version follows semantic versioning, rename
VERSION_BUILD to VERSION_PATCH for clarity.
jonasnick and others added 6 commits December 12, 2022 19:53
- make version on master always equal to latest release with patch+1
- separate regular from maintenance releases
- add more git commands to prevent accidents
- mention that one needs to somehow deal with release dates
- _LIB_VERSIONS_ -> _LIB_VERSION_
- don't push all tags in step 4
- add required message to git tag
- add suggested commit messages
7e5b226 Don't use compute credits for now (Pieter Wuille)

Pull request description:

ACKs for top commit:
  real-or-random:
    ACK 7e5b226

Tree-SHA512: 5f37521dede4270151f4f1ed59e021f78e39b7e3362f4c16ecf2b7733dd1d49306466cc4e9b7837be10769c86799905fb1305cb35fe5cae0366a7f7861e6e9df
There are plenty of unreleased variants of libsecp256k1 version 0.1.0
(libsecp256k1.so.0.0.0) in the wild. We choose a new version number to allow a
clear distinction.

There are variants of 0.1.0 that are incompatible with the initial release,
hence we increase the minor version to arrive at version number 0.2.0. For the
same reason, we increase the LIB_VERSION_CURRENT and keep AGE at 0.

The changelog for 0.2.0 consists of the relevant changes since 2021-12-25, which
is the date when the initial release process PR was merged (and the library
version was set to a pre-release, see 423b6d1).
This is somewhat arbitrary but at least points readers to relevant changes.
e025ccd release: prepare for initial release 0.2.0 (Jonas Nick)
6d1784a build: add missing files to EXTRA_DIST (Jonas Nick)
13bf1b6 changelog: make order of change types match keepachangelog.com (Jonas Nick)
b1f992a doc: improve release process (Jonas Nick)
ad39e2d build: change package version to 0.1.0-dev (Jonas Nick)
90618e9 doc: move CHANGELOG from doc/ to root directory (Jonas Nick)

Pull request description:

  Based on #964

ACKs for top commit:
  sipa:
    ACK e025ccd

Tree-SHA512: b9ab71d7362537d383a32b5e321ef44069f00e3e92340375bcd662267bc5a60c2bad60222998e6602cfac24ad65efb23d772eac37c86065036b90ef090b54c49
@real-or-random
Copy link
Collaborator

TIL: git show --remerge-diff:
"With this option, two-parent merge commits are remerged to create a temporary tree object — potentially containing files with conflict markers and such. A diff is then shown between that temporary tree and the actual merge commit."

That's very handy for reviewing the merge commit.

@real-or-random
Copy link
Collaborator

Kept versioning in configure.ac as is (v0.1.0)

Hm, yes, that's probably best for now... We can still see if we want to change the project name in the build system to include the -zkp suffix, but that's a separate issue.

Comment on lines +3 to +2
**This changelog is not the libsecp256k1-zkp's changelog.**
Instead, it is the changelog of the upstream library [libsecp256k1](https://github.com/bitcoin-core/secp256k1).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: Would put this above the #Changelog heading... If only to make it less likely that git will assume a conflict here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@real-or-random
Copy link
Collaborator

This PR can be recreated with ./contrib/sync-upstream.sh -b temp-merge-1156 range 21ffe4b22a9683cf24ae0763359e401d1284cc7a.

Now I'm confused. Shouldn't this have been -b sync-upstream?

@jonasnick
Copy link
Contributor Author

jonasnick commented Jul 18, 2023

Now I'm confused. Shouldn't this have been -b sync-upstream?

The script is correct since I ran it on a branch that hadn't been merged at the time.

Copy link
Collaborator

@real-or-random real-or-random left a comment

Choose a reason for hiding this comment

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

utACK 6c54db1

Copy link
Collaborator

@real-or-random real-or-random left a comment

Choose a reason for hiding this comment

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

ACK 6c54db1

@real-or-random real-or-random merged commit 6c54db1 into BlockstreamResearch:sync-upstream Jul 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants