abapgit-agent 1.17.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -22,7 +22,7 @@ Interface | zif_*.intf.abap | zif_*.intf.xml
|
|
|
22
22
|
Program | z*.prog.abap | z*.prog.xml
|
|
23
23
|
CDS View (DDLS) | zc_*.ddls.asddls | zc_*.ddls.xml
|
|
24
24
|
CDS Access Control | zc_*.dcls.asdcls | zc_*.dcls.xml
|
|
25
|
-
Function Group | z*fugr*.abap (
|
|
25
|
+
Function Group | z*fugr*.abap (1 per FM + includes) | z*.fugr.xml
|
|
26
26
|
Enhancement (ENHO) | z*.enho.<hash>.abap (N files)| z*.enho.xml
|
|
27
27
|
```
|
|
28
28
|
|
package/abap/guidelines/enho.md
CHANGED
|
@@ -105,7 +105,10 @@ When an ENHO already exists in both git and the ABAP system:
|
|
|
105
105
|
# Edit the hook source
|
|
106
106
|
vi src/zfoo_enh.enho.d639f45c.abap
|
|
107
107
|
|
|
108
|
-
#
|
|
108
|
+
# Syntax check (optional — catches basic errors before commit)
|
|
109
|
+
abapgit-agent syntax --files src/zfoo_enh.enho.d639f45c.abap
|
|
110
|
+
|
|
111
|
+
# Commit, push, pull
|
|
109
112
|
git add src/zfoo_enh.enho.d639f45c.abap
|
|
110
113
|
git commit -m "fix: update enhancement hook"
|
|
111
114
|
git push
|
package/abap/guidelines/index.md
CHANGED
|
@@ -22,7 +22,11 @@ This folder contains detailed ABAP coding guidelines that can be searched using
|
|
|
22
22
|
| `objects.md` | Object Naming Conventions |
|
|
23
23
|
| `naming-limits.md` | Naming Length Limits (30/16/40 char rules per type) |
|
|
24
24
|
| `json.md` | JSON Handling |
|
|
25
|
-
| `
|
|
25
|
+
| `string-template.md` | String Templates — syntax, escaping `\{` `\}`, JSON payloads |
|
|
26
|
+
| `abapgit.md` | abapGit XML Metadata — CLAS, INTF, PROG, CDS/DDLS, DCLS, FUGR |
|
|
27
|
+
| `abapgit-xml-only.md` | abapGit XML Metadata — XML-only objects (TABL, STRU, DTEL, TTYP, DOMA, MSAG) |
|
|
28
|
+
| `abapgit-fugr.md` | abapGit XML Metadata — Function Group (FUGR) details |
|
|
29
|
+
| `enho.md` | Enhancement Objects (ENHO) — workflow, hash algorithm, creation guide |
|
|
26
30
|
| `unit-testable-code.md` | Unit Testable Code Guidelines (Dependency Injection) |
|
|
27
31
|
| `common-errors.md` | Common ABAP Errors - Quick Fixes |
|
|
28
32
|
| `debug-session.md` | Debug Session Guide |
|
|
@@ -33,6 +37,8 @@ This folder contains detailed ABAP coding guidelines that can be searched using
|
|
|
33
37
|
| `cds-testing.md` | CDS Testing (Test Double Framework) |
|
|
34
38
|
| `abaplint.md` | abaplint Rule Guidelines (prefer_inline trap, safe patterns) |
|
|
35
39
|
| `comments.md` | Documentation Comments (ABAP DOC, shorttext, @parameter, CDS //) |
|
|
40
|
+
| `run-probe-classes.md` | run Command — AI Guidelines (probe classes, scratchWorkspace) |
|
|
41
|
+
| `probe-poc.md` | Probe and PoC — Full Decision Flow |
|
|
36
42
|
|
|
37
43
|
## Usage
|
|
38
44
|
|
|
@@ -23,6 +23,7 @@ Replace `<name>` with the actual object name from this project's naming conventi
|
|
|
23
23
|
| CDS View Entity (DDLS) | `<name>.ddls.asddls` | `<name>.ddls.xml` | **Use by default** — `ref --topic abapgit` |
|
|
24
24
|
| CDS Access Control (DCLS) | `<name>.dcls.asdcls` | `<name>.dcls.xml` | `ref --topic abapgit` |
|
|
25
25
|
| Function Group (FUGR) | `<name>.fugr.abap` + includes | `<name>.fugr.xml` | `ref --topic abapgit` |
|
|
26
|
+
| Enhancement (ENHO) | `<name>.enho.<hash>.abap` (one per hook) | `<name>.enho.xml` | `ref --topic enho` |
|
|
26
27
|
| Table (TABL) | *(none — XML-only)* | `<name>.tabl.xml` | `ref --topic abapgit-xml-only` |
|
|
27
28
|
| Structure (STRU) | *(none — XML-only)* | `<name>.tabl.xml` ⚠️ NOT `.stru.xml` | `ref --topic abapgit-xml-only` |
|
|
28
29
|
| Data Element (DTEL) | *(none — XML-only)* | `<name>.dtel.xml` | `ref --topic abapgit-xml-only` |
|
|
@@ -18,9 +18,9 @@ grand_parent: ABAP Development
|
|
|
18
18
|
3. Write code → place in correct folder (e.g., src/zcl_*.clas.abap)
|
|
19
19
|
│
|
|
20
20
|
▼
|
|
21
|
-
4. Syntax check (for CLAS, INTF, PROG, DDLS only)
|
|
21
|
+
4. Syntax check (for CLAS, INTF, PROG, DDLS, ENHO only)
|
|
22
22
|
│
|
|
23
|
-
├─► CLAS/INTF/PROG/DDLS → abapgit-agent syntax --files <file>
|
|
23
|
+
├─► CLAS/INTF/PROG/DDLS/ENHO → abapgit-agent syntax --files <file>
|
|
24
24
|
│ │
|
|
25
25
|
│ ├─► Errors? → Fix locally (no commit needed), re-run syntax
|
|
26
26
|
│ │
|
|
@@ -31,7 +31,7 @@ grand_parent: ABAP Development
|
|
|
31
31
|
▼
|
|
32
32
|
4b. abaplint (OPTIONAL — only if .abaplint.json exists in repo root)
|
|
33
33
|
│
|
|
34
|
-
├─► .abaplint.json exists →
|
|
34
|
+
├─► .abaplint.json exists → abapgit-agent lint
|
|
35
35
|
│ │
|
|
36
36
|
│ ├─► Issues? → Fix locally, re-run abaplint
|
|
37
37
|
│ │ ⚠️ Before applying any quickfix: run abapgit-agent ref --topic abaplint
|
|
@@ -45,7 +45,7 @@ grand_parent: ABAP Development
|
|
|
45
45
|
5. Commit and push → git add . && git commit && git push
|
|
46
46
|
│
|
|
47
47
|
▼
|
|
48
|
-
6. Activate → abapgit-agent pull --files src/file.clas.abap
|
|
48
|
+
6. Activate → abapgit-agent pull --files src/file.clas.abap --sync-xml
|
|
49
49
|
│ (behaviour depends on .abapgit-agent.json — see AI Tool Guidelines)
|
|
50
50
|
│
|
|
51
51
|
▼
|
|
@@ -67,6 +67,7 @@ grand_parent: ABAP Development
|
|
|
67
67
|
| INTF (interfaces) | ✅ Supported | Run `syntax` before commit |
|
|
68
68
|
| PROG (programs) | ✅ Supported | Run `syntax` before commit |
|
|
69
69
|
| DDLS (CDS views) | ✅ Supported | Run `syntax` before commit (requires annotations) |
|
|
70
|
+
| ENHO (enhancements) | ✅ Supported | Run `syntax` before commit (basic errors only — no target class context) |
|
|
70
71
|
| FUGR (function groups) | ❌ Not supported | Skip syntax, use `pull` then `inspect` |
|
|
71
72
|
| TABL/DTEL/DOMA/MSAG/SHLP | ❌ Not supported | Skip syntax, just `pull` |
|
|
72
73
|
| All other types | ❌ Not supported | Skip syntax, just `pull` |
|
|
@@ -90,7 +91,7 @@ abapgit-agent syntax --files src/zif_my_interface.intf.abap # ✅ Works (no dep
|
|
|
90
91
|
git add src/zif_my_interface.intf.abap src/zif_my_interface.intf.xml
|
|
91
92
|
git commit -m "feat: add interface"
|
|
92
93
|
git push
|
|
93
|
-
abapgit-agent pull --files src/zif_my_interface.intf.abap # Interface now activated
|
|
94
|
+
abapgit-agent pull --files src/zif_my_interface.intf.abap --sync-xml # Interface now activated
|
|
94
95
|
|
|
95
96
|
# Step 2: Create class, syntax check, commit, activate
|
|
96
97
|
vim src/zcl_my_class.clas.abap
|
|
@@ -98,7 +99,7 @@ abapgit-agent syntax --files src/zcl_my_class.clas.abap # ✅ Works (interfa
|
|
|
98
99
|
git add src/zcl_my_class.clas.abap src/zcl_my_class.clas.xml
|
|
99
100
|
git commit -m "feat: add class implementing interface"
|
|
100
101
|
git push
|
|
101
|
-
abapgit-agent pull --files src/zcl_my_class.clas.abap
|
|
102
|
+
abapgit-agent pull --files src/zcl_my_class.clas.abap --sync-xml
|
|
102
103
|
```
|
|
103
104
|
|
|
104
105
|
**Benefits:**
|
|
@@ -123,7 +124,7 @@ git commit -m "feat: add interface and implementing class"
|
|
|
123
124
|
git push
|
|
124
125
|
|
|
125
126
|
# Pull both together
|
|
126
|
-
abapgit-agent pull --files src/zif_my_interface.intf.abap,src/zcl_my_class.clas.abap
|
|
127
|
+
abapgit-agent pull --files src/zif_my_interface.intf.abap,src/zcl_my_class.clas.abap --sync-xml
|
|
127
128
|
|
|
128
129
|
# Use inspect if errors occur
|
|
129
130
|
abapgit-agent inspect --files src/zcl_my_class.clas.abap
|
|
@@ -150,7 +151,7 @@ git commit -m "feat: add class and CDS view"
|
|
|
150
151
|
git push
|
|
151
152
|
|
|
152
153
|
# Pull all files together
|
|
153
|
-
abapgit-agent pull --files src/zcl_my_class.clas.abap,src/zc_my_view.ddls.asddls
|
|
154
|
+
abapgit-agent pull --files src/zcl_my_class.clas.abap,src/zc_my_view.ddls.asddls --sync-xml
|
|
154
155
|
```
|
|
155
156
|
|
|
156
157
|
**When to use syntax vs abaplint vs inspect vs view**:
|
|
@@ -169,6 +170,7 @@ abapgit-agent pull --files src/zcl_my_class.clas.abap,src/zc_my_view.ddls.asddls
|
|
|
169
170
|
├─ .intf.abap → INTF ✅ syntax supported
|
|
170
171
|
├─ .prog.abap → PROG ✅ syntax supported
|
|
171
172
|
├─ .ddls.asddls → DDLS ✅ syntax supported (requires proper annotations)
|
|
173
|
+
├─ .enho.<hash>.abap → ENHO ✅ syntax supported (basic errors; no target class context)
|
|
172
174
|
└─ All other extensions → ❌ syntax not supported
|
|
173
175
|
|
|
174
176
|
2. Check for dependencies:
|
|
@@ -177,25 +179,25 @@ abapgit-agent pull --files src/zcl_my_class.clas.abap,src/zc_my_view.ddls.asddls
|
|
|
177
179
|
├─ CDS view uses table? → INDEPENDENT (table already exists)
|
|
178
180
|
└─ Unrelated bug fixes across files? → INDEPENDENT
|
|
179
181
|
|
|
180
|
-
3. For SUPPORTED types (CLAS/INTF/PROG/DDLS):
|
|
181
|
-
├─ INDEPENDENT files → Run syntax → [abaplint if enabled] → Fix errors → Commit → Push → Pull
|
|
182
|
+
3. For SUPPORTED types (CLAS/INTF/PROG/DDLS/ENHO):
|
|
183
|
+
├─ INDEPENDENT files → Run syntax → [abaplint if enabled] → Fix errors → Commit → Push → Pull --sync-xml
|
|
182
184
|
│
|
|
183
185
|
└─ DEPENDENT files (NEW objects):
|
|
184
186
|
├─ RECOMMENDED: Create underlying object first (interface, base class, etc.)
|
|
185
|
-
│ 1. Create underlying object → Syntax → [abaplint] → Commit → Push → Pull
|
|
186
|
-
│ 2. Create dependent object → Syntax (works!) → [abaplint] → Commit → Push → Pull
|
|
187
|
+
│ 1. Create underlying object → Syntax → [abaplint] → Commit → Push → Pull --sync-xml
|
|
188
|
+
│ 2. Create dependent object → Syntax (works!) → [abaplint] → Commit → Push → Pull --sync-xml
|
|
187
189
|
│ ✅ Benefits: Both syntax checks work, cleaner workflow
|
|
188
190
|
│
|
|
189
191
|
└─ ALTERNATIVE: If interface design uncertain, commit both together
|
|
190
|
-
→ Skip syntax → [abaplint] → Commit both → Push → Pull → (if errors: inspect)
|
|
192
|
+
→ Skip syntax → [abaplint] → Commit both → Push → Pull --sync-xml → (if errors: inspect)
|
|
191
193
|
|
|
192
194
|
4. For UNSUPPORTED types (FUGR, TABL, etc.):
|
|
193
|
-
Write code → Skip syntax → [abaplint] → Commit → Push → Pull → (if errors: inspect)
|
|
195
|
+
Write code → Skip syntax → [abaplint] → Commit → Push → Pull --sync-xml → (if errors: inspect)
|
|
194
196
|
|
|
195
197
|
5. For MIXED types (some supported + some unsupported):
|
|
196
|
-
Write all code → Run syntax on independent supported files ONLY → [abaplint] → Commit ALL → Push → Pull ALL
|
|
198
|
+
Write all code → Run syntax on independent supported files ONLY → [abaplint] → Commit ALL → Push → Pull ALL --sync-xml
|
|
197
199
|
|
|
198
|
-
[abaplint] = run
|
|
200
|
+
[abaplint] = run abapgit-agent lint only if .abaplint.json exists in repo root
|
|
199
201
|
before applying any quickfix: run abapgit-agent ref --topic abaplint
|
|
200
202
|
```
|
|
201
203
|
|
|
@@ -207,13 +209,13 @@ abapgit-agent pull --files src/zcl_my_class.clas.abap,src/zc_my_view.ddls.asddls
|
|
|
207
209
|
vim src/zif_calculator.intf.abap
|
|
208
210
|
abapgit-agent syntax --files src/zif_calculator.intf.abap # ✅ Works
|
|
209
211
|
git commit -am "feat: add calculator interface" && git push
|
|
210
|
-
abapgit-agent pull --files src/zif_calculator.intf.abap # Interface activated
|
|
212
|
+
abapgit-agent pull --files src/zif_calculator.intf.abap --sync-xml # Interface activated
|
|
211
213
|
|
|
212
214
|
# Step 2: Class next
|
|
213
215
|
vim src/zcl_calculator.clas.abap
|
|
214
216
|
abapgit-agent syntax --files src/zcl_calculator.clas.abap # ✅ Works (interface exists!)
|
|
215
217
|
git commit -am "feat: implement calculator" && git push
|
|
216
|
-
abapgit-agent pull --files src/zcl_calculator.clas.abap
|
|
218
|
+
abapgit-agent pull --files src/zcl_calculator.clas.abap --sync-xml
|
|
217
219
|
```
|
|
218
220
|
|
|
219
221
|
**Scenario 2: Multiple independent classes**
|
|
@@ -222,7 +224,7 @@ abapgit-agent pull --files src/zcl_calculator.clas.abap
|
|
|
222
224
|
vim src/zcl_class1.clas.abap src/zcl_class2.clas.abap
|
|
223
225
|
abapgit-agent syntax --files src/zcl_class1.clas.abap,src/zcl_class2.clas.abap
|
|
224
226
|
git commit -am "feat: add utility classes" && git push
|
|
225
|
-
abapgit-agent pull --files src/zcl_class1.clas.abap,src/zcl_class2.clas.abap
|
|
227
|
+
abapgit-agent pull --files src/zcl_class1.clas.abap,src/zcl_class2.clas.abap --sync-xml
|
|
226
228
|
```
|
|
227
229
|
|
|
228
230
|
**Error indicators after pull:**
|
|
@@ -240,10 +242,10 @@ abapgit-agent syntax --files src/zc_my_view.ddls.asddls
|
|
|
240
242
|
abapgit-agent syntax --files src/zcl_class1.clas.abap,src/zif_intf1.intf.abap,src/zc_view.ddls.asddls
|
|
241
243
|
|
|
242
244
|
# 2. Pull/activate AFTER pushing to git
|
|
243
|
-
abapgit-agent pull --files src/zcl_class1.clas.abap,src/zcl_class2.clas.abap
|
|
245
|
+
abapgit-agent pull --files src/zcl_class1.clas.abap,src/zcl_class2.clas.abap --sync-xml
|
|
244
246
|
|
|
245
247
|
# Override conflict detection for a single pull (e.g. deliberate branch switch)
|
|
246
|
-
abapgit-agent pull --files src/zcl_class1.clas.abap --conflict-mode ignore
|
|
248
|
+
abapgit-agent pull --files src/zcl_class1.clas.abap --conflict-mode ignore --sync-xml
|
|
247
249
|
|
|
248
250
|
# 3. Inspect AFTER pull (for errors or unsupported types)
|
|
249
251
|
abapgit-agent inspect --files src/zcl_class1.clas.abap
|