This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
We welcome several types of contributions:
- 🐛 Bug fixes - Fix issues and improve reliability
- ✨ New features - Add new commands or functionality
- 📖 Documentation - Improve guides, examples, and API docs
- 🧪 Tests - Add or improve test coverage
- 💬 Help others - Answer questions and provide support
- 💡 Feature suggestions - Propose new capabilities
To avoid cases where submitted PRs are rejected, please follow the following steps:
- To report a new issue, follow Create an issue
- To work on existing issue, follow Find an issue to work on
- To contribute code, follow Pull request process
Before reporting a new bug or suggesting a feature, please search the GitHub Issues page to check if one already exists.
All reported bugs or feature suggestions must start with creating an issue in the GitHub Issues pane. Please add as much information as possible to help us with triage and understanding. Once the issue is triaged, labels will be added to indicate its status (e.g., "need more info", "help wanted").
When creating an issue please select the relevant topic - bug, new feature or general question - and provide all required input.
We aim to respond to new issues promptly, but response times may vary depending on workload and priority.
If you're new to contributing, look for issues with these labels:
good-first-issue- Beginner-friendly tasks that are well-scoped and documentedhelp wanted- Issues where community contributions are especially welcomedocumentation- Improve docs, examples, or help text (great for first contributions)
- Start small - Look for typo fixes, documentation improvements, or simple bug fixes
- Read existing code - Familiarize yourself with the codebase by exploring similar commands
- Ask questions - Comment on issues to clarify requirements or get guidance
- Test locally - Always test your changes thoroughly before submitting
All PRs must be linked with a "help wanted" issue. To avoid rework after investing effort:
- Comment on the issue - Express interest and describe your planned approach
- Wait for acknowledgment - Get team confirmation before starting significant work
- Ask for clarification - Don't hesitate to ask questions about requirements
Please review engineering guidelines for coding guidelines and common flows to help you with your task.
Please use a descriptive title and provide a clear summary of your changes.
All pull requests (PRs) should be linked to an approved issue, please start the PR description with - Resolves #issue-number
Before submitting the pull request please verify that:
- The PR is focused on the related task
- Tests coverage is kept and all tests pass
- Your code is aligned with the code conventions of this project
Before your PR can be merged, make sure to address and resolve all review comments. PR will be labeled as "need author feedback" when there are comments to resolve. Approved PRs will be merged by the Fabric CLI team.
All pull requests must include proper change documentation using changie, which is pre-installed in the development container. This ensures that release notes are automatically generated and changes are properly tracked.
Every PR must include at least one change entry created using changie new. You may add multiple entries if your PR introduces multiple distinct changes.
-
From the Terminal, run
changie newcommand:changie new
-
Select the appropriate change type from the available options:
⚠️ Breaking Change - For changes that break backward compatibility- 🆕 New Items Support - For adding support for new Fabric item types
- ✨ New Functionality - For new features, commands, or capabilities
- 🔧 Bug Fix - For fixing existing issues or incorrect behavior
- ⚡ Additional Optimizations - For performance improvements or optimizations
- 📝 Documentation Update - For documentation improvements or updates
-
Provide a clear description of your change:
- Write in present tense (e.g., "Add support for..." not "Added support for...")
- Be specific and user-focused
- Include the affected command or feature if applicable
- Keep it concise but informative
Add new 'fab describe capacity' command for viewing capacity detailsFix authentication timeout issue in interactive modeUpdate workspace examples with new folder hierarchy patternsOptimize API response caching to reduce network calls
- One logical change per entry: If your PR fixes a bug and adds a feature, create two separate entries
- User-facing perspective: Describe what users will experience, not internal implementation details
- Clear and actionable: Users should understand what changed and how it affects them
- Consistent formatting: Follow the examples and existing patterns in the changelog
The change entries will be automatically included in the release notes when a new version is published. This process ensures that all improvements, fixes, and new features are properly communicated to users.
Here are some resources to help you get started:
- A good place to start learning about Fabric CLI is the Fabric CLI documentation
- If you want to contribute code, please check more details about coding guidelines, major code flows and code building block in Engineering guidelines
- Browse existing commands to understand patterns and conventions
- Check out usage examples to see the CLI in action
For detailed engineering guidelines please refer to our Wiki pages.
The Wiki contains essential information and requirements for contributors, including: Code Style and Standards, Architecture Overview, Testing and more.
Before contributing code, please review these guidelines to ensure your contributions align with the project's standards and practices.
Some areas require special consideration:
- Authentication module - Changes preferred to be made by Fabric CLI team due to security implications
- Core infrastructure - Major architectural changes require team discussion
- GitHub Discussions - Ask questions and discuss ideas
- GitHub Issues - Report specific problems
- Documentation - Check comprehensive guides
- Be patient - Maintainers balance multiple responsibilities
- Be respectful - Follow the code of conduct
- Be specific - Provide clear, detailed information
- Be collaborative - Work together to improve the project
Thank you for contributing to Microsoft Fabric CLI! Your contributions help make this tool better for the entire Fabric community.