mirror of
https://github.com/MinaSaad1/pbi-cli
synced 2026-04-21 13:37:19 +00:00
## Claude Code integration now fully opt-in (Fix 3) - `pbi connect` no longer writes to ~/.claude/ automatically - New `pbi-cli` entry point: `pbi-cli skills install/uninstall/list` - `pbi-cli skills install` shows exact paths before writing and requires y/N confirmation - `pbi connect` prints a one-line tip if skills are not yet installed - `pbi skills` subgroup removed from the `pbi` entry point ## DLL licensing compliance (Fix 1) - pyproject.toml updated to PEP 639 SPDX dual expression: MIT AND LicenseRef-Microsoft-AS-Client-Libraries - license-files declaration: LICENSE, THIRD_PARTY_LICENSES.md, NOTICE - THIRD_PARTY_LICENSES.md: full verbatim MS Analysis Services Client Libraries EULA - NOTICE: short-form attribution for wheel redistribution - src/pbi_cli/dlls/README.md: in-directory sentinel for the MS DLLs - setuptools requirement bumped to >=77.0 for PEP 639 support ## SECURITY.md rewrite (Fix 2) - Supported versions table updated to 3.10.x - Architecture section: no MCP server, no subprocess, direct pythonnet interop - Global Configuration Modifications section updated to reflect opt-in model - Bundled Binaries section references THIRD_PARTY_LICENSES.md ## Documentation - README.md, README.pypi.md: corrected 3-step setup flow - CHANGELOG.md: [3.10.3] entry - CONTRIBUTING.md: pbi skills -> pbi-cli skills - All 7 semantic model SKILL.md files: prerequisites updated to 3-step flow - New SVG/PNG marketing and documentation assets
2.1 KiB
2.1 KiB
Contributing to pbi-cli
Thanks for your interest in contributing! Here's how to get started.
Development Setup
git clone https://github.com/MinaSaad1/pbi-cli.git
cd pbi-cli
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
Running Tests
pytest # all tests
pytest -x -q # stop on first failure
pytest --cov=pbi_cli # with coverage
pytest -m "not e2e" # skip integration tests
Code Quality
All checks must pass before submitting a PR:
ruff check src/ tests/ # linting
ruff format --check src/ tests/ # formatting
mypy src/ # type checking
Pull Request Process
- Fork the repo and create a feature branch from
master - Write tests for new functionality (target 80%+ coverage)
- Ensure all checks pass (
ruff,mypy,pytest) - Keep PRs focused on a single change
- Use conventional commit messages:
feat:,fix:,docs:,test:,chore:
Project Structure
src/pbi_cli/
commands/ # Click command groups (one file per domain)
core/ # MCP client, config, output formatting
skills/ # Claude Code SKILL.md files (bundled)
utils/ # REPL, helpers
tests/ # Mirrors src/ structure
Adding a New Command Group
- Create
src/pbi_cli/commands/your_cmd.py - Use
run_tool()from_helpers.pyfor MCP calls - Register the group in
main.py_register_commands() - Add tests in
tests/test_commands/test_your_cmd.py
Adding a New Skill
- Create
src/pbi_cli/skills/your-skill/SKILL.md - Follow the frontmatter format from existing skills
- Test with
pbi-cli skills listandpbi-cli skills install
Reporting Issues
Open an issue on GitHub with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Python version and OS
Code of Conduct
Be respectful and constructive. We're all here to make Power BI development better.