wangzhigang1999 commented on code in PR #7452:
URL: https://github.com/apache/kyuubi/pull/7452#discussion_r3257911320


##########
AGENTS.md:
##########
@@ -0,0 +1,222 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+# Apache Kyuubi — Agent Instructions
+
+A guide for AI coding agents contributing to Apache Kyuubi. Pairs with 
`CONTRIBUTING.md`, the [Contributor 
Guide](https://kyuubi.readthedocs.io/en/master/contributing/code/index.html), 
and review-derived rules in `docs/design/merged_rules.md` (the source of truth 
when this file is silent).
+
+## Pre-flight Checks
+
+Before the first edit or test in a session:
+
+1. Run `git remote -v`. An `upstream` (or equivalent) remote must point to 
`apache/kyuubi`; do not work from a fork-only checkout.
+2. If `<upstream>/master` is stale, `git fetch <upstream> master` before 
branching or rebasing.
+3. Check `git status`. If the tree is dirty, ask the user to stash before any 
branch switch or release/RAT-style check.
+4. Existing PR: resolve the branch via `gh api repos/apache/kyuubi/pulls/<num> 
--jq '.head.ref'`, then check it out.
+5. New work: branch from `<upstream>/master`. Branch names like 
`kyuubi-NNNN-short-slug` are convention, not policy.
+6. Confirm `git config user.email` matches an email on the GitHub account that 
will open the PR.
+7. Keep private/ignored files outside the repo root — RAT scans generated 
local files even when `.gitignore`d.
+
+## Architecture
+
+Kyuubi is a multi-tenant gateway that fronts pluggable SQL engines (Spark, 
Flink, Hive, Trino, JDBC). The module split is load-bearing in code review.
+
+### Module Layout
+
+- `kyuubi-server/` — gateway process. Must not depend on engine modules under 
`externals/` or implement engine-side runtime behavior.
+- `kyuubi-common/` — shared service abstractions, config registry, 
session/operation base classes, relocated Hive Thrift RPC.
+- `kyuubi-ha/`, `kyuubi-events/`, `kyuubi-metrics/`, `kyuubi-rest-client/`, 
`kyuubi-zookeeper/` — focused libraries.
+- `kyuubi-ctl/` — admin CLI.
+- `kyuubi-hive-jdbc/`, `kyuubi-hive-beeline/` — JDBC client and shell.
+- `externals/kyuubi-{spark,flink,hive,trino,jdbc,data-agent}-sql-engine/` — 
engine processes. Must not depend on each other.
+- `extensions/{server,spark,flink}/` — opt-in plug-ins.
+- `integration-tests/` — cross-module suites.
+- `kyuubi-assembly/` — binary distribution.
+
+### Hard Boundaries
+
+- Server must not depend on Kyuubi engine modules or use engine runtime APIs 
(Spark/Flink internals) to implement engine behavior server-side.
+- Protocol/client libraries are not a blanket exception — if one is needed in 
`kyuubi-server`, keep it limited to wire-protocol or client-model translation 
and verify the dep tree.
+- Engines must not depend on sibling engines (e.g. no 
`kyuubi-flink-sql-engine` → `kyuubi-spark-sql-engine`).
+- Public APIs are abstract over the cluster manager. Use `killApplication`, 
not `closeYarnJob`; APIs, classes, and config keys must work for YARN, 
Kubernetes, and future managers.
+- Spark SQL syntax extensions need maintainer agreement, version-aware parser 
support, and a clear reason they cannot stay upstream-compatible.
+- Do not break the Thrift wire protocol. Kyuubi speaks Hive TCLIService 
through relocated dependencies; Python bindings are patched under 
`python/scripts/thrift-patches/`. Never remove or renumber wire fields.
+
+### High-Sensitivity Areas
+
+Get reviewer attention before changing:
+
+- `python/scripts/thrift-patches/` — patches against upstream Hive TCLIService 
schema.

Review Comment:
   removed



-- 
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