hyperledger / aries-cloudagent-python

Hyperledger Aries Cloud Agent Python (ACA-Py) is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://wiki.hyperledger.org/display/aries
Apache License 2.0
406 stars 510 forks source link

Prepare for Release 1.0.0 of ACA-Py #2753

Closed swcurran closed 1 month ago

swcurran commented 8 months ago

The following is a checklist of items to be completed for Release 1.0.0 of ACA-Py:

ff137 commented 4 months ago

I'd like to propose a few suggestions to consider for the 1.0.0 release:

Just some thoughts that came to mind! It's very much "nice to have" territory, but probably worth considering some of these before wanting to go maintenance mode.

WadeBarnes commented 4 months ago

I like the idea of upgrading the Python version.

swcurran commented 4 months ago

Thanks @ff137 — @dbluhm @jamshale @ianco and other maintainers, please weigh in on this either/both here and at the next ACA-Pug meeting.

jamshale commented 3 months ago

I'll be taking this over and trying to push the release forward. I like @ff137's suggestions and will be upgrading python and going over todo's and fixme's.

rngadam commented 1 month ago

README.md LTS section is not updated (still referencing 0.12 as Current LTS Release)

image

swcurran commented 1 month ago

That is correct — 1.0.0 has not yet been named an LTS. We are expecting a 1.0.1 very shortly, and perhaps then we’ll make it an LTS. At that time, the references you indicate will be updated. We probably can just go ahead with that, but we’re still getting used to the LTS process so waiting on a bit more feedback from the community :-).

rngadam commented 1 month ago

That is correct — 1.0.0 has not yet been named an LTS. We are expecting a 1.0.1 very shortly, and perhaps then we’ll make it an LTS. At that time, the references you indicate will be updated. We probably can just go ahead with that, but we’re still getting used to the LTS process so waiting on a bit more feedback from the community :-).

minor vs patch

If I refer to the LTS strategy documentation:

https://github.com/hyperledger/aries-cloudagent-python/blob/693dde06f02da0c7ee9334446b9e0bd07772d9ce/LTS-Strategy.md

Because a new major release typically has large new features that may not yet be tried by the user community, and because deployments may lag in support of the new release, it is not expected that a new major release (such as 1.0.0) will immediately be designated as a LTS release. Eventually, each major release (0.x.x, 1.x.x, 2.x.x etc.) will have at least one minor release designated by the ACA-Py maintainers as an "LTS release."

based on that reading:

https://semver.org/

Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes MINOR version when you add functionality in a backward compatible manner PATCH version when you make backward compatible bug fixes Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

interpretation

(views expressed are my own)

The MAJOR version is where breaking changes are introduced.

Both MINOR and PATCH are backward compatible changes.

For example:

But then, this particular PATCH is not something that we want backported to LTS release. So that means labeling every issue and associated PR requests to be MAJOR, MINOR or PATCH and identifying PATCH as LTS relevant or not.

swcurran commented 1 month ago

Yes, the LTS in this scenario would be “1.0”, with the branch occuring at the 1.0.1 release. The issue is at what point we declare the “LTS”. The maintainers agreed that doing so as a new major release occured would be a bad idea, in case an immediate breaking change occured requiring a 1.1.0 release after LTS was declared for 1.0. So we will wait a bit before the declaration.

Does that description still match your expectations?

rngadam commented 1 month ago

Yes, the LTS in this scenario would be “1.0”, with the branch occuring at the 1.0.1 release. The issue is at what point we declare the “LTS”. The maintainers agreed that doing so as a new major release occured would be a bad idea, in case an immediate breaking change occured requiring a 1.1.0 release after LTS was declared for 1.0. So we will wait a bit before the declaration.

Does that description still match your expectations?

Ah, ok! Yes, I understand now. Waiting for 1.0.1 is just giving an opportunity to find a major issue. If found, we restart the waiting period for the next MINOR and then PATCH bump.