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]
