Skip to content

Commit 0100b19

Browse files
author
Max Wang
committed
added versioning and changelog standards
1 parent 09ff1fe commit 0100b19

2 files changed

Lines changed: 67 additions & 45 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,19 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
58
## [0.1.0b1] - 2025-11-14
69

710
### Added
8-
**Initial beta release** of Microsoft Dataverse SDK for Python
9-
10-
**Core Client & Authentication:**
11-
- Core `DataverseClient` with Azure Identity authentication support
12-
- Secure authentication using Azure Identity credentials (Service Principal, Managed Identity, Interactive Browser)
13-
- TLS 1.2+ encryption for all API communications
14-
- Proper credential handling without exposing secrets in logs
15-
16-
**Data Operations:**
17-
- Complete CRUD operations (create, read, update, delete) for Dataverse records
11+
- Initial beta release of Microsoft Dataverse SDK for Python
12+
- Core `DataverseClient` with Azure Identity authentication support (Service Principal, Managed Identity, Interactive Browser) (#1)
13+
- Complete CRUD operations (create, read, update, delete) for Dataverse records (#1)
1814
- Advanced OData query support with filtering, sorting, and expansion
19-
- SQL query execution via `query_sql()` method with result pagination
20-
- Support for batch operations and transaction handling
21-
- File upload capabilities for file and image columns
22-
23-
**Table Management:**
15+
- SQL query execution via `query_sql()` method with result pagination (#14)
16+
- Bulk operations including `CreateMultiple`, `UpdateMultiple`, and `BulkDelete` (#6, #8, #34)
17+
- File upload capabilities for file and image columns (#17)
2418
- Table metadata operations (create, inspect, delete custom tables)
25-
26-
**Reliability & Error Handling:**
27-
- Comprehensive error handling with specific exception types (`DataverseError`, `AuthenticationError`, etc.)
28-
- HTTP retry logic with exponential backoff for resilient operations
29-
30-
**Developer Experience:**
31-
- Example scripts demonstrating common integration patterns
32-
- Complete documentation with quickstart guides and API reference
33-
- Modern Python packaging using `pyproject.toml` configuration
34-
35-
**Quality Assurance:**
36-
- Comprehensive test suite with unit and integration tests
37-
- GitHub Actions CI/CD pipeline for automated testing and validation
38-
- Azure DevOps PR validation pipeline
39-
40-
### Changed
41-
- N/A
42-
43-
### Deprecated
44-
- N/A
45-
46-
### Removed
47-
- N/A
48-
49-
### Fixed
50-
- N/A
51-
52-
### Security
53-
- N/A
19+
- Comprehensive error handling with specific exception types (`DataverseError`, `AuthenticationError`, etc.) (#22, #24)
20+
- HTTP retry logic with exponential backoff for resilient operations (#72)

CONTRIBUTING.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,59 @@ provided by the bot. You will only need to do this once across all repos using o
1010

1111
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
1212
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
13-
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
13+
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
14+
15+
## Development Guidelines
16+
17+
### Versioning
18+
19+
This project follows open-source industry standard [Semantic Versioning](https://semver.org/):
20+
21+
**Version Format:** `MAJOR.MINOR.PATCH` (e.g., `1.2.3`)
22+
23+
**When to bump:**
24+
- **MAJOR** (e.g., 1.0.0 → 2.0.0): Breaking changes that require users to update their code
25+
- Removing public methods, classes, or modules
26+
- Changing method signatures (parameters, return types)
27+
- Changing default behavior that breaks existing code
28+
- Dropping Python version support
29+
30+
- **MINOR** (e.g., 1.0.0 → 1.1.0): New features that are backwards-compatible
31+
- Adding new public methods or classes
32+
- Adding optional parameters (with defaults)
33+
- New features that don't break existing code
34+
- Adding Python version support
35+
36+
- **PATCH** (e.g., 1.0.0 → 1.0.1): Bug fixes that are backwards-compatible
37+
- Fixing bugs without changing the API
38+
- Documentation updates
39+
- Security fixes (non-breaking)
40+
- Internal refactoring
41+
42+
### Changelog
43+
44+
We maintain a [CHANGELOG.md](CHANGELOG.md) following the [Keep a Changelog](https://keepachangelog.com/) format.
45+
46+
**For Contributors:** You don't need to update the changelog with your PRs. Maintainers will update it at release time.
47+
48+
**For Maintainers (Release Process):**
49+
50+
Before each release, review merged PRs and update the changelog with:
51+
52+
**What to include:**
53+
- ✅ New features (→ **Added**)
54+
- ✅ Changes to existing functionality (→ **Changed**)
55+
- ✅ Soon-to-be removed features (→ **Deprecated**)
56+
- ✅ Removed features (→ **Removed**)
57+
- ✅ Bug fixes (→ **Fixed**)
58+
- ✅ Security fixes (→ **Security**)
59+
- ❌ Internal refactoring (unless it affects performance/behavior)
60+
- ❌ Test-only changes
61+
- ❌ CI/CD changes
62+
- ❌ Documentation-only updates
63+
64+
**Process:**
65+
1. Review all PRs merged since last release
66+
2. Add user-facing changes to CHANGELOG.md under appropriate categories
67+
3. Include PR numbers for reference (e.g., `(#123)`)
68+
4. Focus on **why it matters to users**, not implementation details

0 commit comments

Comments
 (0)