This file provides guidance for AI coding assistants (Claude, Copilot, Cursor, etc.) when working with this repository.
OpenUI5 is an enterprise-grade JavaScript UI framework implementing SAP Fiori design. It is a monorepo containing ~30 library packages under src/, each following the src/{library}/src/{namespace}/ structure for sources and src/{library}/test/{namespace}/qunit/ for tests.
Requirements: Node.js ^20.17.0 || >=22.9.0, npm >=8
Always use /run-test skill for single module testing. Do NOT use karma for individual modules.
/run-test <module-name>Examples:
/run-test BlockLayerUtils
/run-test sap.m.Button
/run-test sap/ui/core/routing/RouterWhen adding new properties, aggregations, associations, methods, or API, read the version field from the root package.json (e.g. "1.148.0-SNAPSHOT") and use the version without the -SNAPSHOT suffix as the @since tag (e.g. @since 1.148).
See commit message guidelines.
This repository uses Gerrit for code review, not GitHub pull requests. Key rules for agents:
- Do NOT push directly to
masteror any release branch. - Every commit must include a
Change-Id:trailer in the commit message. Gerrit uses this to track changes across amended pushes. The Git hook at.git/hooks/commit-msggenerates it automatically — do not skip hooks. - Push changes for review with:
git push origin HEAD:refs/for/master - Do not force-push or rewrite commits that are already under review without explicit user instruction.
Start here (read these first when working on code changes):
- Development Guidelines — code formatting, naming, class creation, git conventions
- Control Library Development — library structure, renderers, themes, tests
- Class Example — full UI5 class with proper JSDoc and AMD module
Additional references:
- Development Setup & Workflow — dev server, SDK build, testing with UI5 CLI
- ESLint Configuration — lint rules and enforcement
- JS Namespace Conventions — module naming rules
- JSDoc Best Practices — descriptions, tags, type syntax
- JSDoc Pitfalls — common JSDoc mistakes to avoid
- Translation Files — annotation standards for .properties files
- Self-Closing Tags Fix — jQuery-incompatible HTML tag migration