lizhimins opened a new pull request, #7365:
URL: https://github.com/apache/rocketmq-dashboard/pull/7365
### What this PR does
Closes the release-readiness gaps found while auditing trunk (`fb6455a03`)
against the
Apache 3.0.0 release checklist, in one squashed commit:
- **fix(alert)** — domain-scoped `toggleRule` / `deleteRule` took a plain
MVCC read and then
wrote, so management writes never serialized against an evaluation holding
`SELECT ... FOR UPDATE`. On MySQL the blocked `UPDATE` never appeared as a
lock wait, which
is exactly why `AlertRuleEvaluationConcurrencyTest` passed on H2 and
failed every MySQL run
(trunk CI red at `fb6455a03`). They now take the locking read the
repository contract already
documents (`findRuleByIdForUpdate`), closing the lost-update window
between concurrent
management writes at the same time.
- **chore(legal)** — 99 tracked files had no ASF license header and 60
carried a truncated
variant RAT cannot recognize (one of them with a doubled license URL). All
normalized, and the
whole repository is now gated by `apache-rat-plugin` 0.18 at the
`validate` phase plus a named
`license-headers` CI job. Runtime text resources (banner, AI prompts) and
machine manifests are
excluded with reasons.
- **chore(release)** — adds a `maven-assembly` source-release descriptor
producing
`rocketmq-studio-3.0.0-source-release.{zip,tar.gz}` from the repository
root (build output,
dependency trees and the untracked `deploy/.env` excluded); moves the
groupId from
`com.rocketmq` to `org.apache.rocketmq`; excludes the unused
`com.alibaba:fastjson` 1.2.83
transitive declaration of `rocketmq-common` 5.5.0 (no shipped RocketMQ
class references it —
verified by constant-pool scanning of the six RocketMQ jars — and
RocketMQ's JSON path is
fastjson2, which stays).
- **chore(security)** — regression scripts no longer default `SSH_TARGET` /
`STUDIO_URL` to a real
test-machine address and the deploy skill no longer quotes real ECS/SLB
IPs; values come from
the environment (fail fast when unset) and public-IP test vectors use RFC
5737 documentation
ranges.
- **fix(web)** — the instance table overflowed its 1330px container by 40px
and the audit tables by
310px / 41px because columns lacked declared widths; every column now has
an explicit width
summing to its container, long text is absorbed by `ellipsis`, and
colgroup budget guards mirror
the alerts-page precedent.
- **test(web)** — load-sensitive `DataSourceTab` / `ConsumerPage` waits
relied on testing-library's
1s default and failed under CI load; they get an explicit budget, and the
unmounted-tab case
compares against the call count captured at unmount instead of a hardcoded
1.
- **deploy** — the container packaging build mounts only `server/`, where
the repo-root-relative
RAT/assembly gates would scan the container filesystem; both are skipped
there (they run in CI
and in local builds).
### Verification
- Backend: 4181/4181 on H2; `AlertRuleEvaluationConcurrencyTest` 6/6 on
MySQL 8.0.46 (the exact
environment CI uses) where it previously failed deterministically.
- Frontend: 166 test files green, lint 0 errors, `license:test` 8/8, build +
distribution license
check green.
- rmqctl: `fmt`, `catalog-verify`, `vet`, `test-race`, `build` green.
- `rat:check` green; source-release archive contents inspected (root
LICENSE/NOTICE present, no
build output or credentials).
- Deployed to a test machine and re-measured in a real browser: instance and
audit tables at
0px horizontal overflow, page smoke checks on the touched pages green.
--
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]