Files
gh-secondsky-sap-skills-ski…/references/support-and-community.md
2025-11-30 08:55:38 +08:00

564 lines
13 KiB
Markdown

# UI5 Linter - Support and Community Resources
**Source**: [https://github.com/UI5/linter/blob/main/SUPPORT.md](https://github.com/UI5/linter/blob/main/SUPPORT.md)
**Last Updated**: 2025-11-21
**UI5 Linter Version**: 1.20.5
---
## Overview
This guide helps you get support for UI5 Linter issues, connect with the community, and choose the right channel for different types of questions or problems.
---
## ⚠️ Important: Do NOT Use GitHub Issues for Questions
**GitHub Issues are for**:
- ✅ Bug reports (confirmed issues)
- ✅ Feature requests
- ✅ Documentation problems
**GitHub Issues are NOT for**:
- ❌ Setup help
- ❌ General questions ("How do I...")
- ❌ Configuration assistance
- ❌ Troubleshooting guidance
- ❌ Best practices discussions
**Why**: GitHub Issues are for tracking development work, not community support. Questions in issues slow down the development process.
---
## Official Support Channels
### 1. StackOverflow ⭐ Recommended for Questions
**URL**: [http://stackoverflow.com/questions/tagged/ui5-tooling](http://stackoverflow.com/questions/tagged/ui5-tooling)
**Tag**: `ui5-tooling`
**Best For**:
- General questions about UI5 Linter
- Configuration help
- Troubleshooting linting issues
- Best practices
- "How do I..." questions
**How to Ask**:
```markdown
**Title**: Clear, specific question
Example: "How do I configure UI5 Linter to ignore test files?"
**Tags**: ui5-tooling, sapui5 (or openui5)
**Question Body**:
1. What you're trying to achieve
2. What you've tried
3. What's not working
4. Relevant code/configuration
5. Environment (UI5 Linter version, Node version, OS)
```
**Example Question**:
```markdown
# How do I fix no-globals rule errors in my UI5 project?
I'm getting `no-globals` rule violations when using `sap.ui.getCore()`.
## What I've Tried
- Running `ui5lint --fix` but it doesn't fix all occurrences
- Checked documentation for autofix limitations
## Configuration
```javascript
// ui5lint.config.mjs
export default {
ignores: ["webapp/thirdparty/**"]
};
```
## Environment
- UI5 Linter: 1.20.5
- Node.js: 20.11.0
- OS: Windows 11
## Question
What are the limitations of autofix for `no-globals`? How do I manually fix unsupported cases?
```
**Why StackOverflow**:
- ✅ Answers benefit entire community (searchable)
- ✅ Expert community members can help
- ✅ Voting system highlights best answers
- ✅ Permanent knowledge base
---
### 2. OpenUI5 Community Slack
**Invite**: [https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com)
**Channel**: `#tooling`
**Best For**:
- Quick questions
- Real-time troubleshooting
- Community discussions
- Networking with other UI5 developers
- Sharing experiences
**How to Join**:
1. Visit [https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com)
2. Enter your email
3. Accept invitation
4. Join `#tooling` channel
**Channel Etiquette**:
- ✅ Search channel history first
- ✅ Provide context (version, OS, error message)
- ✅ Share code snippets (use code blocks)
- ✅ Thank people who help
- ❌ Don't cross-post to multiple channels
- ❌ Don't DM unless asked
- ❌ Don't post long code dumps (use gist.github.com)
**Example Slack Question**:
```
Hi! Getting an unexpected warning from UI5 Linter:
File: webapp/controller/Main.controller.js
Warning: no-ambiguous-event-handler
Config:
```javascript
export default {
ignores: []
};
```
UI5 Linter: 1.20.5
Node: 20.11.0
Any ideas? 🤔
```
**Why Slack**:
- ✅ Fast responses (often within minutes)
- ✅ Friendly community
- ✅ Good for clarifying questions
- ✅ Less formal than StackOverflow
---
## When to Use Each Channel
### Use StackOverflow When:
- ✅ You have a well-defined question
- ✅ Answer would benefit others (searchable)
- ✅ You need detailed, documented response
- ✅ You can wait a few hours for answer
- ✅ You want permanent reference
**Examples**:
- "How does the autofix feature work?"
- "What's the best way to configure linter for monorepo?"
- "How do I integrate UI5 Linter with ESLint?"
---
### Use Slack When:
- ✅ You need quick clarification
- ✅ You're troubleshooting in real-time
- ✅ You want to discuss approach before implementing
- ✅ You have a time-sensitive question
- ✅ You want community feedback
**Examples**:
- "Quick question: Does --fix work on manifest.json?"
- "Anyone seen this error before? [screenshot]"
- "What's the recommended ignore pattern for Fiori Elements apps?"
---
### Use GitHub Issues When:
- ✅ You found a confirmed bug
- ✅ You have feature request with detailed use case
- ✅ Documentation is incorrect or missing
- ✅ You can provide reproduction steps
**Examples**:
- "Rule no-globals doesn't detect sap.ui.getCore() in arrow functions"
- "Feature Request: Add autofix for deprecated Button.tap event"
- "Documentation: Autofix limitations page missing Core API examples"
**Process**:
1. Confirm it's actually a bug (not configuration issue)
2. Search existing issues
3. Use issue template
4. Provide reproduction steps
5. Include environment details
See [Contributing Guide](contributing.md) for full details.
---
## Getting Help Checklist
Before asking for help, ensure you have:
**✅ Basic Information Ready**:
- [ ] UI5 Linter version: `ui5lint --version`
- [ ] Node.js version: `node --version`
- [ ] Operating system and version
- [ ] UI5 version in your project
**✅ Configuration**:
- [ ] ui5lint.config.js/mjs/cjs file (if used)
- [ ] Relevant package.json scripts
- [ ] ui5.yaml configuration
**✅ Error Details**:
- [ ] Exact error message (copy/paste, don't retype)
- [ ] Full command you ran
- [ ] Verbose output: `ui5lint --verbose`
**✅ Code Context**:
- [ ] Minimal code example demonstrating issue
- [ ] File structure (if relevant)
- [ ] Related configuration
**✅ What You've Tried**:
- [ ] List steps already attempted
- [ ] Note what didn't work
- [ ] Include search terms used (to avoid duplicate suggestions)
---
## Common Questions and Where to Ask
### Configuration Questions
**Question**: "How do I ignore specific files?"
**Best Channel**: StackOverflow or Slack
**Quick Answer**: See [Configuration Guide](configuration.md)
```javascript
// ui5lint.config.mjs
export default {
ignores: ["webapp/thirdparty/**", "webapp/test/**"]
};
```
---
### Rule Questions
**Question**: "What does rule no-deprecated-api detect?"
**Best Channel**: StackOverflow (permanent reference)
**Quick Answer**: See [Rules Reference](rules-complete.md)
---
### Autofix Questions
**Question**: "Why didn't --fix work for deprecated API?"
**Best Channel**: StackOverflow or Slack
**Quick Answer**: See [Autofix Limitations](autofix-complete.md)
Many APIs can't be automatically fixed. Check the autofix reference for specific API limitations.
---
### Performance Questions
**Question**: "Linter is slow on my large codebase, how to optimize?"
**Best Channel**: StackOverflow (detailed answer)
**Quick Answer**: See [Performance Guide](performance.md)
Use ignore patterns, lint specific directories, and check benchmarks.
---
### Integration Questions
**Question**: "How do I integrate with GitHub Actions?"
**Best Channel**: StackOverflow
**Quick Answer**: See SKILL.md Integration section and `templates/github-actions-lint.yml`
---
## Community Resources
### Official Documentation
**Main Repository**: [https://github.com/UI5/linter](https://github.com/UI5/linter)
**Documentation**:
- README: [https://github.com/UI5/linter/blob/main/README.md](https://github.com/UI5/linter/blob/main/README.md)
- Rules: [https://github.com/UI5/linter/blob/main/docs/Rules.md](https://github.com/UI5/linter/blob/main/docs/Rules.md)
- Autofix: [https://github.com/UI5/linter/blob/main/docs/Scope-of-Autofix.md](https://github.com/UI5/linter/blob/main/docs/Scope-of-Autofix.md)
- Performance: [https://github.com/UI5/linter/blob/main/docs/Performance.md](https://github.com/UI5/linter/blob/main/docs/Performance.md)
---
### UI5 Community Resources
**SAP Community**: [https://community.sap.com/](https://community.sap.com/)
**Topics**: SAPUI5, OpenUI5, UI5 Tooling
**Best For**: General SAP/UI5 questions, not specifically UI5 Linter
---
**OpenUI5 Website**: [https://openui5.org/](https://openui5.org/)
**Best For**: UI5 framework documentation and resources
---
**SAPUI5 Documentation**: [https://sapui5.hana.ondemand.com/](https://sapui5.hana.ondemand.com/)
**Best For**: Official SAPUI5 framework documentation
---
### Learning Resources
**UI5 Tooling**: [https://sap.github.io/ui5-tooling/](https://sap.github.io/ui5-tooling/)
**Related Tools**: UI5 CLI, UI5 Builder, UI5 Server, UI5 Linter
---
## Troubleshooting Before Asking
### Step 1: Check Documentation
**Skill References**:
- [SKILL.md](../SKILL.md) - Main skill documentation
- [Rules Reference](rules-complete.md) - All 19 rules explained
- [Autofix Reference](autofix-complete.md) - What can/can't be fixed
- [CLI Options](cli-options.md) - All command-line flags
- [Configuration](configuration.md) - Config file setup
- [Performance](performance.md) - Optimization tips
**Official Docs**:
- [UI5 Linter README](https://github.com/UI5/linter/blob/main/README.md)
- [Rules Documentation](https://github.com/UI5/linter/blob/main/docs/Rules.md)
---
### Step 2: Search Existing Issues
```
[https://github.com/UI5/linter/issues?q=is%3Aissue+YOUR+SEARCH+TERMS](https://github.com/UI5/linter/issues?q=is%3Aissue+YOUR+SEARCH+TERMS)
```
**Common Searches**:
- "no-globals autofix"
- "manifest version error"
- "performance slow"
- "configuration not found"
---
### Step 3: Enable Verbose Logging
```bash
ui5lint --verbose --details
```
**Output includes**:
- Configuration loading details
- File processing information
- Rule execution details
- Detailed error messages
---
### Step 4: Try Dry-Run for Autofix
```bash
UI5LINT_FIX_DRY_RUN=true ui5lint --fix
```
**See what would change** without modifying files.
---
### Step 5: Isolate the Issue
**Create minimal reproduction**:
```bash
# Create test directory
mkdir ui5lint-test
cd ui5lint-test
# Create minimal file
cat > test.js << 'EOF'
sap.ui.define([], function() {
return sap.ui.getCore();
});
EOF
# Test
ui5lint test.js
```
**If issue reproduces**: Great for asking help with minimal example
**If issue doesn't reproduce**: Problem is in your configuration or other code
---
## Response Time Expectations
### StackOverflow
- **Typical Response**: Few hours to 1-2 days
- **Depends On**: Question quality, complexity, community availability
- **Increase Chances**: Clear title, good tags, detailed question, code examples
### Slack
- **Typical Response**: Minutes to few hours
- **Depends On**: Time of day, channel activity
- **Increase Chances**: Be respectful of others' time, provide context
### GitHub Issues (Bugs)
- **Typical Response**: Few days to 1-2 weeks for initial triage
- **Depends On**: Issue severity, reproduction quality, maintainer availability
- **Increase Chances**: Complete bug template, provide reproduction, search duplicates
---
## Security Issues
**🔒 SPECIAL PROCESS FOR SECURITY VULNERABILITIES**
**DO NOT**:
- ❌ Create public GitHub issue
- ❌ Post in Slack
- ❌ Post on StackOverflow
- ❌ Discuss publicly anywhere
**DO**:
- ✅ Follow [Security Policy](https://github.com/UI5/linter/security/policy)
- ✅ Use GitHub's private security advisory feature
- ✅ Allow maintainers time to fix before public disclosure
**Why**: Public disclosure before fix puts all users at risk.
---
## Reporting Success Stories
**Where**: OpenUI5 Slack `#tooling` channel
**Share**:
- ✅ How UI5 Linter helped you
- ✅ Issues prevented
- ✅ Time saved
- ✅ Migration successes
**Benefits**:
- Helps others learn
- Motivates maintainers
- Builds community
**Example**:
```
Used UI5 Linter to prepare our app for UI5 2.x!
Found 127 issues:
- 45 deprecated APIs
- 23 global variable usages
- 12 manifest problems
Autofix handled 60%, manually fixed the rest in 2 days.
Migration to UI5 2.x: ✅ Success!
Thanks to the UI5 Linter team! 🎉
```
---
## Contributing Back
After getting help, consider:
**✅ Answer Questions**: Help others on StackOverflow or Slack
**✅ Improve Documentation**: Submit PR for docs that were unclear
**✅ Report Bugs**: If you found an issue, report it properly
**✅ Share Knowledge**: Blog posts, talks, tutorials
**✅ Contribute Code**: See [Contributing Guide](contributing.md)
---
## Summary
**Quick Decision Tree**:
```
Need help with UI5 Linter?
├─ General question / How to?
│ └─ StackOverflow (ui5-tooling tag)
├─ Quick question / Real-time troubleshooting?
│ └─ OpenUI5 Slack (#tooling channel)
├─ Found a bug / Feature request?
│ └─ GitHub Issues (after confirming)
├─ Security vulnerability?
│ └─ Private security advisory (GitHub)
└─ General UI5 question (not linter-specific)?
└─ SAP Community / UI5 documentation
```
---
**Resources Checklist**:
**Before Asking**:
- [ ] Check skill references
- [ ] Search StackOverflow
- [ ] Search GitHub issues
- [ ] Try verbose mode
- [ ] Create minimal reproduction
**When Asking**:
- [ ] Choose right channel
- [ ] Provide version info
- [ ] Include configuration
- [ ] Share code example
- [ ] Describe what you tried
**After Receiving Help**:
- [ ] Mark answer as accepted (StackOverflow)
- [ ] Thank helpers
- [ ] Consider contributing back
---
**Document Version**: 1.0
**Last Verified**: 2025-11-21
**Next Review**: 2026-02-21