Skip to content

Conversation

@suyask-msft
Copy link
Collaborator

@suyask-msft suyask-msft commented Nov 14, 2025

This pull request prepares the Microsoft Dataverse SDK for Python for its initial beta release, focusing on documentation, packaging, support, and code organization improvements. The most important changes include a comprehensive rewrite of the CHANGELOG.md for the beta launch, updates to documentation links, cleanup of support and dependency files, and refactoring of Python package __init__.py files to improve documentation generation and code clarity.

Release and Documentation Updates:

  • Rewrote CHANGELOG.md to announce the initial beta release (0.1.0b1), detailing major features, improvements, and developer experience enhancements. Removed outdated alpha release notes and the release notes template. [1] [2]
  • Updated documentation links in README.md to point to official Microsoft Learn and API reference pages for the Python SDK.

Support and Community Engagement:

  • Replaced placeholder content in SUPPORT.md with clear instructions for filing issues, getting help, and reporting security issues. Clarified that the SDK is community-supported and not covered by standard Microsoft support. [1] [2]

Packaging and Development Workflow:

  • Updated the GitHub Actions workflow to install development dependencies using python -m pip install -e .[dev] for consistency with modern Python packaging standards.
  • Removed the obsolete dev_dependencies.txt file in favor of using pyproject.toml for dependency management.

Codebase Organization:

  • Refactored all __init__.py files in core, data, and utils modules to remove re-exports, preventing documentation duplication with py2docfx and improving clarity. [1] [2] [3]This pull request prepares the Microsoft Dataverse SDK for Python for its initial public beta release, focusing on release documentation, support information, and developer experience improvements. The most important changes include a comprehensive update to the changelog for the first beta release, improved support documentation, and workflow enhancements for development dependencies.

Ready for first beta release to PyPI.

- Update CHANGELOG.md for 0.1.0b1 release (2025-11-14)
- Organize features into logical groups for better readability
- Remove legacy requirements.txt and dev_dependencies.txt files
- Modernize to pyproject.toml-only packaging approach
- Clean up changelog format for professional presentation
- Fix documentation links in README. These links will get active once published.

Ready for first beta release to PyPI.
@suyask-msft suyask-msft requested a review from a team as a code owner November 14, 2025 02:32
Copilot AI review requested due to automatic review settings November 14, 2025 02:32
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request prepares the project for its first PyPI beta release (version 0.1.0b1) by modernizing the packaging approach and improving documentation presentation.

  • Removes legacy requirements.txt and dev_dependencies.txt in favor of pyproject.toml-only packaging
  • Updates CHANGELOG.md with comprehensive, well-organized release notes for version 0.1.0b1
  • Updates README.md documentation links to point to official Microsoft Learn documentation

Reviewed Changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
requirements.txt Removed legacy requirements file; dependencies now managed exclusively in pyproject.toml
dev_dependencies.txt Removed legacy development dependencies file; dev dependencies now in pyproject.toml optional-dependencies
README.md Updated API reference and product documentation links to official Microsoft Learn URLs
CHANGELOG.md Added detailed 0.1.0b1 release notes organized into logical feature groups; removed template sections and unreleased placeholder

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

sagebree
sagebree previously approved these changes Nov 14, 2025
- Replace dev_dependencies.txt with 'pip install -e .[dev]'
- Ensures pytest and other dev tools are installed from pyproject.toml
- Aligns CI with modern Python packaging standards
- Remove uncertain references to GitHub Discussions and Stack Overflow
- Keep only rock-solid Microsoft standards (GitHub Issues + MSRC security)
- Achieve 98% confidence in Microsoft compliance
- Ready for 0.1.0b1 PyPI publication
@suyask-msft suyask-msft changed the title Prepare for PyPI release: Update changelog and README Prepare for PyPI release: Update changelog, support, and README files Nov 14, 2025
- Remove re-exports from all submodule __init__.py files (core, data, utils)
- Eliminates py2docfx documentation duplication issues
- Matches Azure SDK for Python patterns (explicit imports only)
- Keeps implementation details private and encourages proper imports
- All tests pass, zero breaking changes to existing code

This follows Microsoft's own SDK design patterns where:
- Main package exports only the primary client
- Submodules require explicit imports from specific modules
- No convenience re-exports that create duplicate API surface
- Resolved conflict in utils/__init__.py by keeping main's updated docstring
- Maintained our architectural changes (no re-exports)
- Integrated latest docstring improvements from main branch
@suyask-msft suyask-msft changed the title Prepare for PyPI release: Update changelog, support, and README files Prepare for PyPI release: Update changelog, support, and README files + Cleanup inits for re-exports Nov 14, 2025
@zhaodongwang-msft
Copy link
Collaborator

we'll need to update "from PowerPlatform.Dataverse.core import error_codes as ec" in test_http_errors.py

Major improvements for PyPI readiness:

Architecture & Standards:
- Align with Microsoft Azure SDK patterns (explicit imports only)
- Remove re-exports from all submodule __init__.py files
- Fix py2docfx documentation duplication issues
- Clean up verbose docstring additions for professional appearance

Code Quality:
- Fix deprecated datetime.utcnow() → datetime.now(timezone.utc)
- Update explicit imports: error_codes module usage consistency
- Eliminate all test warnings (pytest collection + deprecation)
- Rename test helper classes: TestClient→MockClient, TestableClient→MockableClient

Import Consistency:
- Replace 'from core import error_codes as ec' with direct imports
- Use explicit imports throughout codebase for better maintainability
- All HTTP error constants and functions imported directly

Result: Zero warnings, Microsoft-compliant architecture, PyPI-ready SDK
All tests pass, no breaking changes, professional documentation structure
@suyask-msft suyask-msft merged commit 8a2d8a3 into main Nov 14, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants