Skip to content

Commit c89a3b8

Browse files
release notes v1.0.0
1 parent 171ce6e commit c89a3b8

1 file changed

Lines changed: 105 additions & 0 deletions

File tree

RELEASE_NOTES.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Release Notes
2+
3+
## Version 1.0.0 (2026-03-30)
4+
5+
### 🎉 Initial Release
6+
7+
First stable release of the JMBG Python library for validating and parsing Serbian unique master citizen numbers (JMBG - Jedinstveni Matični Broj Građana).
8+
9+
### ✨ Features
10+
11+
- **JMBG Validation**: Comprehensive validation with multiple checks
12+
- Length validation (13 digits)
13+
- Format validation (numeric only)
14+
- Date validation (including leap year support)
15+
- Region code validation
16+
- Checksum validation (modulo 11 algorithm)
17+
18+
- **Information Extraction**:
19+
- Birth date parsing
20+
- Age calculation
21+
- Gender determination (male/female)
22+
- Region and country information
23+
- Access to all JMBG components (day, month, year, region, unique number, checksum)
24+
25+
- **Supported Regions**:
26+
- Serbia (71-79): Belgrade, Kragujevac, Niš, etc.
27+
- Serbia/Vojvodina (80-89): Novi Sad, Subotica, Pančevo, etc.
28+
- Serbia/Kosovo (91-96): Priština, Peć, Prizren, etc.
29+
- Bosnia and Herzegovina (10-19)
30+
- Montenegro (21-29)
31+
- Croatia (30-39)
32+
- Macedonia (41-49)
33+
- Slovenia (50)
34+
35+
- **Convenient API**:
36+
- `Jmbg` class for parsing and accessing JMBG data
37+
- `valid()` function for quick validation
38+
- `parse()` function for parsing
39+
- Type hints for better IDE support
40+
- Custom `JmbgError` exception with descriptive error messages
41+
42+
- **Additional Features**:
43+
- Adult status check (`is_adult()` - 18+ years)
44+
- String representation and formatting
45+
- Equality comparison and hashing support
46+
- No external dependencies
47+
48+
### 📚 Documentation
49+
50+
- Comprehensive README with examples
51+
- Complete API documentation in docstrings
52+
- Usage examples for common scenarios
53+
- MIT License
54+
55+
### 🧪 Testing
56+
57+
- Full test suite with 23 unit tests
58+
- 100% test coverage for core functionality
59+
- Tests for edge cases (leap years, boundary unique numbers, etc.)
60+
61+
### 📦 Package Information
62+
63+
- **Package Name**: `jmbg-labs`
64+
- **Python Support**: Python 3.8+
65+
- **License**: MIT
66+
- **Repository**: https://github.com/jmbg-labs/python
67+
68+
### 🚀 Installation
69+
70+
```bash
71+
pip install jmbg-labs
72+
```
73+
74+
### 💡 Quick Start
75+
76+
```python
77+
from jmbg import Jmbg, valid
78+
79+
# Validate JMBG
80+
if valid('0710003730015'):
81+
jmbg = Jmbg('0710003730015')
82+
print(f"Age: {jmbg.get_age()}")
83+
print(f"Gender: {'Male' if jmbg.is_male() else 'Female'}")
84+
print(f"Region: {jmbg.region_text}")
85+
```
86+
87+
### 🙏 Credits
88+
89+
Developed by [JMBG Labs](https://github.com/jmbg-labs)
90+
91+
---
92+
93+
## Upcoming Features
94+
95+
Future releases may include:
96+
97+
- Additional validation options
98+
- Export to different formats (JSON, dict)
99+
- Bulk validation utilities
100+
- Performance optimizations
101+
- Extended region information
102+
103+
---
104+
105+
For full documentation, visit the [GitHub repository](https://github.com/jmbg-labs/python).

0 commit comments

Comments
 (0)