Ver código fonte

Merge pull request #11751 from zmstone/1011-refactor-move-emqx_license-app-to-apps

1011 refactor move emqx_license app to apps
Zaiming (Stone) Shi 2 anos atrás
pai
commit
dd03be29a6
39 arquivos alterados com 22 adições e 75 exclusões
  1. 1 1
      .github/workflows/static_checks.yaml
  2. 1 1
      Makefile
  3. 0 0
      apps/emqx_license/.gitignore
  4. 0 0
      apps/emqx_license/BSL.txt
  5. 0 0
      apps/emqx_license/README.md
  6. 0 0
      apps/emqx_license/etc/emqx_license.conf
  7. 0 0
      apps/emqx_license/include/emqx_license.hrl
  8. 0 0
      apps/emqx_license/rebar.config
  9. 0 0
      apps/emqx_license/src/emqx_license.app.src
  10. 0 0
      apps/emqx_license/src/emqx_license.erl
  11. 0 0
      apps/emqx_license/src/emqx_license_app.erl
  12. 0 0
      apps/emqx_license/src/emqx_license_checker.erl
  13. 0 0
      apps/emqx_license/src/emqx_license_cli.erl
  14. 0 0
      apps/emqx_license/src/emqx_license_http_api.erl
  15. 0 0
      apps/emqx_license/src/emqx_license_parser.erl
  16. 0 0
      apps/emqx_license/src/emqx_license_parser_v20220101.erl
  17. 0 0
      apps/emqx_license/src/emqx_license_resources.erl
  18. 0 0
      apps/emqx_license/src/emqx_license_schema.erl
  19. 0 0
      apps/emqx_license/src/emqx_license_sup.erl
  20. 0 0
      apps/emqx_license/src/proto/emqx_license_proto_v1.erl
  21. 0 0
      apps/emqx_license/src/proto/emqx_license_proto_v2.erl
  22. 0 0
      apps/emqx_license/test/data/emqx.lic
  23. 0 0
      apps/emqx_license/test/data/pub.pem
  24. 0 0
      apps/emqx_license/test/data/pvt.key
  25. 0 0
      apps/emqx_license/test/emqx_license_SUITE.erl
  26. 0 0
      apps/emqx_license/test/emqx_license_checker_SUITE.erl
  27. 0 0
      apps/emqx_license/test/emqx_license_cli_SUITE.erl
  28. 0 0
      apps/emqx_license/test/emqx_license_http_api_SUITE.erl
  29. 0 0
      apps/emqx_license/test/emqx_license_parser_SUITE.erl
  30. 0 0
      apps/emqx_license/test/emqx_license_resources_SUITE.erl
  31. 0 0
      apps/emqx_license/test/emqx_license_test_lib.erl
  32. 0 7
      dev
  33. 1 1
      elvis.config
  34. 4 17
      mix.exs
  35. 3 8
      rebar.config.erl
  36. 1 3
      scripts/check-deps-integrity.escript
  37. 9 24
      scripts/ct/run.sh
  38. 1 6
      scripts/find-apps.sh
  39. 1 7
      scripts/update-appup.sh

+ 1 - 1
.github/workflows/static_checks.yaml

@@ -43,7 +43,7 @@ jobs:
       - uses: actions/cache@v3
         with:
           path: "emqx_dialyzer_${{ matrix.otp }}_plt"
-          key: rebar3-dialyzer-plt-${{ matrix.profile }}-${{ matrix.otp }}-${{ hashFiles('rebar.*', 'apps/*/rebar.*', 'lib-ee/*/rebar.*') }}
+          key: rebar3-dialyzer-plt-${{ matrix.profile }}-${{ matrix.otp }}-${{ hashFiles('rebar.*', 'apps/*/rebar.*') }}
           restore-keys: |
             rebar3-dialyzer-plt-${{ matrix.profile }}-${{ matrix.otp }}-
       - name: run static checks

+ 1 - 1
Makefile

@@ -296,7 +296,7 @@ $(foreach tt,$(ALL_ELIXIR_TGZS),$(eval $(call gen-elixir-tgz-target,$(tt))))
 
 .PHONY: fmt
 fmt: $(REBAR)
-	@$(SCRIPTS)/erlfmt -w '{apps,lib-ee}/*/{src,include,priv,test,integration_test}/**/*.{erl,hrl,app.src,eterm}'
+	@$(SCRIPTS)/erlfmt -w 'apps/*/{src,include,priv,test,integration_test}/**/*.{erl,hrl,app.src,eterm}'
 	@$(SCRIPTS)/erlfmt -w 'rebar.config.erl'
 	@mix format
 

lib-ee/emqx_license/.gitignore → apps/emqx_license/.gitignore


lib-ee/BSL.txt → apps/emqx_license/BSL.txt


lib-ee/emqx_license/README.md → apps/emqx_license/README.md


lib-ee/emqx_license/etc/emqx_license.conf → apps/emqx_license/etc/emqx_license.conf


lib-ee/emqx_license/include/emqx_license.hrl → apps/emqx_license/include/emqx_license.hrl


lib-ee/emqx_license/rebar.config → apps/emqx_license/rebar.config


lib-ee/emqx_license/src/emqx_license.app.src → apps/emqx_license/src/emqx_license.app.src


lib-ee/emqx_license/src/emqx_license.erl → apps/emqx_license/src/emqx_license.erl


lib-ee/emqx_license/src/emqx_license_app.erl → apps/emqx_license/src/emqx_license_app.erl


lib-ee/emqx_license/src/emqx_license_checker.erl → apps/emqx_license/src/emqx_license_checker.erl


lib-ee/emqx_license/src/emqx_license_cli.erl → apps/emqx_license/src/emqx_license_cli.erl


lib-ee/emqx_license/src/emqx_license_http_api.erl → apps/emqx_license/src/emqx_license_http_api.erl


lib-ee/emqx_license/src/emqx_license_parser.erl → apps/emqx_license/src/emqx_license_parser.erl


lib-ee/emqx_license/src/emqx_license_parser_v20220101.erl → apps/emqx_license/src/emqx_license_parser_v20220101.erl


lib-ee/emqx_license/src/emqx_license_resources.erl → apps/emqx_license/src/emqx_license_resources.erl


lib-ee/emqx_license/src/emqx_license_schema.erl → apps/emqx_license/src/emqx_license_schema.erl


lib-ee/emqx_license/src/emqx_license_sup.erl → apps/emqx_license/src/emqx_license_sup.erl


lib-ee/emqx_license/src/proto/emqx_license_proto_v1.erl → apps/emqx_license/src/proto/emqx_license_proto_v1.erl


lib-ee/emqx_license/src/proto/emqx_license_proto_v2.erl → apps/emqx_license/src/proto/emqx_license_proto_v2.erl


lib-ee/emqx_license/test/data/emqx.lic → apps/emqx_license/test/data/emqx.lic


lib-ee/emqx_license/test/data/pub.pem → apps/emqx_license/test/data/pub.pem


lib-ee/emqx_license/test/data/pvt.key → apps/emqx_license/test/data/pvt.key


lib-ee/emqx_license/test/emqx_license_SUITE.erl → apps/emqx_license/test/emqx_license_SUITE.erl


lib-ee/emqx_license/test/emqx_license_checker_SUITE.erl → apps/emqx_license/test/emqx_license_checker_SUITE.erl


lib-ee/emqx_license/test/emqx_license_cli_SUITE.erl → apps/emqx_license/test/emqx_license_cli_SUITE.erl


lib-ee/emqx_license/test/emqx_license_http_api_SUITE.erl → apps/emqx_license/test/emqx_license_http_api_SUITE.erl


lib-ee/emqx_license/test/emqx_license_parser_SUITE.erl → apps/emqx_license/test/emqx_license_parser_SUITE.erl


lib-ee/emqx_license/test/emqx_license_resources_SUITE.erl → apps/emqx_license/test/emqx_license_resources_SUITE.erl


lib-ee/emqx_license/test/emqx_license_test_lib.erl → apps/emqx_license/test/emqx_license_test_lib.erl


+ 0 - 7
dev

@@ -336,13 +336,6 @@ copy_other_conf_files() {
 is_current_profile_app() {
     local app="$1"
     case "$app" in
-        lib-ee*)
-            if [ "$PROFILE" = 'emqx-enterprise' ]; then
-                return 0
-            else
-                return 1
-            fi
-            ;;
         *emqx_telemetry*)
             if [ "$PROFILE" = 'emqx-enterprise' ]; then
                 return 1

+ 1 - 1
elvis.config

@@ -5,7 +5,7 @@
    [
     {config,
      [
-      #{dirs => ["src", "apps/**/src", "lib-ee/**/src"],
+      #{dirs => ["src", "apps/**/src"],
         filter => "*.erl",
         ruleset => erl_files,
         rules => [

+ 4 - 17
mix.exs

@@ -169,24 +169,10 @@ defmodule EMQXUmbrella.MixProject do
   end
 
   defp enterprise_apps(_profile_info = %{edition_type: :enterprise}) do
-    umbrella_apps =
-      Enum.map(enterprise_umbrella_apps(), fn app_name ->
-        path = "apps/#{app_name}"
-        {app_name, path: path, manager: :rebar3, override: true}
-      end)
-
-    "lib-ee/*"
-    |> Path.wildcard()
-    |> Enum.filter(&File.dir?/1)
-    |> Enum.map(fn path ->
-      app =
-        path
-        |> Path.basename()
-        |> String.to_atom()
-
-      {app, path: path, manager: :rebar3, override: true}
+    Enum.map(enterprise_umbrella_apps(), fn app_name ->
+      path = "apps/#{app_name}"
+      {app_name, path: path, manager: :rebar3, override: true}
     end)
-    |> Enum.concat(umbrella_apps)
   end
 
   defp enterprise_apps(_profile_info) do
@@ -220,6 +206,7 @@ defmodule EMQXUmbrella.MixProject do
       :emqx_bridge_rabbitmq,
       :emqx_bridge_clickhouse,
       :emqx_ft,
+      :emqx_license,
       :emqx_s3,
       :emqx_schema_registry,
       :emqx_enterprise,

+ 3 - 8
rebar.config.erl

@@ -164,11 +164,7 @@ project_app_dirs(Edition) ->
      || Path <- filelib:wildcard("apps/*"),
         is_community_umbrella_app(Path) orelse IsEnterprise
     ],
-    UmbrellaApps ++
-        case IsEnterprise of
-            true -> ["lib-ee/*"];
-            false -> []
-        end.
+    UmbrellaApps.
 
 plugins() ->
     [
@@ -539,8 +535,7 @@ provide_bcrypt_release(ReleaseType) ->
 
 erl_opts_i() ->
     [{i, "apps"}] ++
-        [{i, Dir} || Dir <- filelib:wildcard(filename:join(["apps", "*", "include"]))] ++
-        [{i, Dir} || Dir <- filelib:wildcard(filename:join(["lib-ee", "*", "include"]))].
+        [{i, Dir} || Dir <- filelib:wildcard(filename:join(["apps", "*", "include"]))].
 
 dialyzer(Config) ->
     {dialyzer, OldDialyzerConfig} = lists:keyfind(dialyzer, 1, Config),
@@ -597,7 +592,7 @@ coveralls() ->
             []
     end.
 
-app_names() -> list_dir("apps") ++ list_dir("lib-ee").
+app_names() -> list_dir("apps").
 
 list_dir(Dir) ->
     case filelib:is_dir(Dir) of

+ 1 - 3
scripts/check-deps-integrity.escript

@@ -5,9 +5,7 @@
 -mode(compile).
 
 main([]) ->
-    Files = ["rebar.config"] ++
-            apps_rebar_config("apps") ++
-            apps_rebar_config("lib-ee"),
+    Files = ["rebar.config"] ++ apps_rebar_config("apps"),
     Deps = collect_deps(Files, #{}),
     case count_bad_deps(Deps) of
         0 ->

+ 9 - 24
scripts/ct/run.sh

@@ -98,33 +98,18 @@ if [ ! -d "${WHICH_APP}" ]; then
     exit 1
 fi
 
-if [[ "${WHICH_APP}" == lib-ee* && (-z "${PROFILE+x}" || "${PROFILE}" != emqx-enterprise) ]]; then
-    echo 'You are trying to run an enterprise test case without the emqx-enterprise profile.'
-    echo 'This will most likely not work.'
-    echo ''
-    echo 'Run "export PROFILE=emqx-enterprise" and "make" to fix this'
-    exit 1
-fi
-
 ERLANG_CONTAINER='erlang'
 DOCKER_CT_ENVS_FILE="${WHICH_APP}/docker-ct"
 
-case "${WHICH_APP}" in
-    lib-ee*)
-        ## ensure enterprise profile when testing lib-ee applications
-        export PROFILE='emqx-enterprise'
-        ;;
-    apps/*)
-        if [[ -f "${WHICH_APP}/BSL.txt" ]]; then
-          export PROFILE='emqx-enterprise'
-        else
-          export PROFILE='emqx'
-        fi
-        ;;
-    *)
-        export PROFILE="${PROFILE:-emqx}"
-        ;;
-esac
+if [ -f "${WHICH_APP}/BSL.txt" ]; then
+    if [ -n "${PROFILE:-}" ] && [ "${PROFILE}" != 'emqx-enterprise' ]; then
+        echo "bad_profile: PROFILE=${PROFILE} will not work for app ${WHICH_APP}"
+        exit 1
+    fi
+    export PROFILE='emqx-enterprise'
+else
+    export PROFILE='emqx'
+fi
 
 if [ -f "$DOCKER_CT_ENVS_FILE" ]; then
     # shellcheck disable=SC2002

+ 1 - 6
scripts/find-apps.sh

@@ -41,9 +41,7 @@ find_app() {
     "$FIND" "${appdir}" -mindepth 1 -maxdepth 1 -type d
 }
 
-CE="$(find_app 'apps')"
-EE="$(find_app 'lib-ee')"
-APPS_ALL="$(echo -e "${CE}\n${EE}")"
+APPS_ALL="$(find_app 'apps')"
 
 if [ "$MODE" = 'list' ]; then
     echo "${APPS_ALL}"
@@ -87,9 +85,6 @@ describe_app() {
               profile='emqx'
             fi
             ;;
-        lib-ee/*)
-            profile='emqx-enterprise'
-            ;;
         *)
             echo "unknown app: $app"
             exit 1

+ 1 - 7
scripts/update-appup.sh

@@ -72,12 +72,6 @@ while [ "$#" -gt 0 ]; do
   esac
 done
 
-if [ "$TAG_PREFIX" = 'v' ]; then
-    SRC_DIRS="{apps}"
-else
-    SRC_DIRS="{apps,lib-ee}"
-fi
-
 ## make sure we build here in bash and always pass --skip-build to escript
 if [ "${SKIP_BUILD:-}" != 'yes' ]; then
     make "${PROFILE}"
@@ -114,7 +108,7 @@ PREV_REL_DIR="${PREV_DIR_BASE}/${PREV_TAG}/_build/${PROFILE}/lib"
 # this in turn makes quoting "${ESCRIPT_ARGS[@]}" problematic, hence disable SC2068 check here
 # shellcheck disable=SC2068
 ./scripts/update_appup.escript \
-    --src-dirs "${SRC_DIRS}/**" \
+    --src-dirs "apps/**" \
     --release-dir "_build/${PROFILE}/lib" \
     --prev-release-dir "${PREV_REL_DIR}" \
     --skip-build \