anton-vinogradov commented on code in PR #13740:
URL: https://github.com/apache/ignite/pull/13740#discussion_r4377977616


##########
rfcs/IGNITE-29201-public-api-and-rfc-process.md:
##########
@@ -0,0 +1,66 @@
+<!--
+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.
+-->
+
+# Public API changes through tickets and PRs
+
+Ticket: [IGNITE-29201](https://issues.apache.org/jira/browse/IGNITE-29201)
+
+## Why
+
+We should agree on changes to public API before merging them. Use a ticket to 
describe the problem and a PR to review an RFC stored alongside the code.
+
+## What counts as public API?
+
+Public API means supported interfaces and behavior that applications, 
integrations, and operators rely on:
+
+- Language and client APIs, including plugins and SPIs.
+- SQL syntax, types, functions, and behavior.
+- REST endpoints, CLI commands, and supported machine-readable output.
+- User-facing configuration, including defaults.
+- Supported metrics, JMX interfaces, and system views.
+
+The same review requirement covers client and internode protocols and 
persistent data formats, including metadata, WAL, and snapshots.
+
+An internal class does not become public API just because it has public 
methods. Missing documentation does not make an interface intended for external 
use internal.
+
+## When do we need an RFC?
+
+Adding, changing, deprecating, or removing an interface or format listed above 
requires an RFC. Backward-compatible additions count too. For example, a new 
public method, configuration option, or protocol field needs review.
+
+Internal refactoring, optimizations, tests, documentation fixes, and ordinary 
log wording do not need an RFC if they preserve these contracts. Neither do bug 
fixes that restore established behavior without changing another contract. If 
unsure, explain the change in the ticket and discuss it with reviewers.
+
+## Ticket → RFC PR → implementation
+
+1. Open a ticket describing the problem and proposed change.
+2. Open a PR adding `rfcs/IGNITE-<ticket>-<short-title>.md`. Link the ticket 
and PR to each other; use the ticket number instead of maintaining a separate 
RFC counter.

Review Comment:
   It will be one PR for each Issue. 
   It will include the RFC and implementation.



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

Reply via email to