diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..28e01952 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,26 @@ +# see http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_style = tab + +[.*] +trim_trailing_whitespace = true +end_of_line = lf +indent_size = 4 +insert_final_newline = true + +[*.{css,html,js,cjs,mjs,jsx,ts,cts,mts,tsx,less,txt,json,yml,md}] +trim_trailing_whitespace = true +end_of_line = lf +indent_size = 4 +insert_final_newline = true + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6313b56c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..0c5cd602 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +@UI5/ui5-team-cor-fnd diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml new file mode 100644 index 00000000..9da91252 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml @@ -0,0 +1,44 @@ +name: Bug Report +description: Report a bug in UI5 MCP +type: Bug +body: + - type: markdown + attributes: + value: | + Please have a look at our [contributing guidelines](https://github.com/UI5/mcp/blob/main/CONTRIBUTING.md#report-bugs) on reporting issues. + - type: textarea + id: steps-to-reproduce + attributes: + label: What is the issue and how can we reproduce it? + description: | + To help us understand and resolve the issue efficiently, please provide a **minimal reproducible example** (required) and steps that clearly illustrate the unexpected behavior. + value: | + 1. Open the sample https:// ... + 2. Click on ... + 3. ... --> **Issue:** ... + + #### Error: + > ... + + #### Expected behavior: + ... + validations: + required: true + - type: input + id: version-ui5-mcp + attributes: + label: Which UI5 MCP version is your project targeting? + description: Share the UI5 MCP version where the issue occurs. + validations: + required: true + - type: checkboxes + id: issue-checked + attributes: + label: Confirmation + description: | + To avoid duplicates and ensure efficient issue resolution, please double-check existing issues. + options: + - label: I have searched the existing issues and reviewed the relevant documentation as well as the API reference. + required: true + - label: I am not disclosing any internal or sensitive information. + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/2-feature-request.yml b/.github/ISSUE_TEMPLATE/2-feature-request.yml new file mode 100644 index 00000000..f13579f5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature-request.yml @@ -0,0 +1,34 @@ +name: Feature Request +description: Request a new feature for UI5 MCP +type: Feature +body: + - type: markdown + attributes: + value: | + Please have a look at our [contributing guidelines](https://github.com/UI5/mcp/blob/main/CONTRIBUTING.md#request-features) on requesting features to be added to UI5 MCP. + - type: textarea + id: background-information + attributes: + label: Why are you proposing this feature? + description: A clear and concise description of the underlying scenario to be covered and whats's missing in UI5 MCP. Provide any relevant background information that helps explain why this feature would be beneficial. + placeholder: A clear and concise description of the underlying scenario to be covered and whats's missing in UI5 MCP. Provide any relevant background information that helps explain why this feature would be beneficial. + validations: + required: true + - type: textarea + id: possible-solution + attributes: + label: How should a possible solution look like? + description: A clear and concise description of what you want to happen. + placeholder: A clear and concise description of what you want to happen. + - type: textarea + id: alternative-solution + attributes: + label: Are there alternative approaches? + description: A clear and concise description of any alternative solutions or features you've considered. + placeholder: A clear and concise description of any alternative solutions or features you've considered. + - type: textarea + id: additional-context + attributes: + label: Any further information you would like to share? + description: Add any other context or screenshots about the feature request here. + placeholder: Add any other context or screenshots about the feature request here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..0086358d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..c9b03719 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +**Thank you for your contribution!** 🙌 + +To get it merged faster, kindly review the checklist below: + +## Pull Request Checklist +- [ ] Reviewed the [Contributing Guidelines](https://github.com/UI5/mcp/blob/main/CONTRIBUTING.md#-contributing-code) + + Especially the [How to Contribute](https://github.com/UI5/mcp/blob/main/CONTRIBUTING.md#how-to-contribute) section +- [ ] [No merge commits](https://github.com/UI5/mcp/blob/main/docs/Guidelines.md#no-merge-commits) +- [ ] [Correct commit message style](https://github.com/UI5/mcp/blob/main/docs/Guidelines.md#commit-message-style) diff --git a/.github/in-solidarity.yml b/.github/in-solidarity.yml new file mode 100644 index 00000000..4ce829a6 --- /dev/null +++ b/.github/in-solidarity.yml @@ -0,0 +1 @@ +_extends: ietf/terminology diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..9c6d215e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: CI +on: + push: + branches: + - main + pull_request: + branches: + - main + +# No permissions are required for this workflow +permissions: {} + +jobs: + test: + name: General checks, tests and coverage reporting + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - name: Use Node.js 24 + uses: actions/setup-node@v4.0.2 + with: + node-version: 24 + + - name: Install dependencies + run: npm ci + + - name: Perform ESLint check + run: npm run lint + + - name: Perform Licenses check + run: npm run check-licenses + + - name: Perform dependency check + run: npm run depcheck + + - name: Perform build + run: npm run build-test + + - name: Run tests + run: npm run coverage diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 00000000..12418a26 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,22 @@ +name: Commit Message Linting + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + contents: read + pull-requests: read + +jobs: + commitlint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: wagoid/commitlint-github-action@v6 diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml new file mode 100644 index 00000000..13da1b50 --- /dev/null +++ b/.github/workflows/issues.yml @@ -0,0 +1,22 @@ +name: Issue/Pull Request Handling +on: + schedule: + - cron: '00 20 * * *' + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + name: Flag and close stale issues + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + stale-issue-message: 'This issue has been automatically marked as stale because it has been open for 60 days with no activity. It will be closed in 10 days if no further activity occurs.' + stale-issue-label: 'stale' + stale-pr-label: 'stale' + days-before-stale: 60 + days-before-close: 10 + only-labels: 'information required' diff --git a/.github/workflows/reuse-compliance.yml b/.github/workflows/reuse-compliance.yml new file mode 100644 index 00000000..191f39ca --- /dev/null +++ b/.github/workflows/reuse-compliance.yml @@ -0,0 +1,21 @@ +name: REUSE + +on: + push: + branches: + - main + pull_request: + branches: + - main + +# No permissions are required for this workflow +permissions: {} + +jobs: + compliance-check: + name: Compliance Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Execute REUSE Compliance Check + uses: fsfe/reuse-action@v5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..829cb1fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,112 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# build / generate output +dist + +# Gatsby files +.cache/ + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.DS_Store + +# IDEs +.vscode/ +*.~vsdx +.idea/ +*.sublime-workspace + +# Generated code +/lib/ + +# Temporary files +/tmp/ +/test/tmp/ diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 00000000..90289817 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1 @@ +npm run hooks:pre-push diff --git a/.husky/skip.js b/.husky/skip.js new file mode 100755 index 00000000..f6743175 --- /dev/null +++ b/.husky/skip.js @@ -0,0 +1,5 @@ +if (process.env.CI) { + process.exit(0); +} else { + process.exit(1); +} diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..93ec4f76 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +# Enforce public npm registry +registry=https://registry.npmjs.org/ +lockfile-version=3 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aed38685..a33f6e0a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,38 +1,133 @@ -# Contributing +# Contributing to UI5 MCP -## Code of Conduct +## Content -All members of the project community must abide by the [SAP Open Source Code of Conduct](https://github.com/SAP/.github/blob/main/CODE_OF_CONDUCT.md). -Only by respecting each other we can develop a productive, collaborative community. -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting [a project maintainer](.reuse/dep5). +1. [📝 **Reporting Issues**](#-reporting-issues) +2. [🤩 **Feature Requests**](#-feature-requests) +3. [🔍 **Analyzing Issues**](#-analyzing-issues) +4. [💻 **Contributing Code**](#-contributing-code) -## Engaging in Our Project +### ⚡️ Quick Links for Maintainers -We use GitHub to manage reviews of pull requests. +- [All Open Pull Requests](https://github.com/UI5/mcp/pulls) +- [All Open Issues](https://github.com/UI5/mcp/issues) -* If you are a new contributor, see: [Steps to Contribute](#steps-to-contribute) +## 📝 Reporting Issues -* Before implementing your change, create an issue that describes the problem you would like to solve or the code that should be enhanced. Please note that you are willing to work on that issue. +### Seeking Help / Not a Bug + -* The team will review the issue and decide whether it should be implemented as a pull request. In that case, they will assign the issue to you. If the team decides against picking up the issue, the team will post a comment with an explanation. +### How to Report an Issue -## Steps to Contribute +1. **Only UI5 MCP issues** + * Please do not report: + * Issues caused by dependencies. + * Issues caused by the use of non-public/internal methods. Only the public methods listed in the API documentation may be used. + * Something you do not get to work properly, see [Not a Bug / Questions](#not-a-bug--questions). +2. **No duplicate**: You have searched the [issue tracker](https://github.com/UI5/mcp/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) to make sure the bug has not already been reported. +3. **Good summary**: The summary should be specific to the issue. +4. **Current bug**: The bug can be reproduced in the most current version of the relevant module(s). +5. **Reproducible bug**: There are step-by-step instructions provided on how to reproduce the issue. +6. **Well-documented**: + * Precisely state the expected and the actual behavior. + * Give information about the environment in which the issue occurs (OS/Platform, Node.js version, etc.). + * Generally, give as much additional information as possible. +7. **Only one bug per report**: Open additional tickets for additional issues. +8. **Please report bugs in English.** -Should you wish to work on an issue, please claim it first by commenting on the GitHub issue that you want to work on. This is to prevent duplicated efforts from other contributors on the same issue. +We encourage you to follow the issue template that will be presented to you when creating a new issue. -If you have questions about one of the issues, please comment on them, and one of the maintainers will clarify. +When you are ready, report your issue here: https://github.com/UI5/mcp/issues/new -## Contributing Code or Documentation +### Reporting Security Issues -You are welcome to contribute code in order to fix a bug or to implement a new feature that is logged as an issue. +If you find any bug that may be a security problem, please follow our instructions at [in our security policy](https://github.com/UI5/mcp/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems. -The following rule governs code contributions: +### Use of Labels -* Contributions must be licensed under the [Apache 2.0 License](./LICENSE) -* Due to legal reasons, contributors will be asked to accept a Developer Certificate of Origin (DCO) when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses [the standard DCO text of the Linux Foundation](https://developercertificate.org/). +GitHub offers labels to categorize issues. The labels can only be set and modified by committers. -## Issues and Planning +#### General issue types: -* We use GitHub issues to track bugs and enhancement requests. +- **`Bug`**: This issue is a bug in the code. +- **`Feature`**: This is not a bug report, but an feature request. -* Please provide as much context as possible when you open an issue. The information you provide must be comprehensive enough to reproduce that issue for the assignee. +#### Specific issue categories for UI5 MCP: + +- **`detection`**: This issue is relates to the detection functionality of UI5 MCP. +- **`autofix`**: This issue is relates to the autofix functionality of UI5 MCP. +- **`documentation`**: This issue is about wrong documentation. +- **`needs triage`**: This issue needs to be investigated and confirmed as a valid issue that is not a duplicate + +##### Status of an open issue: + +- **`information required`**: The author is required to provide information. +- **`good first issue`**: A newcomer may work on this. +- **`help wanted`**: Additional help in analyzing this issue is required. + +##### Status/resolution of a closed issue: + +- **`duplicate`**: The issue was already reported somewhere else. +- **`invalid`**: For any reason, this issue report will not be handled further. Possible reasons are lack of information, or that the issue does not apply anymore. +- **`wontfix`**: While acknowledged to be an issue, a fix cannot or will not be provided. + +### Issue Reporting Disclaimer + +We want to improve the quality of UI5 MCP and good bug reports are welcome! But our capacity is limited, so we cannot handle questions or consultation requests, and we cannot afford to ask for required details. + +Therefore, we reserve the right to close or to not process insufficient bug reports in favor of those which are clearly documented and easy to reproduce. Even though we would like to solve each well-documented issue, there is always the chance that it won't happen - please remember: UI5 MCP is Open Source and comes without warranty. + +Bug report analysis support is always very welcome! See [Analyze Issues](#-analyzing-issues). + +## 🤩 Feature Requests + +You can request most features by creating an issue in the UI5 MCP repository: https://github.com/UI5/mcp/issues/new + +For bigger features an RFC (Request for Comment) might be necessary. You should always clarify the need for an RFC with the project contributors upfront. You could do this either by opening an issue or in our [Slack channel](#seeking-help--not-a-bug). You can use [this template](rfcs/0000-template.md) for creating an RFC. + +## 🔍 Analyzing Issues + +Analyzing issue reports can be a lot of effort. Any help is welcome! 👍 + +Open the [UI5 MCP Task Board](https://github.com/orgs/UI5/projects/1) and look for open issues which require triage, additional work, or a bugfix. +Especially check for issues in the **`Needs Triage`** column, or for issues with the labels **`good first issue`**, **`help wanted`**, or **`information required`**. + +You may be able to add additional or missing information, such as a step-by-step guide on how to reproduce an issue or an analysis of the root cause. In case of the latter, you might even be able to [contribute](#-contributing-code) a bugfix. 🙌 + +## 💻 Contributing Code + +### General Remarks + +You are welcome to contribute code to UI5 MCP in order to fix bugs or to implement new features. + +There are three important things to know: + +1. You must be aware of the Apache License (which describes contributions) and **agree to the Developer Certificate of Origin***. This is common practice in major Open Source projects. To make this process as simple as possible, we are using *[CLA assistant](https://cla-assistant.io/)* for individual contributions. CLA assistant is an open source tool that integrates with GitHub very well and enables a one-click experience for accepting the DCO. For company contributers, special rules apply. See the respective section below for details. +2. Follow our **[Development Conventions and Guidelines](docs/Guidelines.md)**. +3. **Not all proposed contributions can be accepted**. Some features may just fit a third-party add-on better. The code must match the overall direction of UI5 MCP and improve it. So there should be some "bang for the byte". For most bug fixes this is a given, but a major feature implementation first needs to be discussed with one of the committers. Possibly, one who touched the related code or module recently. The more effort you invest, the better you should clarify in advance whether the contribution will match the project's direction. The best way would be to just open an enhancement ticket in the issue tracker to discuss the feature you plan to implement (make it clear that you intend to contribute). We will then forward the proposal to the respective code owner. This avoids disappointment. + +### Developer Certificate of Origin (DCO) + +Due to legal reasons, contributors will be asked to accept a DCO before they submit the first pull request to this project. SAP uses [the standard DCO text of the Linux Foundation](https://developercertificate.org/). +This happens in an automated fashion during the submission process: the CLA assistant tool will add a comment to the pull request. Click it to check the DCO, then accept it on the following screen. CLA assistant will save this decision for upcoming contributions. + +This DCO replaces the previously used CLA ("Contributor License Agreement") as well as the "Corporate Contributor License Agreement" with new terms which are well-known standards and hence easier to approve by legal departments. Contributors who had already accepted the CLA in the past may be asked once to accept the new DCO. + +### How to Contribute + +1. Make sure the change is welcome (see [General Remarks](#general-remarks)). + - Also check on the [UI5 MCP Task Board](https://github.com/orgs/UI5/projects/1) whether related tasks are already being worked on, blocked, or in discussion. +1. Create a branch by forking the relevant module repository and apply your change. +1. Commit and push your change on that branch. + - 👉 **Please follow our [Development Conventions and Guidelines](docs/Guidelines.md).** +1. Create a pull request in the relevant repository. +1. Follow the link posted by the CLA assistant to your pull request and accept it, as described above. +1. Wait for our code review and approval, possibly enhancing your change on request. + - Note that the UI5 developers have many duties. So, depending on the required effort for reviewing, testing, and clarification, this may take a while. +1. Once the change has been approved and merged, we will inform you in a comment. +1. Celebrate! 🎉 + +### Contributing with AI-generated code +As artificial intelligence evolves, AI-generated code is becoming valuable for many software projects, including open-source initiatives. While we recognize the potential benefits of incorporating AI-generated content into our open-source projects there are certain requirements that need to be reflected and adhered to when making contributions. + +Please see our [guideline for AI-generated code contributions to SAP Open Source Software Projects](https://github.com/UI5/.github/blob/main/CONTRIBUTING_USING_GENAI.md) for these requirements. diff --git a/README.md b/README.md index 2be2c3ec..5114fa4d 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,80 @@ -[![REUSE status](https://api.reuse.software/badge/github.com/UI5/ui5-mcp)](https://api.reuse.software/info/github.com/UI5/ui5-mcp) - # UI5 MCP -## About this project +> A Model Context Protocol (MCP) server for UI5 + +[![OpenUI5 Community Slack (#tooling channel)](https://img.shields.io/badge/slack-join-44cc11.svg)](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com/) +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.1%20adopted-ff69b4.svg)](https://github.com/UI5/mcp?tab=coc-ov-file#readme) +[![REUSE status](https://api.reuse.software/badge/github.com/UI5/mcp)](https://api.reuse.software/info/github.com/UI5/mcp) +[![npm Package Version](https://badge.fury.io/js/%40ui5%mcp.svg)](https://www.npmjs.com/package/@ui5/mcp) +[![Coverage Status](https://coveralls.io/repos/github/UI5/mcp/badge.svg)](https://coveralls.io/github/UI5/mcp) + +## Description + +The UI5 MCP server offers tools to improve the developer experience when working with Agentic AI. + +## Features + +To be filled. + +## Requirements + +- [Node.js](https://nodejs.org/) Version v22.15.0 +- [npm](https://www.npmjs.com/) Version v8.0.0 or higher + +## Installation -UI5 MCP offers tools to improve the developer experience when working with Agentic AI. +To install the MCP server, run the following command in your terminal: -## Requirements and Setup +```bash +git clone https://github.com/ui5/mcp.git +# alternatively download and extract the zip file: https://github.com/ui5/mcp/archive/refs/heads/main.zip -*Insert a short description what is required to get your project running...* +cd mcp +npm install && npm run build +npm link +``` + +## Configuration + +After the above installation has been completed, configure the UI5 MCP server in your client. + +### General Configuration for most clients + +```json +{ + "mcpServers": { + "ui5mcp": { + "command": "ui5mcp", + "args": [] + } + } +} +``` + +### VSCode + +Follow the MCP install [guide](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server) using the above configuration. + +Or use the VSCode CLI: + +```bash +# Using VSCode CLI +code --add-mcp '{"name":"ui5mcp","command":"ui5mcp","args":[]}' +``` ## Support, Feedback, Contributing -This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/UI5/ui5-mcp/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md). +This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/UI5/mcp/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md). + +You can also chat with us in the [`#tooling`](https://openui5.slack.com/archives/C0A7QFN6B) channel of the [OpenUI5 Community Slack](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com/). For public Q&A, use the [`ui5-tooling` tag on Stack Overflow](https://stackoverflow.com/questions/tagged/ui5-tooling). ## Security / Disclosure -If you find any bug that may be a security problem, please follow our instructions at [in our security policy](https://github.com/UI5/ui5-mcp/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems. +If you find any bug that may be a security problem, please follow our instructions at [in our security policy](https://github.com/UI5/mcp/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems. ## Code of Conduct -We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/SAP/.github/blob/main/CODE_OF_CONDUCT.md) at all times. +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/UI5/mcp?tab=coc-ov-file#readme) at all times. ## Licensing -Copyright 2025 SAP SE or an SAP affiliate company and ui5-mcp contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/UI5/ui5-mcp). +Copyright 2025 SAP SE or an SAP affiliate company and contributors. Please see our [LICENSE](./LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/UI5/mcp). diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000..641ad891 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,10 @@ +### Support + +If you need help setting something up, or if you have questions regarding UI5 MCP, please refrain from opening an issue on GitHub. + +Instead, please use one of the following platforms to seek help: + +* [StackOverflow](http://stackoverflow.com/questions/tagged/ui5-tooling) +* The [`#tooling`](https://openui5.slack.com/archives/C0A7QFN6B) channel of the [OpenUI5 Community Slack](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com). + +If you want to report an issue or request a new feature, please follow our [Contribution Guidelines](./CONTRIBUTING.md#-feature-requests). diff --git a/docs/Guidelines.md b/docs/Guidelines.md new file mode 100644 index 00000000..25fadd46 --- /dev/null +++ b/docs/Guidelines.md @@ -0,0 +1,28 @@ +# Development Conventions and Guidelines + +## Git Guidelines + +### No Merge Commits + +Please use [rebase instead of merge](https://www.atlassian.com/git/tutorials/merging-vs-rebasing) to update a branch to the latest main. This helps keeping a clean commit history in the project. + +### Commit Message Style + +This project uses the [Conventional Commits specification](https://www.conventionalcommits.org/) to ensure a consistent way of dealing with commit messages. + +```` +fix(xml-transpiler): Log unknown namespaces as verbose instead of warning + +Ignoring them seems safe, so no warning should be produced. There's +typically also nothing a developer can do to resolve the warning. +```` + +#### Structure + +```` +type(scope): Description +```` + +- required: every commit message has to start with a lowercase `type`. The project has defined a set of [valid types](../commitlint.config.mjs#L10). +- optional: the `scope` is typically the affected module. If multiple modules are affected by the commit, skip it or define a meaningful abstract scope. +- required: the `description` has to follow the Sentence Case style. Only the first word and proper nouns are written in uppercase. diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json new file mode 100644 index 00000000..03534356 --- /dev/null +++ b/npm-shrinkwrap.json @@ -0,0 +1,13 @@ +{ + "name": "@ui5/mcp-server", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@ui5/mcp-server", + "version": "0.0.1", + "license": "Apache-2.0" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..f4201c11 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "@ui5/mcp-server", + "version": "0.0.1", + "description": "A MCP server for UI5", + "author": { + "name": "SAP SE", + "email": "openui5@sap.com", + "url": "https://www.sap.com" + }, + "license": "Apache-2.0", + "keywords": [ + "openui5", + "sapui5", + "ui5", + "development", + "mcp" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/UI5/mcp.git" + }, + "bugs": { + "url": "https://github.com/UI5/mcp/issues" + } +}