Skip to content

Commit 17f3e2e

Browse files
committed
1.6.1rc0
Signed-off-by: Stephen Curran <swcurran@gmail.com>
1 parent 0d6983c commit 17f3e2e

9 files changed

Lines changed: 237 additions & 50 deletions

File tree

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
# ACA-Py Changelog
22

3+
## 1.6.1rc0
4+
5+
### July 21, 2026
6+
7+
ACA-Py 1.6.1rc0 includes fixes found from continued production use of the `askar-anoncreds` wallet migration and revocation processes, and a fix to bound the memory usage of record queries and maintenance/upgrade scans, improving stability for larger deployments. The multitenancy subwallet removal endpoint has been updated to use `DELETE` for REST consistency, with the previous `POST .../remove` endpoint now deprecated. Many `dependabot` PRs are included to keep dependencies current and secure.
8+
9+
Several PRs in this release complete the work to make ACA-Py 1.6 an official LTS release, with several fixes to the LTS CI/CD image tagging and publishing process
10+
11+
New governance documentation, including a Technical Charter and an OWF Project Mapping Document, are included.
12+
13+
### 1.6.1 Breaking Changes
14+
15+
There are no breaking changes in this release.
16+
17+
### 1.6.1 Deprecation Notices
18+
19+
The `acapy_agent.revocation_anoncreds` package has been deprecated and relocated to `acapy_agent.anoncreds.revocation` for improved consistency across the codebase. The change should only affect [ACA-Py Plugins] that implement AnonCreds, but other developers should also take note.
20+
21+
The `wallet-type` configuration value `askar` is now deprecated and all deployments still using that wallet type should migrate to either the `askar-anoncreds` or (ideally) `kanon-anoncreds` wallet types.
22+
23+
For REST consistency the `POST /multitenancy/wallet/{wallet_id}/remove` endpoint is deprecated, replaced with the `DELETE /multitenancy/wallet/{wallet_id}` endpoint. Implementers should update plugins and their own code to use the new endpoint. The old endpoint will be removed in a future release.
24+
25+
### 1.6.1 Categorized PR List
26+
27+
- **Core Platform and Multitenancy**
28+
- feat: use DELETE for multitenancy subwallet removal [\#4172](https://github.com/openwallet-foundation/acapy/pull/4172) [esune](https://github.com/esune)
29+
- fix: bound memory usage of record queries and maintenance/upgrade scans [\#4171](https://github.com/openwallet-foundation/acapy/pull/4171) [esune](https://github.com/esune)
30+
- **AnonCreds Revocation and Wallet Migration**
31+
- fix: Check RECORD_TYPE_ACAPY_UPGRADING type for clustered upgrade check [\#4167](https://github.com/openwallet-foundation/acapy/pull/4167) [jamshale](https://github.com/jamshale)
32+
- fix: complete stalled setup when activating a posted revocation registry [\#4164](https://github.com/openwallet-foundation/acapy/pull/4164) [kukgini](https://github.com/kukgini)
33+
- Fix anoncreds upgrade failure in-memory in-progress check [\#4163](https://github.com/openwallet-foundation/acapy/pull/4163) [jamshale](https://github.com/jamshale)
34+
- **Documentation and Governance**
35+
- docs: warn that the subwallet token endpoint invalidates previous tokens [\#4166](https://github.com/openwallet-foundation/acapy/pull/4166) [kukgini](https://github.com/kukgini)
36+
- Update README.md [\#4158](https://github.com/openwallet-foundation/acapy/pull/4158) [SeanBohan](https://github.com/SeanBohan)
37+
- Add ACA-Py OWF Project Mapping Document [\#4147](https://github.com/openwallet-foundation/acapy/pull/4147) [swcurran](https://github.com/swcurran)
38+
- Add Technical Charter plus minor updates to the Readme for the new Adaptive Cloud Agent-Python name [\#4143](https://github.com/openwallet-foundation/acapy/pull/4143) [swcurran](https://github.com/swcurran)
39+
- **LTS Release CI/CD**
40+
- Update LTS Docker image tag to py3.13-1.6-lts [\#4151](https://github.com/openwallet-foundation/acapy/pull/4151) [swcurran](https://github.com/swcurran)
41+
- fix(ci): use correct python version per LTS release when tagging images [\#4150](https://github.com/openwallet-foundation/acapy/pull/4150) [esune](https://github.com/esune)
42+
- Fix/lts release cicd [\#4149](https://github.com/openwallet-foundation/acapy/pull/4149) [esune](https://github.com/esune)
43+
- fix(ci): update python version in LTS image tagging to match publish workflow [\#4142](https://github.com/openwallet-foundation/acapy/pull/4142) [esune](https://github.com/esune)
44+
- Make ACA-Py 1.6 an LTS release [\#4127](https://github.com/openwallet-foundation/acapy/pull/4127) [swcurran](https://github.com/swcurran)
45+
- **Dependabot PRs**
46+
- [Link to list of Dependabot PRs in this release](https://github.com/openwallet-foundation/acapy/pulls?q=is%3Apr+is%3Amerged+merged%3A2026-04-01..2026-07-21+author%3Aapp%2Fdependabot+)
47+
- **Release management pull requests**:
48+
- 1.6.1rc0 [\#4178](https://github.com/openwallet-foundation/acapy/pull/4178) [swcurran](https://github.com/swcurran)
49+
350
## 1.6.0
451

552
### April 1, 2026

Managing-ACA-Py-Doc-Site.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ and mkdocs configuration.
2020

2121
When the GitHub Action fires, it runs a container that carries out the following steps:
2222

23-
- Checks out the triggering branch, either `main` or `docs-v<version>` (e.g `docs-v1.6.0`).
23+
- Checks out the triggering branch, either `main` or `docs-v<version>` (e.g `docs-v1.6.1`).
2424
- Runs the script [scripts/prepmkdocs.sh], which moves and updates some of the
2525
markdown files so that they fit into the generated site. See the comments in
2626
the scripts for details about the copying and editing done via the script. In
@@ -97,7 +97,7 @@ To delete the documentation version, do the following:
9797
- Check your `git status` and make sure there are no changes in the branch --
9898
e.g., new files that shouldn't be added to the `gh-pages` branch. If there are
9999
any -- delete the files so they are not added.
100-
- Remove the folder for the RC. For example `rm -rf 1.6.0rc0`
100+
- Remove the folder for the RC. For example `rm -rf 1.6.1rc0`
101101
- Edit the `versions.json` file and remove the reference to the RC release in
102102
the file.
103103
- Push the changes via a PR to the ACA-Py `gh-pages` branch (don't PR them into

PUBLISHING.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ a major, minor or patch release, per [semver](https://semver.org/) rules.
66

77
Once ready to do a release, create a local branch that includes the following updates:
88

9-
1. Create a local PR branch from an updated `main` branch, e.g. "1.6.0".
9+
1. Create a local PR branch from an updated `main` branch, e.g. "1.6.1".
1010

1111
2. See if there are any Document Site `mkdocs` changes needed. Run the script
1212
`./scripts/prepmkdocs.sh; mkdocs`. Watch the log, noting particularly if
@@ -120,7 +120,9 @@ For the build test, the RTD Sphinx theme needs to be added to the docker image,
120120

121121
Command: `cd acapy_agent;../scripts/generate-open-api-spec;cd ..`
122122

123-
Folders may not be cleaned up by the script, so the following can be run, likely with `sudo` -- `rm -rf open-api/.build`. The folder is `.gitignore`d, so there is not a danger they will be pushed, even if they are not deleted.
123+
Folders may not be cleaned up by the script, so the following can be run,
124+
likely with `sudo` -- `rm -rf open-api/.build`. The folder is `.gitignore`d,
125+
so there is not a danger they will be pushed, even if they are not deleted.
124126

125127
9. Double check all of these steps above, and then submit a PR from the branch.
126128
Add this new PR to CHANGELOG.md so that all the PRs are included.
@@ -154,15 +156,15 @@ For the build test, the RTD Sphinx theme needs to be added to the docker image,
154156

155157
Published images are automatically tagged with multiple tags for flexibility:
156158

157-
- **Regular Releases** (e.g., `1.6.0`):
158-
- `py3.12-1.6.0` - Python version specific tag
159-
- `1.6.0` - Semantic version tag
159+
- **Regular Releases** (e.g., `1.6.1`):
160+
- `py3.12-1.6.1` - Python version specific tag
161+
- `1.6.1` - Semantic version tag
160162
- `1.6` - Major.minor tag (moves to latest patch release)
161163
- `latest` - Only assigned if this is the highest semantic version
162164

163-
- **Release Candidates** (e.g., `1.6.0rc0`):
164-
- `py3.12-1.6.0rc0` - Python version specific RC tag
165-
- `1.6.0rc0` - Semantic version RC tag
165+
- **Release Candidates** (e.g., `1.6.1rc0`):
166+
- `py3.12-1.6.1rc0` - Python version specific RC tag
167+
- `1.6.1rc0` - Semantic version RC tag
166168
- **Note**: RC releases do NOT receive major.minor (`1.6`) or `latest` tags
167169

168170
The `latest` tag is explicitly managed by comparing semantic versions across all
@@ -172,7 +174,7 @@ For the build test, the RTD Sphinx theme needs to be added to the docker image,
172174

173175
**LTS (Long Term Support) Releases:**
174176

175-
LTS versions receive additional tags (e.g., `py3.12-0.12-lts`) that move to the
177+
LTS versions receive additional tags (e.g., `py3.12-1.6-lts`) that move to the
176178
latest patch release in that LTS line. LTS versions are configured in
177179
`.github/lts-versions.txt`. See `.github/LTS-README.md` for more details.
178180

@@ -187,7 +189,7 @@ For the build test, the RTD Sphinx theme needs to be added to the docker image,
187189
[publish.yml]: https://github.com/openwallet-foundation/acapy/blob/main/.github/workflows/publish.yml
188190

189191
13. When a new release is tagged, create a new branch at the same commit with
190-
the branch name in the format `docs-v<version>`, for example, `docs-v1.6.0rc0`.
192+
the branch name in the format `docs-v<version>`, for example, `docs-v1.6.1rc0`.
191193
The creation of the branch triggers the execution of the [publish-docs]
192194
GitHub Action which generates the documentation for the new release,
193195
publishing it at [https://aca-py.org]. The GitHub Action also executes when

docs/deploying/ContainerImagesAndGithubActions.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@ Click [here](https://github.com/openwallet-foundation/acapy/pkgs/container/acapy
4242

4343
The following is the ACA-Py container images tagging format:
4444

45-
**Regular Releases** (e.g., `1.6.0`):
46-
- `py3.12-1.6.0` - Python version specific tag
47-
- `1.6.0` - Semantic version tag
45+
**Regular Releases** (e.g., `1.6.1`):
46+
- `py3.12-1.6.1` - Python version specific tag
47+
- `1.6.1` - Semantic version tag
4848
- `1.6` - Major.minor tag (moves to latest patch release)
4949
- `latest` - Only assigned if this is the highest semantic version
5050

51-
**Release Candidates** (e.g., `1.6.0rc0`):
52-
- `py3.12-1.6.0rc0` - Python version specific RC tag
53-
- `1.6.0rc0` - Semantic version RC tag
51+
**Release Candidates** (e.g., `1.6.1rc0`):
52+
- `py3.12-1.6.1rc0` - Python version specific RC tag
53+
- `1.6.1rc0` - Semantic version RC tag
5454
- **Note**: RC releases do NOT receive major.minor (`1.6`) or `latest` tags
5555

5656
**Nightly Builds**:
5757
- `pyV.vv-nightly-YYYY-MM-DD` - Date-stamped nightly build
5858
- `pyV.vv-nightly` - Latest nightly build
5959

6060
**LTS ([Long Term Support](../../LTS-Strategy.md)) Releases**:
61-
- `pyV.vv-X.Y-lts` - LTS tag (e.g., `py3.12-0.12-lts`)
62-
- This tag automatically moves to the latest patch release in the LTS line (e.g., from `0.12.4` to `0.12.5`)
61+
- `pyV.vv-X.Y-lts` - LTS tag (e.g., `py3.12-1.6-lts`)
62+
- This tag automatically moves to the latest patch release in the LTS line (e.g., from `1.6.0` to `1.6.1`)
6363
- LTS versions are managed via the `.github/lts-versions.txt` configuration file
6464
- See `.github/LTS-README.md` for details on configuring LTS versions
6565

docs/features/PlugIns.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ When plugins are installed, ACA-Py logs detailed information including:
107107

108108
Example log output:
109109
```
110-
INFO: Auto-installing plugins from acapy-plugins repository: webvh, connection_update (current ACA-Py version (1.6.0))
111-
INFO: Installing plugin: webvh (version: 1.6.0)
112-
INFO: Successfully installed plugin: webvh (version: 1.6.0)
110+
INFO: Auto-installing plugins from acapy-plugins repository: webvh, connection_update (current ACA-Py version (1.6.1))
111+
INFO: Installing plugin: webvh (version: 1.6.1)
112+
INFO: Successfully installed plugin: webvh (version: 1.6.1)
113113
```
114114

115115
### Checking Installed Plugin Versions

docs/features/SupportedRFCs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ACA-Py or the repository `main` branch. Reminders (and PRs!) to update this page
88
welcome! If you have any questions, please contact us on the #aries channel on
99
[OpenWallet Foundation Discord](https://discord.gg/openwallet-foundation) or through an issue in this repo.
1010

11-
**Last Update**: 2026-04-01, Release 1.6.0
11+
**Last Update**: 2026-07-21, Release 1.6.1rc0
1212

1313
> The checklist version of this document was created as a joint effort
1414
> between [Northern Block](https://northernblock.io/), [Animo Solutions](https://animo.id/) and the Ontario government, on behalf of the Ontario government.

open-api/openapi.json

Lines changed: 96 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openapi" : "3.0.1",
33
"info" : {
44
"title" : "Aries Cloud Agent",
5-
"version" : "v1.6.0"
5+
"version" : "v1.6.1rc0"
66
},
77
"servers" : [ {
88
"url" : "/"
@@ -3470,6 +3470,42 @@
34703470
"schema" : {
34713471
"type" : "string"
34723472
}
3473+
}, {
3474+
"description" : "Order results in descending order if true",
3475+
"in" : "query",
3476+
"name" : "descending",
3477+
"schema" : {
3478+
"default" : false,
3479+
"type" : "boolean"
3480+
}
3481+
}, {
3482+
"description" : "Number of results to return",
3483+
"in" : "query",
3484+
"name" : "limit",
3485+
"schema" : {
3486+
"default" : 100,
3487+
"maximum" : 10000,
3488+
"minimum" : 1,
3489+
"type" : "integer"
3490+
}
3491+
}, {
3492+
"description" : "Offset for pagination",
3493+
"in" : "query",
3494+
"name" : "offset",
3495+
"schema" : {
3496+
"default" : 0,
3497+
"minimum" : 0,
3498+
"type" : "integer"
3499+
}
3500+
}, {
3501+
"description" : "The column to order results by. Only \"id\" is currently supported.",
3502+
"in" : "query",
3503+
"name" : "order_by",
3504+
"schema" : {
3505+
"default" : "id",
3506+
"enum" : [ "id" ],
3507+
"type" : "string"
3508+
}
34733509
}, {
34743510
"description" : "Filer on role, 'client' for keys mediated by other agents, 'server' for keys mediated by this agent",
34753511
"in" : "query",
@@ -3872,7 +3908,7 @@
38723908
}
38733909
},
38743910
"/multitenancy/wallet/{wallet_id}" : {
3875-
"get" : {
3911+
"delete" : {
38763912
"parameters" : [ {
38773913
"description" : "Subwallet identifier",
38783914
"in" : "path",
@@ -3882,22 +3918,33 @@
38823918
"type" : "string"
38833919
}
38843920
} ],
3921+
"requestBody" : {
3922+
"content" : {
3923+
"*/*" : {
3924+
"schema" : {
3925+
"$ref" : "#/components/schemas/RemoveWalletRequest"
3926+
}
3927+
}
3928+
},
3929+
"required" : false
3930+
},
38853931
"responses" : {
38863932
"200" : {
38873933
"content" : {
38883934
"application/json" : {
38893935
"schema" : {
3890-
"$ref" : "#/components/schemas/WalletRecord"
3936+
"$ref" : "#/components/schemas/MultitenantModuleResponse"
38913937
}
38923938
}
38933939
},
38943940
"description" : ""
38953941
}
38963942
},
3897-
"summary" : "Get a single subwallet",
3898-
"tags" : [ "multitenancy" ]
3943+
"summary" : "Remove a subwallet",
3944+
"tags" : [ "multitenancy" ],
3945+
"x-codegen-request-body-name" : "body"
38993946
},
3900-
"put" : {
3947+
"get" : {
39013948
"parameters" : [ {
39023949
"description" : "Subwallet identifier",
39033950
"in" : "path",
@@ -3907,16 +3954,6 @@
39073954
"type" : "string"
39083955
}
39093956
} ],
3910-
"requestBody" : {
3911-
"content" : {
3912-
"*/*" : {
3913-
"schema" : {
3914-
"$ref" : "#/components/schemas/UpdateWalletRequest"
3915-
}
3916-
}
3917-
},
3918-
"required" : false
3919-
},
39203957
"responses" : {
39213958
"200" : {
39223959
"content" : {
@@ -3929,11 +3966,10 @@
39293966
"description" : ""
39303967
}
39313968
},
3932-
"summary" : "Update a subwallet",
3933-
"tags" : [ "multitenancy" ],
3934-
"x-codegen-request-body-name" : "body"
3969+
"summary" : "Get a single subwallet",
3970+
"tags" : [ "multitenancy" ]
39353971
},
3936-
"delete" : {
3972+
"put" : {
39373973
"parameters" : [ {
39383974
"description" : "Subwallet identifier",
39393975
"in" : "path",
@@ -3947,7 +3983,7 @@
39473983
"content" : {
39483984
"*/*" : {
39493985
"schema" : {
3950-
"$ref" : "#/components/schemas/RemoveWalletRequest"
3986+
"$ref" : "#/components/schemas/UpdateWalletRequest"
39513987
}
39523988
}
39533989
},
@@ -3958,14 +3994,14 @@
39583994
"content" : {
39593995
"application/json" : {
39603996
"schema" : {
3961-
"$ref" : "#/components/schemas/MultitenantModuleResponse"
3997+
"$ref" : "#/components/schemas/WalletRecord"
39623998
}
39633999
}
39644000
},
39654001
"description" : ""
39664002
}
39674003
},
3968-
"summary" : "Remove a subwallet",
4004+
"summary" : "Update a subwallet",
39694005
"tags" : [ "multitenancy" ],
39704006
"x-codegen-request-body-name" : "body"
39714007
}
@@ -4011,6 +4047,7 @@
40114047
},
40124048
"/multitenancy/wallet/{wallet_id}/token" : {
40134049
"post" : {
4050+
"description" : "Issue a new auth token for a subwallet. Issuing a new token invalidates any token previously issued for the wallet: only the most recently issued token is valid. Do not call this endpoint if another client may still be using a previously issued token for the wallet.",
40144051
"parameters" : [ {
40154052
"in" : "path",
40164053
"name" : "wallet_id",
@@ -5070,6 +5107,42 @@
50705107
"pattern" : "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$",
50715108
"type" : "string"
50725109
}
5110+
}, {
5111+
"description" : "Order results in descending order if true",
5112+
"in" : "query",
5113+
"name" : "descending",
5114+
"schema" : {
5115+
"default" : false,
5116+
"type" : "boolean"
5117+
}
5118+
}, {
5119+
"description" : "Number of results to return",
5120+
"in" : "query",
5121+
"name" : "limit",
5122+
"schema" : {
5123+
"default" : 100,
5124+
"maximum" : 10000,
5125+
"minimum" : 1,
5126+
"type" : "integer"
5127+
}
5128+
}, {
5129+
"description" : "Offset for pagination",
5130+
"in" : "query",
5131+
"name" : "offset",
5132+
"schema" : {
5133+
"default" : 0,
5134+
"minimum" : 0,
5135+
"type" : "integer"
5136+
}
5137+
}, {
5138+
"description" : "The column to order results by. Only \"id\" is currently supported.",
5139+
"in" : "query",
5140+
"name" : "order_by",
5141+
"schema" : {
5142+
"default" : "id",
5143+
"enum" : [ "id" ],
5144+
"type" : "string"
5145+
}
50735146
}, {
50745147
"description" : "Revocation registry state",
50755148
"in" : "query",

0 commit comments

Comments
 (0)