Skip to content

Commit b9a8969

Browse files
committed
update docs
1 parent f4841fc commit b9a8969

File tree

11 files changed

+258
-59
lines changed

11 files changed

+258
-59
lines changed

.github/CODEOWNERS

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Global fallback owner
2+
* @geecoodeer
3+
4+
# Core engine
5+
/core/ @geecoodeer
6+
7+
# Extensions
8+
/extension/ @geecoodeer
9+
10+
# Documentation and release assets
11+
/docs/ @geecoodeer
12+
/README.md @geecoodeer
13+
/README-zh.md @geecoodeer
14+
/CHANGELOG.md @geecoodeer
15+
/CHANGELOG-zh.md @geecoodeer
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Bug report
2+
description: Report a reproducible bug in SmartEngine.
3+
title: "[Bug] "
4+
labels: ["bug"]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: Problem description
10+
description: What happened and what did you expect?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: steps
15+
attributes:
16+
label: Reproduction steps
17+
description: Provide minimal reproducible steps.
18+
validations:
19+
required: true
20+
- type: input
21+
id: version
22+
attributes:
23+
label: SmartEngine version
24+
placeholder: e.g. 3.7.0-SNAPSHOT
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: environment
29+
attributes:
30+
label: Environment
31+
description: JDK, OS, DB, framework versions.
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: logs
36+
attributes:
37+
label: Logs / stacktrace
38+
render: shell

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Question and discussion
4+
url: https://github.com/alibaba/SmartEngine/discussions
5+
about: Ask usage questions and discuss design choices.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Feature request
2+
description: Suggest an improvement or new capability.
3+
title: "[Feature] "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: motivation
8+
attributes:
9+
label: Motivation
10+
description: What problem are you trying to solve?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: Proposal
17+
description: Describe the expected behavior and API changes.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: compatibility
22+
attributes:
23+
label: Compatibility impact
24+
description: Any breaking changes, migration steps, or DB impact.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## Summary
2+
3+
- Problem:
4+
- Approach:
5+
6+
## Change Type
7+
8+
- [ ] docs
9+
- [ ] refactor
10+
- [ ] fix
11+
- [ ] feature
12+
- [ ] breaking change
13+
14+
## Compatibility and Risk
15+
16+
- Compatibility impact:
17+
- Rollback plan:
18+
19+
## Testing
20+
21+
- [ ] Unit tests added/updated
22+
- [ ] Integration tests added/updated
23+
- [ ] Local verification command(s):
24+
25+
## Database Impact (if any)
26+
27+
- [ ] No database change
28+
- [ ] MySQL DDL updated
29+
- [ ] PostgreSQL DDL updated
30+
- [ ] SQLMap updated
31+
- [ ] Migration note included
32+
33+
## Documentation
34+
35+
- [ ] README/docs updated
36+
- [ ] CHANGELOG updated

.github/workflows/ci.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- dev
8+
pull_request:
9+
10+
jobs:
11+
build:
12+
name: Build (JDK ${{ matrix.java }})
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
java: [8, 17]
18+
steps:
19+
- uses: actions/checkout@v4
20+
- name: Set up JDK
21+
uses: actions/setup-java@v4
22+
with:
23+
distribution: temurin
24+
java-version: ${{ matrix.java }}
25+
cache: maven
26+
- name: Compile all modules
27+
run: mvn -B -ntp -DskipTests package
28+
29+
unit-test:
30+
name: Unit tests (DB independent)
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
- name: Set up JDK
35+
uses: actions/setup-java@v4
36+
with:
37+
distribution: temurin
38+
java-version: 8
39+
cache: maven
40+
- name: Run core and extension tests without database dependency
41+
run: >-
42+
mvn -B -ntp
43+
-pl core,extension/storage/storage-common,extension/storage/storage-custom,extension/retry/retry-common,extension/retry/retry-custom
44+
-am test

.github/workflows/release.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- name: Set up JDK
14+
uses: actions/setup-java@v4
15+
with:
16+
distribution: temurin
17+
java-version: 8
18+
cache: maven
19+
- name: Build artifacts
20+
run: mvn -B -ntp -DskipTests package
21+
- name: Upload build artifacts
22+
uses: actions/upload-artifact@v4
23+
with:
24+
name: smart-engine-jars
25+
path: |
26+
**/target/*.jar
27+
!**/*-sources.jar
28+
!**/*-javadoc.jar
29+
- name: Publish GitHub release
30+
uses: softprops/action-gh-release@v2
31+
with:
32+
generate_release_notes: true
File renamed without changes.
File renamed without changes.

CONTRIBUTING.md

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,57 @@
1+
# Contributing
12

2-
## Contributing
3+
This repository accepts contributions through pull requests to `master`.
4+
`dev` can be used as a temporary integration branch, but changes should be merged in small, reviewable batches.
35

4-
If you want to contribute to a project and make it better, your help is very welcome. Contributing is also a great way to learn more about social coding on Github, new technologies and and their ecosystems and how to make constructive, helpful bug reports, feature requests and the noblest of all contributions: a good, clean pull request.
6+
## Prerequisites
57

6-
### How to make a clean pull request
8+
- JDK 8+
9+
- Maven 3.6+
10+
- MySQL/PostgreSQL only when running database integration tests
711

8-
Look for a project's contribution instructions. If there are any, follow them.
12+
## Build and Test
913

10-
- Create a personal fork of the project on Github.
11-
- Clone the fork on your local machine. Your remote repo on Github is called `origin`.
12-
- Add the original repository as a remote called `upstream`.
13-
- If you created your fork a while ago be sure to pull upstream changes into your local repository.
14-
- Create a new branch to work on! Branch from `develop` if it exists, else from `master`.
15-
- Implement/fix your feature, comment your code, .
16-
- Follow the code style of the project, including indentation.
17-
- Write or adapt tests as needed.
18-
- Add or change the documentation as needed.
19-
- Create a new branch if necessary.
20-
- Push your branch to your fork on Github, the remote `origin`.
21-
- From your fork open a pull request in the correct branch. Target the project's `develop` branch if there is one, else go for `master`!
22-
- Wait for approval.
23-
- Once the pull request is approved and merged you can pull the changes from `upstream` to your local repo and delete
24-
your extra branch(es).
14+
Run at repository root:
2515

26-
And last but not least: Always write your commit messages in the present tense. Your commit message should describe what the commit, when applied, does to the code – not what you did to the code.
16+
```bash
17+
mvn -q -DskipTests=false test
18+
```
19+
20+
Module-level examples:
21+
22+
```bash
23+
mvn -pl core -am test
24+
mvn -pl extension/storage/storage-custom -am test
25+
mvn -pl extension/storage/storage-mysql -am test
26+
```
27+
28+
Reference: `docs/07-dev/build-and-test.md`
29+
30+
## Pull Request Requirements
31+
32+
- Keep each PR focused on one theme.
33+
- Use the PR template completely, including risk and rollback notes.
34+
- Add or update tests for behavior changes.
35+
- Update docs for user-visible changes.
36+
- Update `CHANGELOG.md` and `CHANGELOG-zh.md` for release-relevant changes.
37+
38+
For database-related changes:
39+
40+
- Update both MySQL and PostgreSQL DDL.
41+
- Update MyBatis SQL maps.
42+
- Provide migration notes.
43+
44+
## Recommended Merge Strategy for Large Branches
45+
46+
If a branch is too large to review in one PR, split into these categories:
47+
48+
1. Mechanical changes (format/move/rename).
49+
2. Build/dependency changes.
50+
3. Feature additions.
51+
4. Compatibility or semantic behavior changes.
52+
53+
Each category should be merged only after CI passes.
54+
55+
## Commit Message
56+
57+
Use present tense and clearly describe the behavior change, not just the action taken.

0 commit comments

Comments
 (0)