release: prepare for 0.3.0 #1223

pull jonasnick wants to merge 1 commits into bitcoin-core:master from jonasnick:prepare-0.3.0 changing 3 files +16 −9
  1. jonasnick commented at 3:05 pm on March 7, 2023: contributor

    Based on #1221. The release date is set to tomorrow March 8th. This is a draft because we only want to merge this tomorrow and make sure to tag the release immediately afterwards.

    make dist does not miss files as shown by this diff between the dist tar.gz and a clean checkout of the repo:

     0 diff -qr . ../../../secp256k1-clean
     1Only in .: aclocal.m4
     2Only in ./build-aux: ar-lib
     3Only in ./build-aux: compile
     4Only in ./build-aux: config.guess
     5Only in ./build-aux: config.sub
     6Only in ./build-aux: depcomp
     7Only in ./build-aux: install-sh
     8Only in ./build-aux: ltmain.sh
     9Only in ./build-aux/m4: libtool.m4
    10Only in ./build-aux/m4: lt~obsolete.m4
    11Only in ./build-aux/m4: ltoptions.m4
    12Only in ./build-aux/m4: ltsugar.m4
    13Only in ./build-aux/m4: ltversion.m4
    14Only in ./build-aux: missing
    15Only in ./build-aux: test-driver
    16Files ./CHANGELOG.md and ../../../secp256k1-clean/CHANGELOG.md differ
    17Only in ../../../secp256k1-clean: ci
    18Only in ../../../secp256k1-clean: .cirrus.yml
    19Only in .: configure
    20Files ./configure.ac and ../../../secp256k1-clean/configure.ac differ
    21Only in ../../../secp256k1-clean: .git
    22Only in ../../../secp256k1-clean: .gitattributes
    23Only in ../../../secp256k1-clean: .gitignore
    24Only in .: Makefile.in
    
  2. real-or-random commented at 3:08 pm on March 7, 2023: contributor
    See #1176 by the way, but the only thing that’s relevant for this release is the check of make dist. And that seems good, yes.
  3. real-or-random approved
  4. real-or-random commented at 3:11 pm on March 7, 2023: contributor
    ACK bdfddaf762f4058e85436ee1688a3a370463d96d on the contents of the PR, looks correct according to https://github.com/bitcoin-core/secp256k1/blob/master/doc/release-process.md
  5. jonasnick force-pushed on Mar 7, 2023
  6. sipa commented at 4:25 am on March 8, 2023: contributor
    Concept ACK
  7. jonasnick added this to the milestone 0.3.0 on Mar 8, 2023
  8. sipa commented at 3:54 pm on March 8, 2023: contributor

    I’m not convinced the changes warrant a 0.3.0, actually (as opposed to a 0.2.1). SemVer 2.0.0 says:

    MINOR version when you add functionality in a backwards compatible manner

    Of course, we can see extra tests and examples as “functionality” of the library, but it feels more auxiliary to me, and the library itself didn’t get real new features.

  9. real-or-random commented at 4:00 pm on March 8, 2023: contributor

    It’s not about tests and examples but about the changes secp256k1_context_static (which have been noted in the Changelog already earlier). @sipa The reasoning is

    • The changes to secp256k1_context_static are API-incompatible, so normally we would increase MAJOR.
    • But that would make it a 1.0.0. So we make use of https://semver.org/#spec-item-4: “Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.” So if the only goal is to adhere to SemVer 2, we could in fact do whatever we want. But increasing MINOR seems most reasonable for an incompatible change before 1.0.0.
  10. real-or-random commented at 4:03 pm on March 8, 2023: contributor
    Hm, do you think we should add a bold/whatever note to both of these changes that says that they’re API-incompatible?
  11. sipa commented at 4:12 pm on March 8, 2023: contributor
    @real-or-random You’re referring to the fact that cloning/destroying secp256k1_context_static is no longer allowed? I guess technically that is an API-incompatible change, but given that it’s behavior that we consider almost certainly misuse…
  12. hebasto commented at 4:17 pm on March 8, 2023: member
    Changes in configure.ac need to be mirrored into CMakeLists.txt.
  13. jonasnick force-pushed on Mar 8, 2023
  14. real-or-random commented at 4:43 pm on March 8, 2023: contributor

    @real-or-random You’re referring to the fact that cloning/destroying secp256k1_context_static is no longer allowed? I guess technically that is an API-incompatible change, but given that it’s behavior that we consider almost certainly misuse…

    That’s only part of the story. So yes, if you look at the Changelog, we even say “(If this change breaks your code, your code is probably wrong.)” But:

    • There’s also the change that randomizing secp256k1_context_static is no longer allowed. It was even documented in the API that you could call this on copies of secp256k1_context_static. It’s still unlikely that someone did this, but I think it’s hard to argue that it’s misuse.
    • We had a similar discussion before the 0.2.0 release, and we arrived at the conclusion that it is, in fact, better to merge #1170 only after the 0.2.0 release, so that we can increment the version number to communicate properly that we’re making API-inconsistent changes.
    • (Incrementing the version number is cheap. I doubt it will stop any users from updating, but maybe it draws their attention to the Changelog.)
  15. jonasnick commented at 4:48 pm on March 8, 2023: contributor

    Rebased.

    Changes in configure.ac need to be mirrored into CMakeLists.txt.

    This will need to be mentioned in the release_process.md. I updated VERSION and LIB_VERSION_*. Does CMake have an IS_RELEASE flag like configure.ac that I need to update as well?

    You’re referring to the fact that cloning/destroying secp256k1_context_static is no longer allowed? I guess technically that is an API-incompatible change, but given that it’s behavior that we consider almost certainly misuse…

    The semantic versioning spec says “Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API” (emphasis mine). We’re on major version 0 so anything can happen any time, but I’d prefer to have a consistent definition of backward incompatibility. Maybe it’s possible to view the changed behavior of cloning/destroying secp256k1_context_static as a bug fix, but right now in the CHANGELOG it’s clearly documented as a “change”.

  16. sipa commented at 4:48 pm on March 8, 2023: contributor
    @real-or-random @jonasnick Fair enough, agree on using 0.3.0.
  17. hebasto commented at 4:51 pm on March 8, 2023: member

    Does CMake have an IS_RELEASE flag like configure.ac that I need to update as well?

    No, it has not.

  18. hebasto commented at 5:01 pm on March 8, 2023: member

    From #1113 (comment) and #1113 (comment):

    • Changelog entry

    Sorry for not mentioning it at once.

  19. real-or-random commented at 5:02 pm on March 8, 2023: contributor

    From #1113 (comment) and #1113 (comment):

    • Changelog entry

    Sorry for not mentioning it at once.

    see #1225

  20. real-or-random commented at 5:04 pm on March 8, 2023: contributor

    Does CMake have an IS_RELEASE flag like configure.ac that I need to update as well?

    No, it has not.

    Good question! It seems that there’s no official flag so far. But fwiw, I’ve just subscribed to https://gitlab.kitware.com/cmake/cmake/-/issues/16716 and https://gitlab.kitware.com/cmake/cmake/-/issues/23649 which track support for suffixes like -dev.

  21. jonasnick force-pushed on Mar 8, 2023
  22. jonasnick commented at 6:16 pm on March 8, 2023: contributor

    Updated diff between make dist and clean checkout:

     0 diff -qr . ../../../secp256k1-clean
     1Only in .: aclocal.m4
     2Only in ./build-aux: ar-lib
     3Only in ./build-aux: compile
     4Only in ./build-aux: config.guess
     5Only in ./build-aux: config.sub
     6Only in ./build-aux: depcomp
     7Only in ./build-aux: install-sh
     8Only in ./build-aux: ltmain.sh
     9Only in ./build-aux/m4: libtool.m4
    10Only in ./build-aux/m4: lt~obsolete.m4
    11Only in ./build-aux/m4: ltoptions.m4
    12Only in ./build-aux/m4: ltsugar.m4
    13Only in ./build-aux/m4: ltversion.m4
    14Only in ./build-aux: missing
    15Only in ./build-aux: test-driver
    16Files ./CHANGELOG.md and ../../../secp256k1-clean/CHANGELOG.md differ
    17Only in ../../../secp256k1-clean: ci
    18Only in ../../../secp256k1-clean: .cirrus.yml
    19Only in ../../../secp256k1-clean: cmake
    20Only in ../../../secp256k1-clean: CMakeLists.txt
    21Only in .: configure
    22Files ./configure.ac and ../../../secp256k1-clean/configure.ac differ
    23Only in ../../../secp256k1-clean/examples: CMakeLists.txt
    24Only in ../../../secp256k1-clean: .git
    25Only in ../../../secp256k1-clean: .gitattributes
    26Only in ../../../secp256k1-clean: .gitignore
    27Only in .: Makefile.in
    28Only in ../../../secp256k1-clean/src: CMakeLists.txt
    
  23. jonasnick marked this as ready for review on Mar 8, 2023
  24. jonasnick cross-referenced this on Mar 8, 2023 from issue release cleanup: bump version after 0.3.0 by jonasnick
  25. jonasnick force-pushed on Mar 8, 2023
  26. real-or-random cross-referenced this on Mar 8, 2023 from issue build: Meta-issue for follow-ups to initial CMake merge (#1113) by real-or-random
  27. real-or-random approved
  28. real-or-random commented at 9:51 pm on March 8, 2023: contributor

    ACK 47c7219adaf403d606461bd324e78bdab53ae336

    (assuming #1229 is in)

  29. release: prepare for 0.3.0 b40adf2360
  30. jonasnick force-pushed on Mar 8, 2023
  31. jonasnick commented at 10:01 pm on March 8, 2023: contributor
    rebased
  32. real-or-random approved
  33. real-or-random commented at 10:02 pm on March 8, 2023: contributor
    ACK b40adf23604d4461f6a5a4af984f4d0c2f337933
  34. hebasto approved
  35. hebasto commented at 10:02 pm on March 8, 2023: member
    ACK b40adf23604d4461f6a5a4af984f4d0c2f337933
  36. sipa commented at 10:12 pm on March 8, 2023: contributor
    ACK b40adf23604d4461f6a5a4af984f4d0c2f337933
  37. jonasnick merged this on Mar 8, 2023
  38. jonasnick closed this on Mar 8, 2023

  39. sipa referenced this in commit 763079a3f1 on Mar 8, 2023
  40. real-or-random referenced this in commit 5658209459 on Mar 8, 2023
  41. real-or-random cross-referenced this on Mar 10, 2023 from issue build: Meta-issue for follow-ups to initial CMake merge (#1113) by hebasto
  42. div72 referenced this in commit 945b094575 on Mar 14, 2023
  43. vmta referenced this in commit e1120c94a1 on Jun 4, 2023
  44. vmta referenced this in commit 8f03457eed on Jul 1, 2023
  45. 6309304695 commented at 1:51 am on July 20, 2023: none
    secp256k1_recovery.h
  46. 6309304695 commented at 1:51 am on July 20, 2023: none
    secp256k1_recovery.h
  47. jonasnick cross-referenced this on Jul 21, 2023 from issue Upstream PRs 1113, 1225, 1227, 1229, 1223 by jonasnick

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 07:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me