This is an automated email from the ASF dual-hosted git repository.

hsluoyz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/casbin-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new f2b388d  ci: replace semantic-release with tag-driven manual release
f2b388d is described below

commit f2b388d856eb458fed6734acb939141d487c4e0c
Author: Yang Luo <[email protected]>
AuthorDate: Fri Aug 7 11:35:29 2026 +0800

    ci: replace semantic-release with tag-driven manual release
---
 .github/workflows/changelog.yml |  29 --
 .github/workflows/release.yml   | 105 +++++++-
 CHANGELOG.md                    | 581 ----------------------------------------
 3 files changed, 95 insertions(+), 620 deletions(-)

diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
deleted file mode 100644
index 24ae301..0000000
--- a/.github/workflows/changelog.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: Changelog Generator
-
-on:
-  release:
-    types: [created, edited]
-
-jobs:
-  generate_changelog_file:
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v4
-
-    - name: Setup ruby
-      uses: ruby/setup-ruby@v1
-      with:
-        ruby-version: 2.7
-        
-    - name: Install github_changelog_generator
-      run: gem install github_changelog_generator
-      
-    - name: Gen changelog
-      run: github_changelog_generator -t ${{ secrets.GITHUB_TOKEN }} -u casbin 
-p casbin-rs
-      
-    - name: Commit changes
-      uses: stefanzweifel/git-auto-commit-action@v4
-      with:
-        commit_message: 'changelog: auto update by ci'
-        file_pattern: CHANGELOG.md
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b143c15..41ab984 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,15 +1,100 @@
-name: Auto Release
+name: Release
+
+# Releases are cut by hand: nothing here runs on a merge, only on a pushed tag.
+#
+#   v1.4.0-rc1  ->  GitHub pre-release (the candidate put up for the Apache 
vote)
+#   v1.4.0      ->  GitHub release + publish to crates.io
+#
+# Either way the release carries an Apache-style source tarball as its only
+# asset. The release manager downloads that tarball and signs / checksums it
+# locally before starting the vote; nothing is signed or uploaded here.
 
 on:
-  workflow_run:
-    workflows: ["CI"]
-    types: [completed]
+  push:
+    tags:
+      - "v*"
+
+permissions:
+  contents: write
+
+env:
+  # Base name of the source release artifact, per Apache naming conventions.
+  ARTIFACT_BASENAME: apache-casbin-rust
 
 jobs:
   release:
-    if: ${{ github.repository == 'casbin/casbin-rs' &&  
github.event.workflow_run.conclusion == 'success' && 
github.event.workflow_run.event == 'push'}}
-    uses: 
casbin-rs/semantic-release-action-rust/.github/workflows/release-library.yml@master
-    with:
-      disable-semantic-release-git: true
-    secrets:
-      cargo-registry-token: ${{ secrets.CARGO_TOKEN }}
+    name: Release ${{ github.ref_name }}
+    if: github.repository == 'casbin/casbin-rs'
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout Repository
+        uses: actions/checkout@v4
+
+      - name: Resolve version from tag
+        id: version
+        run: |
+          set -euo pipefail
+          VERSION="${GITHUB_REF_NAME#v}"
+          # v1.4.0-rc1 -> 1.4.0. The tarball the PPMC votes on is the exact 
tarball
+          # that ships, so the candidate counter is never part of its name.
+          BASE_VERSION="${VERSION%%-rc*}"
+          if [ "$VERSION" = "$BASE_VERSION" ]; then
+            PRERELEASE=false
+          else
+            PRERELEASE=true
+          fi
+          # Anything that is neither vX.Y.Z nor vX.Y.Z-rcN is a typo, and a 
typo
+          # must not reach crates.io.
+          if ! echo "$VERSION" | grep -Eq 
'^[0-9]+\.[0-9]+\.[0-9]+(-rc[0-9]+)?$'; then
+            echo "::error::Tag $GITHUB_REF_NAME is not vX.Y.Z or vX.Y.Z-rcN."
+            exit 1
+          fi
+          {
+            echo "base_version=$BASE_VERSION"
+            echo "prerelease=$PRERELEASE"
+          } >> "$GITHUB_OUTPUT"
+          echo "Tag $GITHUB_REF_NAME -> version $BASE_VERSION (pre-release: 
$PRERELEASE)"
+
+      - name: Verify Cargo.toml matches the tag
+        run: |
+          set -euo pipefail
+          # Read [package].version directly rather than via cargo, which would
+          # write a Cargo.lock and leave the tree dirty for cargo publish.
+          CARGO_VERSION="$(awk '/^\[package\]/{p=1;next} /^\[/{p=0} p && 
/^version *=/{gsub(/[" ]/,"");sub(/^version=/,"");print;exit}' Cargo.toml)"
+          EXPECTED="${{ steps.version.outputs.base_version }}"
+          if [ "$CARGO_VERSION" != "$EXPECTED" ]; then
+            echo "::error::Cargo.toml says $CARGO_VERSION but the tag asks for 
$EXPECTED. Bump Cargo.toml, commit, then re-tag."
+            exit 1
+          fi
+
+      - name: Build source release tarball
+        id: package
+        run: |
+          set -euo pipefail
+          NAME="${ARTIFACT_BASENAME}-${{ steps.version.outputs.base_version 
}}-incubating-src"
+          ASSET="${RUNNER_TEMP}/${NAME}.tar.gz"
+          # git archive gives us exactly the tracked sources at this tag, 
unpacking
+          # into a single top-level directory named after the release. It is 
written
+          # outside the checkout so cargo publish still sees a clean tree.
+          git archive --format=tar.gz --prefix="$NAME/" -o "$ASSET" HEAD
+          echo "asset=$ASSET" >> "$GITHUB_OUTPUT"
+          ls -l "$ASSET"
+
+      - name: Publish GitHub release
+        env:
+          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          TAG: ${{ github.ref_name }}
+          ASSET: ${{ steps.package.outputs.asset }}
+        run: |
+          set -euo pipefail
+          FLAGS=(--title "$TAG" --generate-notes)
+          if [ "${{ steps.version.outputs.prerelease }}" = "true" ]; then
+            FLAGS+=(--prerelease)
+          fi
+          gh release create "$TAG" "$ASSET" "${FLAGS[@]}"
+
+      - name: Publish to crates.io
+        if: steps.version.outputs.prerelease == 'false'
+        env:
+          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }}
+        run: cargo publish
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 0b82c4f..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,581 +0,0 @@
-## [2.18.1](https://github.com/casbin/casbin-rs/compare/v2.18.0...v2.18.1) 
(2025-12-19)
-
-
-### Bug Fixes
-
-* remove "Deploy Docs to GitHub Pages" CI script and gh-pages branch 
([#411](https://github.com/casbin/casbin-rs/issues/411)) 
([aeb7fe0](https://github.com/casbin/casbin-rs/commit/aeb7fe0ab1452b3b5adfcca7b0f8eeb8c33e95da))
-
-# [2.18.0](https://github.com/casbin/casbin-rs/compare/v2.17.0...v2.18.0) 
(2025-12-19)
-
-
-### Bug Fixes
-
-* remove beta Rust version from CI 
([#409](https://github.com/casbin/casbin-rs/issues/409)) 
([f22f84c](https://github.com/casbin/casbin-rs/commit/f22f84c9003e30af4a21e3eb5d8cac495894a159))
-* remove irrelevant links in README 
([7272c2a](https://github.com/casbin/casbin-rs/commit/7272c2a7a1709b01b098b27bfcf0420a9e3d3ef9))
-
-
-### Features
-
-* fix FileAdapter CSV format to preserve spaces after commas 
([#407](https://github.com/casbin/casbin-rs/issues/407)) 
([5d0a915](https://github.com/casbin/casbin-rs/commit/5d0a9151136776648020fe1b68a568b5e6b282ac))
-
-# [2.17.0](https://github.com/casbin/casbin-rs/compare/v2.16.0...v2.17.0) 
(2025-11-04)
-
-
-### Features
-
-* use pre-compiled matchers to improve performance 
([#399](https://github.com/casbin/casbin-rs/issues/399)) 
([89524ae](https://github.com/casbin/casbin-rs/commit/89524ae83818600c6b09b77bfcfc1dc1c09e61e5))
-
-# [2.16.0](https://github.com/casbin/casbin-rs/compare/v2.15.0...v2.16.0) 
(2025-11-04)
-
-
-### Features
-
-* enhance performance by checking before allocation in default role manager 
([#398](https://github.com/casbin/casbin-rs/issues/398)) 
([b27b9d1](https://github.com/casbin/casbin-rs/commit/b27b9d15019972b8fd5197e23b1f7caadeaaa1f8))
-
-# [2.15.0](https://github.com/casbin/casbin-rs/compare/v2.14.0...v2.15.0) 
(2025-10-24)
-
-
-### Features
-
-* improve custom function support to accept Dynamic types instead of only 
ImmutableString ([#395](https://github.com/casbin/casbin-rs/issues/395)) 
([52bc1ad](https://github.com/casbin/casbin-rs/commit/52bc1ad57371aef1b16399cc0b5f338c4b484539))
-
-# [2.14.0](https://github.com/casbin/casbin-rs/compare/v2.13.0...v2.14.0) 
(2025-10-12)
-
-
-### Features
-
-* improve badges in README.md 
([35126d0](https://github.com/casbin/casbin-rs/commit/35126d060bcb7ecf252804a49e7f1cb0db1e2fef))
-
-# [2.13.0](https://github.com/casbin/casbin-rs/compare/v2.12.0...v2.13.0) 
(2025-09-24)
-
-
-### Features
-
-* **watcher:** Add notification payload to watcher callback signature 
([#392](https://github.com/casbin/casbin-rs/issues/392)) 
([ba57d3b](https://github.com/casbin/casbin-rs/commit/ba57d3b9630bd4c30e40d7f30af2d28c264c62b3))
-
-# [2.12.0](https://github.com/casbin/casbin-rs/compare/v2.11.0...v2.12.0) 
(2025-09-17)
-
-
-### Features
-
-* **rbac:** preload and propagate wildcard/pattern domain role links 
([#387](https://github.com/casbin/casbin-rs/issues/387)) 
([0d8b9db](https://github.com/casbin/casbin-rs/commit/0d8b9dbb4fdd3b3bb0ffa9cd30208ea20217869b))
-
-# [2.11.0](https://github.com/casbin/casbin-rs/compare/v2.10.1...v2.11.0) 
(2025-09-17)
-
-
-### Features
-
-* **ci:** update GitHub Actions and optimize CI configuration with code 
quality improvements ([#391](https://github.com/casbin/casbin-rs/issues/391)) 
([33c165a](https://github.com/casbin/casbin-rs/commit/33c165a3d30727dfd87c8c5363c7133c8e5d3ca2))
-
-## [2.10.1](https://github.com/casbin/casbin-rs/compare/v2.10.0...v2.10.1) 
(2025-02-04)
-
-
-### Bug Fixes
-
-* fix wrong range in push_index_if_explain marco 
([#370](https://github.com/casbin/casbin-rs/issues/370)) 
([89f9467](https://github.com/casbin/casbin-rs/commit/89f94679a98c7da316f280186f85de2e59959774))
-
-# [2.10.0](https://github.com/casbin/casbin-rs/compare/v2.9.0...v2.10.0) 
(2025-02-04)
-
-
-### Features
-
-* add condition to CI for auto release 
([#369](https://github.com/casbin/casbin-rs/issues/369)) 
([d692358](https://github.com/casbin/casbin-rs/commit/d6923586cbb998d26fba40fbc2c30fa8d02bf4b8))
-
-# Changelog
-
-## [Unreleased](https://github.com/casbin/casbin-rs/tree/HEAD)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v2.0.5...HEAD)
-
-**Implemented enhancements:**
-
-- Support policy.csv comment or YAML file adapter 
[\#213](https://github.com/casbin/casbin-rs/issues/213)
-
-## [v2.0.5](https://github.com/casbin/casbin-rs/tree/v2.0.5) (2020-12-24)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v2.0.3...v2.0.5)
-
-**Implemented enhancements:**
-
-- Add actix-casbin-auth to Actix official middleware list 
[\#92](https://github.com/casbin/casbin-rs/issues/92)
-
-**Fixed bugs:**
-
-- not currently running on the Tokio runtime on tonic 
[\#221](https://github.com/casbin/casbin-rs/issues/221)
-- CSV loader deletes double quotes 
[\#214](https://github.com/casbin/casbin-rs/issues/214)
-
-**Closed issues:**
-
-- Broken enforce with json string in 2.0 
[\#210](https://github.com/casbin/casbin-rs/issues/210)
-
-**Merged pull requests:**
-
-- revert tokio upgrade [\#223](https://github.com/casbin/casbin-rs/pull/223) 
([GopherJ](https://github.com/GopherJ))
-- fix\(csv\): shouldn't delete inner double quotes 
[\#216](https://github.com/casbin/casbin-rs/pull/216) 
([GopherJ](https://github.com/GopherJ))
-- feat: switch to lru [\#212](https://github.com/casbin/casbin-rs/pull/212) 
([PsiACE](https://github.com/PsiACE))
-- upgrade versions of rhai & tokio 
[\#211](https://github.com/casbin/casbin-rs/pull/211) 
([PsiACE](https://github.com/PsiACE))
-
-## [v2.0.3](https://github.com/casbin/casbin-rs/tree/v2.0.3) (2020-10-19)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v2.0.2...v2.0.3)
-
-## [v2.0.2](https://github.com/casbin/casbin-rs/tree/v2.0.2) (2020-09-19)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v2.0.1...v2.0.2)
-
-**Closed issues:**
-
-- setup clog-cli CI [\#205](https://github.com/casbin/casbin-rs/issues/205)
-
-**Merged pull requests:**
-
-- fix: wasm checking in CI 
[\#207](https://github.com/casbin/casbin-rs/pull/207) 
([GopherJ](https://github.com/GopherJ))
-- Automatic change log generation. 
[\#206](https://github.com/casbin/casbin-rs/pull/206) 
([PsiACE](https://github.com/PsiACE))
-
-## [v2.0.1](https://github.com/casbin/casbin-rs/tree/v2.0.1) (2020-08-30)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v2.0.0...v2.0.1)
-
-## [v2.0.0](https://github.com/casbin/casbin-rs/tree/v2.0.0) (2020-08-30)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v1.1.3...v2.0.0)
-
-**Implemented enhancements:**
-
-- support serializable struct to be passed as ABAC parameters 
[\#199](https://github.com/casbin/casbin-rs/issues/199)
-- pattern support in role manager 
[\#192](https://github.com/casbin/casbin-rs/issues/192)
-
-**Merged pull requests:**
-
-- Release v2.0.0 [\#204](https://github.com/casbin/casbin-rs/pull/204) 
([GopherJ](https://github.com/GopherJ))
-
-## [v1.1.3](https://github.com/casbin/casbin-rs/tree/v1.1.3) (2020-08-26)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v1.1.2...v1.1.3)
-
-**Implemented enhancements:**
-
-- structured logging [\#190](https://github.com/casbin/casbin-rs/issues/190)
-- add `EnforcerBuilder` type? 
[\#174](https://github.com/casbin/casbin-rs/issues/174)
-- casbin cache [\#171](https://github.com/casbin/casbin-rs/issues/171)
-- Make a Casbin middleware for Rocket.rs 
[\#93](https://github.com/casbin/casbin-rs/issues/93)
-- GSOC: Shared Redis TTL cache 
[\#83](https://github.com/casbin/casbin-rs/issues/83)
-
-## [v1.1.2](https://github.com/casbin/casbin-rs/tree/v1.1.2) (2020-07-20)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v1.1.1...v1.1.2)
-
-**Implemented enhancements:**
-
-- clear\_policy in adapter and enforcer 
[\#193](https://github.com/casbin/casbin-rs/issues/193)
-- Improve casbin-rs bench 
[\#109](https://github.com/casbin/casbin-rs/issues/109)
-
-**Fixed bugs:**
-
--  allowing the parsing of policy file to deal with commas inside columns 
[\#184](https://github.com/casbin/casbin-rs/issues/184)
-
-**Closed issues:**
-
-- re-exports rhai & add IEnforcer 
[\#197](https://github.com/casbin/casbin-rs/issues/197)
-- Filter should work with dynamic values \(&str instead of &'static str\) 
[\#195](https://github.com/casbin/casbin-rs/issues/195)
-
-**Merged pull requests:**
-
-- feat: re-exports rhai & add IEnforcer && bump version 
[\#198](https://github.com/casbin/casbin-rs/pull/198) 
([GopherJ](https://github.com/GopherJ))
-- Change Filter definition to support dynamic filter. 
[\#196](https://github.com/casbin/casbin-rs/pull/196) 
([bodymindarts](https://github.com/bodymindarts))
-
-## [v1.1.1](https://github.com/casbin/casbin-rs/tree/v1.1.1) (2020-07-18)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v1.1.0...v1.1.1)
-
-**Merged pull requests:**
-
-- Fix unhandled dquote [\#188](https://github.com/casbin/casbin-rs/pull/188) 
([GopherJ](https://github.com/GopherJ))
-- fix: add casbin-cpp to supported languages. 
[\#185](https://github.com/casbin/casbin-rs/pull/185) 
([divy9881](https://github.com/divy9881))
-
-## [v1.1.0](https://github.com/casbin/casbin-rs/tree/v1.1.0) (2020-07-14)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v1.0.0...v1.1.0)
-
-**Implemented enhancements:**
-
-- add cache for g function 
[\#175](https://github.com/casbin/casbin-rs/issues/175)
-
-**Closed issues:**
-
-- test issue-label-bot [\#178](https://github.com/casbin/casbin-rs/issues/178)
-- setup issue-label-bot [\#177](https://github.com/casbin/casbin-rs/issues/177)
-- GSOC & Non-GSOC: gitter team link 
[\#80](https://github.com/casbin/casbin-rs/issues/80)
-
-**Merged pull requests:**
-
-- Cache g [\#183](https://github.com/casbin/casbin-rs/pull/183) 
([GopherJ](https://github.com/GopherJ))
-- Update rhai requirement from 0.16.1 to 0.17.0 
[\#182](https://github.com/casbin/casbin-rs/pull/182) 
([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
-- Update rhai requirement from 0.15.1 to 0.16.1 
[\#179](https://github.com/casbin/casbin-rs/pull/179) 
([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
-
-## [v1.0.0](https://github.com/casbin/casbin-rs/tree/v1.0.0) (2020-06-18)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.9.3...v1.0.0)
-
-**Implemented enhancements:**
-
-- Make effector a stream to optimize enforcing speed by quick return 
[\#125](https://github.com/casbin/casbin-rs/issues/125)
-- split code into multiple features 
[\#97](https://github.com/casbin/casbin-rs/issues/97)
-- automate package release 
[\#90](https://github.com/casbin/casbin-rs/issues/90)
-
-**Closed issues:**
-
-- casbin cache [\#170](https://github.com/casbin/casbin-rs/issues/170)
--  Explain enforcement by informing matched rules 
[\#141](https://github.com/casbin/casbin-rs/issues/141)
-- Dont rebuild all role links 
[\#138](https://github.com/casbin/casbin-rs/issues/138)
-
-**Merged pull requests:**
-
-- Cleanup [\#173](https://github.com/casbin/casbin-rs/pull/173) 
([GopherJ](https://github.com/GopherJ))
-- add os matrix for CI [\#167](https://github.com/casbin/casbin-rs/pull/167) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.9.3](https://github.com/casbin/casbin-rs/tree/v0.9.3) (2020-05-25)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.9.2...v0.9.3)
-
-**Closed issues:**
-
-- Add AuthN & AuthZ sections for Rust in our awesome-auth list 
[\#160](https://github.com/casbin/casbin-rs/issues/160)
-
-**Merged pull requests:**
-
-- Change enforce and enforce\_mut to non-async. 
[\#166](https://github.com/casbin/casbin-rs/pull/166) 
([schungx](https://github.com/schungx))
-- remove explain relevant code when feature has been disabled 
[\#164](https://github.com/casbin/casbin-rs/pull/164) 
([GopherJ](https://github.com/GopherJ))
-- Speed improvements [\#163](https://github.com/casbin/casbin-rs/pull/163) 
([schungx](https://github.com/schungx))
-- Use eval\_expression to restrict to expressions only. 
[\#161](https://github.com/casbin/casbin-rs/pull/161) 
([schungx](https://github.com/schungx))
-
-## [v0.9.2](https://github.com/casbin/casbin-rs/tree/v0.9.2) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.9.1...v0.9.2)
-
-## [v0.9.1](https://github.com/casbin/casbin-rs/tree/v0.9.1) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.9.0...v0.9.1)
-
-## [v0.9.0](https://github.com/casbin/casbin-rs/tree/v0.9.0) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.7...v0.9.0)
-
-## [v0.8.7](https://github.com/casbin/casbin-rs/tree/v0.8.7) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.6...v0.8.7)
-
-**Merged pull requests:**
-
-- Fix/cargo toml version [\#156](https://github.com/casbin/casbin-rs/pull/156) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.8.6](https://github.com/casbin/casbin-rs/tree/v0.8.6) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.5...v0.8.6)
-
-## [v0.8.5](https://github.com/casbin/casbin-rs/tree/v0.8.5) (2020-05-13)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.4...v0.8.5)
-
-**Merged pull requests:**
-
-- fix: exec module not found 
[\#155](https://github.com/casbin/casbin-rs/pull/155) 
([GopherJ](https://github.com/GopherJ))
-- fix: semantic-release/exec-not-found 
[\#154](https://github.com/casbin/casbin-rs/pull/154) 
([GopherJ](https://github.com/GopherJ))
-- fix: semantic release [\#153](https://github.com/casbin/casbin-rs/pull/153) 
([GopherJ](https://github.com/GopherJ))
-- add status log [\#152](https://github.com/casbin/casbin-rs/pull/152) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.8.4](https://github.com/casbin/casbin-rs/tree/v0.8.4) (2020-05-12)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.3...v0.8.4)
-
-**Merged pull requests:**
-
-- fix cached enforcer mgmt event log 
[\#151](https://github.com/casbin/casbin-rs/pull/151) 
([GopherJ](https://github.com/GopherJ))
-- general improving [\#150](https://github.com/casbin/casbin-rs/pull/150) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.8.3](https://github.com/casbin/casbin-rs/tree/v0.8.3) (2020-05-12)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.2...v0.8.3)
-
-## [v0.8.2](https://github.com/casbin/casbin-rs/tree/v0.8.2) (2020-05-12)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.1...v0.8.2)
-
-**Merged pull requests:**
-
-- Explain [\#149](https://github.com/casbin/casbin-rs/pull/149) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.8.1](https://github.com/casbin/casbin-rs/tree/v0.8.1) (2020-05-12)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.8.0...v0.8.1)
-
-**Merged pull requests:**
-
-- Revert "Effector stream" 
[\#147](https://github.com/casbin/casbin-rs/pull/147) 
([GopherJ](https://github.com/GopherJ))
-- Revert "Fix: CI" [\#146](https://github.com/casbin/casbin-rs/pull/146) 
([GopherJ](https://github.com/GopherJ))
-- finish effector stream [\#145](https://github.com/casbin/casbin-rs/pull/145) 
([GopherJ](https://github.com/GopherJ))
-- Fix: CI [\#143](https://github.com/casbin/casbin-rs/pull/143) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.8.0](https://github.com/casbin/casbin-rs/tree/v0.8.0) (2020-05-11)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.6...v0.8.0)
-
-**Merged pull requests:**
-
-- Effector stream [\#142](https://github.com/casbin/casbin-rs/pull/142) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.7.6](https://github.com/casbin/casbin-rs/tree/v0.7.6) (2020-05-11)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.5...v0.7.6)
-
-## [v0.7.5](https://github.com/casbin/casbin-rs/tree/v0.7.5) (2020-05-11)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.4...v0.7.5)
-
-**Merged pull requests:**
-
-- Move build role links to internal 
[\#140](https://github.com/casbin/casbin-rs/pull/140) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.7.4](https://github.com/casbin/casbin-rs/tree/v0.7.4) (2020-05-10)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.2...v0.7.4)
-
-**Merged pull requests:**
-
-- Incremental build rolelinks 
[\#139](https://github.com/casbin/casbin-rs/pull/139) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.7.2](https://github.com/casbin/casbin-rs/tree/v0.7.2) (2020-05-10)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.1...v0.7.2)
-
-**Merged pull requests:**
-
-- Split code into features 
[\#137](https://github.com/casbin/casbin-rs/pull/137) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.7.1](https://github.com/casbin/casbin-rs/tree/v0.7.1) (2020-05-08)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.7.0...v0.7.1)
-
-**Merged pull requests:**
-
-- Fix: ClearCache log wasn't trigger 
[\#135](https://github.com/casbin/casbin-rs/pull/135) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.7.0](https://github.com/casbin/casbin-rs/tree/v0.7.0) (2020-05-08)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.6.2...v0.7.0)
-
-**Implemented enhancements:**
-
-- switch to smol when it's ready 
[\#130](https://github.com/casbin/casbin-rs/issues/130)
-
-**Closed issues:**
-
-- GSOC: logger system [\#84](https://github.com/casbin/casbin-rs/issues/84)
-- GSOC: actix actor,actix middleware 
[\#82](https://github.com/casbin/casbin-rs/issues/82)
-
-**Merged pull requests:**
-
-- Simple logger [\#134](https://github.com/casbin/casbin-rs/pull/134) 
([GopherJ](https://github.com/GopherJ))
-- remove circular link caused by pattern matching func 
[\#133](https://github.com/casbin/casbin-rs/pull/133) 
([GopherJ](https://github.com/GopherJ))
-- make enforce immutable and add enforce\_mut 
[\#132](https://github.com/casbin/casbin-rs/pull/132) 
([GopherJ](https://github.com/GopherJ))
-- fix stackoverflow when circular link detected 
[\#131](https://github.com/casbin/casbin-rs/pull/131) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.6.2](https://github.com/casbin/casbin-rs/tree/v0.6.2) (2020-05-01)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.6.1...v0.6.2)
-
-**Merged pull requests:**
-
-- fix get\_implicit\_users\_for\_permission api 
[\#129](https://github.com/casbin/casbin-rs/pull/129) 
([GopherJ](https://github.com/GopherJ))
-- upgrade rhai to 0.13.0 [\#128](https://github.com/casbin/casbin-rs/pull/128) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.6.1](https://github.com/casbin/casbin-rs/tree/v0.6.1) (2020-04-25)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.6.0...v0.6.1)
-
-**Merged pull requests:**
-
-- add simple quick return 
[\#126](https://github.com/casbin/casbin-rs/pull/126) 
([GopherJ](https://github.com/GopherJ))
-- add get\_all\_policy, get\_all\_grouping\_policy 
[\#124](https://github.com/casbin/casbin-rs/pull/124) 
([GopherJ](https://github.com/GopherJ))
-- POC try scaling abac rules 
[\#121](https://github.com/casbin/casbin-rs/pull/121) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.6.0](https://github.com/casbin/casbin-rs/tree/v0.6.0) (2020-04-18)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.5.2...v0.6.0)
-
-**Closed issues:**
-
-- Implement FilteredAdapter 
[\#79](https://github.com/casbin/casbin-rs/issues/79)
-- Roadmap for [email protected] 
[\#5](https://github.com/casbin/casbin-rs/issues/5)
-
-**Merged pull requests:**
-
-- Stable filtered adapter 
[\#120](https://github.com/casbin/casbin-rs/pull/120) 
([GopherJ](https://github.com/GopherJ))
-- Share engine [\#117](https://github.com/casbin/casbin-rs/pull/117) 
([GopherJ](https://github.com/GopherJ))
-- deactivate script functon, extra i8, i16...i128, and float math 
[\#116](https://github.com/casbin/casbin-rs/pull/116) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.5.2](https://github.com/casbin/casbin-rs/tree/v0.5.2) (2020-04-15)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.5.1...v0.5.2)
-
-**Closed issues:**
-
-- add github-action-benchmark 
[\#104](https://github.com/casbin/casbin-rs/issues/104)
-
-**Merged pull requests:**
-
-- use raw engine && bump version 
[\#115](https://github.com/casbin/casbin-rs/pull/115) 
([GopherJ](https://github.com/GopherJ))
-- add remove\_filtered\_policy details && enable\_auto\_notify\_watcher func… 
[\#113](https://github.com/casbin/casbin-rs/pull/113) 
([GopherJ](https://github.com/GopherJ))
-- Update rhai requirement from 0.11.1 to 0.12.0 
[\#111](https://github.com/casbin/casbin-rs/pull/111) 
([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
-- Improve/benchmark [\#110](https://github.com/casbin/casbin-rs/pull/110) 
([GopherJ](https://github.com/GopherJ))
-- add benchmarks [\#108](https://github.com/casbin/casbin-rs/pull/108) 
([GopherJ](https://github.com/GopherJ))
-- Add workflow for benchmark. 
[\#107](https://github.com/casbin/casbin-rs/pull/107) 
([PsiACE](https://github.com/PsiACE))
-
-## [v0.5.1](https://github.com/casbin/casbin-rs/tree/v0.5.1) (2020-04-12)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.5.0...v0.5.1)
-
-**Closed issues:**
-
-- considering trait inheritance 
[\#99](https://github.com/casbin/casbin-rs/issues/99)
-- Implement ABAC model [\#78](https://github.com/casbin/casbin-rs/issues/78)
-
-**Merged pull requests:**
-
-- Improve/watcher [\#106](https://github.com/casbin/casbin-rs/pull/106) 
([GopherJ](https://github.com/GopherJ))
-- Implement ABAC [\#102](https://github.com/casbin/casbin-rs/pull/102) 
([xcaptain](https://github.com/xcaptain))
-- use lazy static to avoid re-complilation of regex 
[\#96](https://github.com/casbin/casbin-rs/pull/96) 
([DevinR528](https://github.com/DevinR528))
-
-## [v0.5.0](https://github.com/casbin/casbin-rs/tree/v0.5.0) (2020-04-10)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.4.4...v0.5.0)
-
-**Closed issues:**
-
-- GSOC: tokio runtime, fully async adapter 
[\#81](https://github.com/casbin/casbin-rs/issues/81)
-
-**Merged pull requests:**
-
-- Improve/inheritance [\#103](https://github.com/casbin/casbin-rs/pull/103) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.4.4](https://github.com/casbin/casbin-rs/tree/v0.4.4) (2020-04-08)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.4.3...v0.4.4)
-
-**Closed issues:**
-
-- support pattern in role manager 
[\#94](https://github.com/casbin/casbin-rs/issues/94)
-- improve error handling [\#85](https://github.com/casbin/casbin-rs/issues/85)
-- Missing async support \(async-std + async adapter\) 
[\#43](https://github.com/casbin/casbin-rs/issues/43)
-
-**Merged pull requests:**
-
-- remove inMatch because rhai starts to support in operator since 0.11.1 
[\#98](https://github.com/casbin/casbin-rs/pull/98) 
([GopherJ](https://github.com/GopherJ))
-- add support of pattern [\#95](https://github.com/casbin/casbin-rs/pull/95) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.4.3](https://github.com/casbin/casbin-rs/tree/v0.4.3) (2020-04-06)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.4.2...v0.4.3)
-
-**Closed issues:**
-
-- implementation of `TryIntoAdapter` and `TryIntoModel` trait 
[\#70](https://github.com/casbin/casbin-rs/issues/70)
-- Missing logger support [\#51](https://github.com/casbin/casbin-rs/issues/51)
-
-**Merged pull requests:**
-
-- Improve/error handling [\#91](https://github.com/casbin/casbin-rs/pull/91) 
([GopherJ](https://github.com/GopherJ))
-- upgrade rhai to 0.11.1 to make Error Send, Sync 
[\#89](https://github.com/casbin/casbin-rs/pull/89) 
([GopherJ](https://github.com/GopherJ))
-- remove clones and string allocs, use macro for model retreval 
[\#87](https://github.com/casbin/casbin-rs/pull/87) 
([DevinR528](https://github.com/DevinR528))
-
-## [v0.4.2](https://github.com/casbin/casbin-rs/tree/v0.4.2) (2020-04-05)
-
-[Full Changelog](https://github.com/casbin/casbin-rs/compare/v0.4.1...v0.4.2)
-
-**Closed issues:**
-
-- Missing watcher support \(with a proper lock\) 
[\#46](https://github.com/casbin/casbin-rs/issues/46)
-
-**Merged pull requests:**
-
-- add TryIntoAdapter & TryIntoModel 
[\#86](https://github.com/casbin/casbin-rs/pull/86) 
([GopherJ](https://github.com/GopherJ))
-
-## [v0.4.1](https://github.com/casbin/casbin-rs/tree/v0.4.1) (2020-04-05)
-
-[Full 
Changelog](https://github.com/casbin/casbin-rs/compare/9e7ebbddb5b92b6aad27412fadd82115793ea07a...v0.4.1)
-
-**Implemented enhancements:**
-
-- Database transactions similar api `addPolicies`, `removePolicies`  
[\#55](https://github.com/casbin/casbin-rs/issues/55)
-- Diesel adapter is calling for contribution! 
[\#35](https://github.com/casbin/casbin-rs/issues/35)
-- Add a new from file api for model 
[\#32](https://github.com/casbin/casbin-rs/issues/32)
-- Consider default implement some APIs for Enforcer 
[\#31](https://github.com/casbin/casbin-rs/issues/31)
-- Rename the package name [\#30](https://github.com/casbin/casbin-rs/issues/30)
-- Refactor API structure [\#29](https://github.com/casbin/casbin-rs/issues/29)
-- Proper error handling \(eliminate unwrap calls\) 
[\#24](https://github.com/casbin/casbin-rs/issues/24)
-- Role inheritance problem in rbac.rs 
[\#7](https://github.com/casbin/casbin-rs/issues/7)
-
-**Fixed bugs:**
-
-- Relation to Devolutions/casbin-rs? 
[\#23](https://github.com/casbin/casbin-rs/issues/23)
-
-**Closed issues:**
-
-- covert rule: Vec\<&str\> to rule: Vec\<String\> 
[\#73](https://github.com/casbin/casbin-rs/issues/73)
-- Add Casbin-RS to our feature set table 
[\#71](https://github.com/casbin/casbin-rs/issues/71)
-- Consider using the subslice patterns 
[\#67](https://github.com/casbin/casbin-rs/issues/67)
-- Add unit tests for `addPolicies` and `removePolicies` 
[\#65](https://github.com/casbin/casbin-rs/issues/65)
-- Add an example to Actix web examples repo 
[\#63](https://github.com/casbin/casbin-rs/issues/63)
-- Automatically publish package to crate.io when a new git tag is created 
[\#58](https://github.com/casbin/casbin-rs/issues/58)
-- Add crates badge that linked to: https://crates.io/crates/casbin 
[\#54](https://github.com/casbin/casbin-rs/issues/54)
-- Missing cache support [\#45](https://github.com/casbin/casbin-rs/issues/45)
-- Use github actions to auto generate rust doc  
[\#33](https://github.com/casbin/casbin-rs/issues/33)
-- Add "Installation" and "Get started" in README. 
[\#27](https://github.com/casbin/casbin-rs/issues/27)
-- Should we stick with rust clippy 
[\#15](https://github.com/casbin/casbin-rs/issues/15)
-
-**Merged pull requests:**
-
-- add critcmp & insert into adapter before model 
[\#77](https://github.com/casbin/casbin-rs/pull/77) 
([GopherJ](https://github.com/GopherJ))
-- add glob\_match, make enforce function take only reference 
[\#76](https://github.com/casbin/casbin-rs/pull/76) 
([GopherJ](https://github.com/GopherJ))
-- Refactor: modify Vec\<&str\> to Vec\<String\> \(\#73\) 
[\#75](https://github.com/casbin/casbin-rs/pull/75) 
([hackerchai](https://github.com/hackerchai))
-- Benchmark [\#68](https://github.com/casbin/casbin-rs/pull/68) 
([DevinR528](https://github.com/DevinR528))
-- Added Unit Tests for `addPolicies` and `removePolicies` 
[\#66](https://github.com/casbin/casbin-rs/pull/66) 
([drholmie](https://github.com/drholmie))
-- Create release.yml [\#62](https://github.com/casbin/casbin-rs/pull/62) 
([PsiACE](https://github.com/PsiACE))
-- Update rustdoc workflow. [\#61](https://github.com/casbin/casbin-rs/pull/61) 
([PsiACE](https://github.com/PsiACE))
-- fix cache tests for runtime-tokio 
[\#60](https://github.com/casbin/casbin-rs/pull/60) 
([GopherJ](https://github.com/GopherJ))
-- Feature/model trait and add policies 
[\#59](https://github.com/casbin/casbin-rs/pull/59) 
([GopherJ](https://github.com/GopherJ))
-- Build docs [\#57](https://github.com/casbin/casbin-rs/pull/57) 
([PsiACE](https://github.com/PsiACE))
-- Add badges. [\#56](https://github.com/casbin/casbin-rs/pull/56) 
([PsiACE](https://github.com/PsiACE))
-- add async/await support [\#53](https://github.com/casbin/casbin-rs/pull/53) 
([GopherJ](https://github.com/GopherJ))
-- Add some keywords and readme and also optimize --release compiles 
[\#52](https://github.com/casbin/casbin-rs/pull/52) 
([omid](https://github.com/omid))
-- Feature/watcher and cache 
[\#50](https://github.com/casbin/casbin-rs/pull/50) 
([GopherJ](https://github.com/GopherJ))
-- fix more rbac apis \(add missing domain parameter\) & add prelude module 
[\#49](https://github.com/casbin/casbin-rs/pull/49) 
([GopherJ](https://github.com/GopherJ))
-- fix DefaultRoleManager::get\_users && add domain paramter to get\_roles… 
[\#48](https://github.com/casbin/casbin-rs/pull/48) 
([GopherJ](https://github.com/GopherJ))
-- using IndexSet to store policy in assertion 
[\#47](https://github.com/casbin/casbin-rs/pull/47) 
([GopherJ](https://github.com/GopherJ))
-- replace Box by Arc\<RwLock\> && add get\_model, get\_mut\_model for Model.… 
[\#44](https://github.com/casbin/casbin-rs/pull/44) 
([GopherJ](https://github.com/GopherJ))
-- Improve/add function and remove gg2 gg3 
[\#42](https://github.com/casbin/casbin-rs/pull/42) 
([GopherJ](https://github.com/GopherJ))
-- fix typo in load\_assertion 
[\#41](https://github.com/casbin/casbin-rs/pull/41) 
([zupzup](https://github.com/zupzup))
-- add in operator [\#40](https://github.com/casbin/casbin-rs/pull/40) 
([GopherJ](https://github.com/GopherJ))
-- apply new error type to enforcer,model,config... 
[\#39](https://github.com/casbin/casbin-rs/pull/39) 
([GopherJ](https://github.com/GopherJ))
-- remove Send & Sync marker to make it easier to construct error types 
[\#37](https://github.com/casbin/casbin-rs/pull/37) 
([GopherJ](https://github.com/GopherJ))
-- make CasbinResult public [\#36](https://github.com/casbin/casbin-rs/pull/36) 
([GopherJ](https://github.com/GopherJ))
-- update some metadata [\#34](https://github.com/casbin/casbin-rs/pull/34) 
([xcaptain](https://github.com/xcaptain))
-- Add some get started doc [\#28](https://github.com/casbin/casbin-rs/pull/28) 
([xcaptain](https://github.com/xcaptain))
-- Add multi-thread support [\#26](https://github.com/casbin/casbin-rs/pull/26) 
([xcaptain](https://github.com/xcaptain))
-- make g function support 2 or 3 parameters 
[\#22](https://github.com/casbin/casbin-rs/pull/22) 
([xcaptain](https://github.com/xcaptain))
-- Optimize role manager and add more rbac apis 
[\#20](https://github.com/casbin/casbin-rs/pull/20) 
([xcaptain](https://github.com/xcaptain))
-- add error handling [\#19](https://github.com/casbin/casbin-rs/pull/19) 
([xcaptain](https://github.com/xcaptain))
-- add auto\_save and auto\_build\_role\_links option in enforcer 
[\#17](https://github.com/casbin/casbin-rs/pull/17) 
([xcaptain](https://github.com/xcaptain))
-- resolve clippy warnings and add clippy to travis 
[\#16](https://github.com/casbin/casbin-rs/pull/16) 
([GopherJ](https://github.com/GopherJ))
-- Feature/enforcer rbac api 
[\#14](https://github.com/casbin/casbin-rs/pull/14) 
([xcaptain](https://github.com/xcaptain))
-- add unit tests for model and implement ip match 
[\#13](https://github.com/casbin/casbin-rs/pull/13) 
([GopherJ](https://github.com/GopherJ))
-- use Rc\<RefCell\<Role\>\> to store roles 
[\#9](https://github.com/casbin/casbin-rs/pull/9) 
([xcaptain](https://github.com/xcaptain))
-- add travis-ci and codecov badges 
[\#6](https://github.com/casbin/casbin-rs/pull/6) 
([xcaptain](https://github.com/xcaptain))
-- \[add\]: load\_model && load\_model\_from\_text 
[\#4](https://github.com/casbin/casbin-rs/pull/4) 
([GopherJ](https://github.com/GopherJ))
-- \[add\]: support for parsing config files with multiple lines 
[\#3](https://github.com/casbin/casbin-rs/pull/3) 
([GopherJ](https://github.com/GopherJ))
-- add a basic parsing functions for ini config file 
[\#2](https://github.com/casbin/casbin-rs/pull/2) 
([xcaptain](https://github.com/xcaptain))
-- add basic matching function for casbin 
[\#1](https://github.com/casbin/casbin-rs/pull/1) 
([xcaptain](https://github.com/xcaptain))
-
-
-
-\* *This Changelog was automatically generated by 
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*


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

Reply via email to