shushenghong opened a new pull request, #76:
URL: https://github.com/apache/casbin-mongodb-adapter/pull/76

   ## Summary
   
   Upgrade the adapter from casbin/v2 to casbin/v3, and bump the module path 
from `v4` to `v5` accordingly.
   
   ## Why bump the major version
   
   casbin v3 is a breaking-change major release:
   
   - Imports move from `github.com/casbin/casbin/v2/...` to `v3/...`. Since 
`casbin/v2/persist.Adapter` and `casbin/v3/persist.Adapter` are distinct types 
in distinct packages (Go has no structural interface inheritance across module 
versions), an adapter built against v2 cannot satisfy v3's `persist.Adapter` 
interface and vice versa.
   - Several `Enforcer` methods (`GetPolicy`, `HasPolicy`, `GetAllRoles`, 
`GetAllSubjects`, ...) gained an `error` return value, breaking direct callers.
   
   By Go module semantic import versioning, downstream users importing the 
v2-based adapter (`mongodb-adapter/v4`) cannot transparently consume a v3-based 
adapter at the same import path. Therefore this adapter must also bump its 
major version: `v4` → `v5`.
   
   ## Changes
   
   - **`go.mod`**: module path `mongodb-adapter/v4` → `v5`; `casbin/v2 v2.71.1` 
→ `casbin/v3 v3.10.0`; refresh transitive deps (drop `Knetic/govaluate`, add 
`bmatcuk/doublestar/v4`, `casbin/govaluate v1.3.0`, `google/uuid`).
   - **`adapter.go`**: switch `model` / `persist` imports from `casbin/v2` to 
`v3`. The `Adapter` / `BatchAdapter` / `FilteredAdapter` / `UpdatableAdapter` 
interface signatures themselves are otherwise unchanged, so the adapter 
implementation needed no logic changes.
   - **`adapter_test.go`**: switch `casbin` and `util` imports to v3; adapt 
`testGetPolicy` / `testGetPolicyWithoutOrder` helpers to the new `GetPolicy() 
([][]string, error)` signature.
   - **`README.md`**: bump install command and example imports to `v5` / 
`casbin/v3`.
   
   ## Validation
   
   - `go build ./...` and `go vet ./...` pass.
   - `go test -count=1 -run='^$' ./...` (compile-only) passes.
   - Full integration tests still rely on a live MongoDB instance via 
`TEST_MONGODB_URL` / `TEST_REPLICA_SET_URL`; the existing 
`.github/workflows/ci.yml` should run them unchanged on the v3 codebase.
   
   ## Downstream context
   
   This unblocks `gorm-adapter/v3` users who already run on casbin v3 but have 
to keep an indirect `casbin/v2` dependency only because of this adapter (e.g. 
https://github.com/gun-go/sgo and similar frameworks dual-supporting SQL + 
Mongo policy storage end up shipping both v2 and v3 in the same binary today).
   
   ## Test plan
   
   - [ ] CI: confirm `go test -v ./...` passes against the bundled MongoDB / 
replica-set services.
   - [ ] Maintainer review of the major-version bump and release process 
(semantic-release config will need to consider that `v5` lives at this same 
repo path going forward).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to