Add semantic release with automatic versioning, CHANGELOG, and VERSION file

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/00a0c62f-f046-4f73-9c6a-79073906264c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-29 10:29:29 +00:00
parent f686e854cb
commit 630be30a82
11 changed files with 192 additions and 108 deletions
+35
View File
@@ -0,0 +1,35 @@
name: Release
on:
push:
branches:
- main
jobs:
release:
name: Semantic Release
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Semantic Release
uses: python-semantic-release/python-semantic-release@v10
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
changelog: true
commit: true
tag: true
push: true
vcs_release: true
+12 -5
View File
@@ -111,10 +111,13 @@ Then visit [http://localhost:8080](http://localhost:8080)
## 🧪 Development Roadmap
-**Milestone 1**: Basic DMARC Monitoring (up to 5 domains)
- 🔄 **Milestone 2**: Enhanced Visualization & Analysis
- 🔜 **Milestone 3**: Database Persistence & User Management
- 🔜 **Milestone 4**: Email Integration & Automated Processing
- 🔜 **Milestone 5**: DNS Health & Configuration Suggestions
- **Milestone 2**: IMAP Integration
- **Milestone 3**: Database Persistence
- 🔜 **Milestone 4**: Enhanced Dashboard & Visualization
- 🔜 **Milestone 5**: User Authentication & Multi-User Support
See the full [Roadmap](docs/development/roadmap.md) and [TODO](TODO.md) for details
on what is planned vs. what is currently implemented.
---
@@ -126,7 +129,11 @@ MIT License — you are free to use, modify, and host DMARQ for any purpose.
## 🤝 Contributing
Pull requests are welcome! Please open an issue to discuss major features or design ideas before submitting code. Full contributing guide coming soon.
Pull requests are welcome! Please open an issue to discuss major features or design ideas before submitting code. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
This project uses [Conventional Commits](https://www.conventionalcommits.org/) and
[python-semantic-release](https://python-semantic-release.readthedocs.io/) for
automated versioning and changelog generation.
---
+1
View File
@@ -0,0 +1 @@
0.3.0
+3
View File
@@ -0,0 +1,3 @@
"""DMARQ - DMARC monitoring and analysis platform."""
__version__ = "0.3.0"
+39 -41
View File
@@ -5,47 +5,45 @@ All notable changes to DMARQ will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-04-15
This changelog is automatically maintained by
[python-semantic-release](https://python-semantic-release.readthedocs.io/).
See the root [CHANGELOG.md](https://github.com/christianlouis/dmarq/blob/main/CHANGELOG.md)
for the canonical version.
## [0.3.0] - 2026-02-09
### Added
- Database persistence with SQLAlchemy ORM (SQLite and PostgreSQL support)
- Database migrations with Alembic
- Persistent storage replacing in-memory data store
### Security
- Fixed missing authentication on admin endpoints (CRITICAL)
- Replaced default SECRET_KEY with secure auto-generation (CRITICAL)
- Replaced ElementTree with defusedxml to prevent XXE attacks (HIGH)
- Fixed IMAP credentials exposure in URL query parameters (HIGH)
- Added multi-layer file upload validation (HIGH)
- Added security headers middleware (CSP, X-Frame-Options, HSTS, etc.) (MEDIUM)
- Restricted CORS configuration (MEDIUM)
- Sanitized error responses to prevent information disclosure (MEDIUM)
- Added comprehensive security test suite
## [0.2.0] - 2026-01-15
### Added
- IMAP integration for automatic DMARC report fetching
- Background task scheduler for periodic mailbox polling
- IMAP configuration UI with connection testing
- Manual sync trigger and status indicators
## [0.1.0] - 2025-12-01
### Added
- Initial release of DMARQ
- Domain management with basic health checks
- DMARC report processing (aggregate and forensic)
- Dashboard with compliance rate visualization
- IMAP integration for automatic report collection
- User authentication and management
- SQLite and PostgreSQL database support
- Docker deployment option
- Basic alert system for compliance issues
- API for third-party integration
- Documentation site
### Security
- Secure password storage with bcrypt
- JWT-based authentication for API
- Rate limiting for API endpoints
- Input validation for all user inputs
## [0.9.0] - 2025-03-01
### Added
- Beta release for early testing
- All core functionality implemented
- Limited to SQLite database only
### Fixed
- Multiple parser bugs for different report formats
- UI responsiveness issues on mobile devices
## [0.8.0] - 2025-02-15
### Added
- Alpha release for internal testing
- Basic DMARC report parsing
- Simple domain management
- Initial dashboard design
### Known Issues
- Limited support for forensic reports
- Missing authentication features
- No alerting capabilities
- DMARC XML report parsing (supports XML, ZIP, and GZIP formats)
- In-memory storage of report data for up to 5 domains
- Simple dashboard UI showing DMARC compliance statistics
- Report upload via web interface
- Domain overview with compliance rates and email statistics
- Docker Compose deployment support
- FastAPI backend with Jinja2 templates and Tailwind CSS
+2 -2
View File
@@ -188,8 +188,8 @@ jq '.[] | select(.labels[] | contains("priority: high"))' issues.json
## 📞 Support
- **Source**: Generated from [ROADMAP.md](../ROADMAP.md)
- **Script**: [scripts/generate_issues.py](../scripts/generate_issues.py)
- **Source**: Generated from [roadmap.md](../roadmap.md)
- **Script**: [scripts/generate_issues.py](../../../scripts/generate_issues.py)
- **Questions**: Open an issue in the DMARQ repository
## 🔒 Important Notes
@@ -29,7 +29,7 @@ Ongoing code quality tasks to maintain and improve DMARQ.
### Related Documentation
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -56,7 +56,7 @@ Ongoing security tasks to maintain and improve DMARQ.
### Related Documentation
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -83,7 +83,7 @@ Ongoing documentation tasks to maintain and improve DMARQ.
### Related Documentation
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -110,7 +110,7 @@ Ongoing community tasks to maintain and improve DMARQ.
### Related Documentation
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -138,7 +138,7 @@ Historical trend analysis
### Related Documentation
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -162,7 +162,7 @@ Comparative reporting
### Related Documentation
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -186,7 +186,7 @@ Export capabilities (PDF, CSV)
### Related Documentation
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -210,7 +210,7 @@ Scheduled reports
### Related Documentation
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -234,7 +234,7 @@ Custom dashboards
### Related Documentation
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -262,7 +262,7 @@ Multi-tenant architecture
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -286,7 +286,7 @@ API rate limiting
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -310,7 +310,7 @@ Advanced RBAC
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -334,7 +334,7 @@ SSO integration (SAML, OAuth)
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -358,7 +358,7 @@ Compliance reporting (SOC 2, GDPR)
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -382,7 +382,7 @@ High availability setup
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -406,7 +406,7 @@ Backup and disaster recovery
### Related Documentation
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -434,7 +434,7 @@ Historical trend charts (Chart.js integration)
### Related Documentation
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -458,7 +458,7 @@ Compliance rate visualizations
### Related Documentation
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -482,7 +482,7 @@ Volume and sender analytics
### Related Documentation
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -506,7 +506,7 @@ Time-series data displays
### Related Documentation
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -530,7 +530,7 @@ Domain comparison views
### Related Documentation
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -558,7 +558,7 @@ FastAPI Users integration
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -582,7 +582,7 @@ User registration and management
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -606,7 +606,7 @@ JWT-based authentication
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -630,7 +630,7 @@ Role-based access control (RBAC)
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -654,7 +654,7 @@ Password reset functionality
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -678,7 +678,7 @@ Email verification (optional)
### Related Documentation
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -706,7 +706,7 @@ Apprise integration
### Related Documentation
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -730,7 +730,7 @@ Customizable alert rules
### Related Documentation
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -754,7 +754,7 @@ Multi-channel notifications (Email, Slack, etc.)
### Related Documentation
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -778,7 +778,7 @@ Alert history and management
### Related Documentation
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -802,7 +802,7 @@ Notification preferences per user
### Related Documentation
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -830,7 +830,7 @@ Custom alert conditions
### Related Documentation
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -854,7 +854,7 @@ Threshold-based triggers
### Related Documentation
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -878,7 +878,7 @@ New sender detection
### Related Documentation
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -902,7 +902,7 @@ Anomaly detection
### Related Documentation
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -926,7 +926,7 @@ Scheduled report summaries
### Related Documentation
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -954,7 +954,7 @@ DNS record health checks
### Related Documentation
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -978,7 +978,7 @@ SPF/DKIM/DMARC validation
### Related Documentation
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1002,7 +1002,7 @@ Cloudflare API integration
### Related Documentation
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1026,7 +1026,7 @@ Configuration recommendations
### Related Documentation
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1050,7 +1050,7 @@ DNS change tracking
### Related Documentation
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1078,7 +1078,7 @@ Forensic report parsing
### Related Documentation
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1102,7 +1102,7 @@ Failure sample analysis
### Related Documentation
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1126,7 +1126,7 @@ PII redaction options
### Related Documentation
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1150,7 +1150,7 @@ Detailed authentication failure views
### Related Documentation
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1174,7 +1174,7 @@ Sample download/export
### Related Documentation
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1211,7 +1211,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1242,7 +1242,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1273,7 +1273,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1306,7 +1306,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1333,7 +1333,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1363,7 +1363,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
@@ -1390,7 +1390,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation
- [SECURITY.md](../SECURITY.md)
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
---
*This issue was auto-generated from the DMARQ roadmap.*
+2
View File
@@ -45,6 +45,8 @@ nav:
- Contributing: development/contributing.md
- Testing: development/testing.md
- Roadmap: development/roadmap.md
- Agentic Coding: development/agents.md
- Issue Generation: development/issue_generation.md
- FAQ: faq.md
- Changelog: changelog.md
+22
View File
@@ -1,3 +1,25 @@
[project]
name = "dmarq"
version = "0.3.0"
description = "A modern, privacy-conscious DMARC monitoring and analysis platform"
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.10"
[tool.semantic_release]
version_toml = ["pyproject.toml:project.version"]
version_variables = ["backend/app/__init__.py:__version__"]
commit_message = "chore(release): v{version}"
tag_format = "v{version}"
build_command = "python3 scripts/sync_version.py"
upload_to_pypi = false
[tool.semantic_release.changelog]
changelog_file = "CHANGELOG.md"
[tool.semantic_release.branches.main]
match = "main"
[tool.black]
line-length = 100
target-version = ['py310']
+6 -6
View File
@@ -84,7 +84,7 @@ class RoadmapParser:
"### Related Documentation",
"",
"- [SECURITY.md](../SECURITY.md)",
"- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)",
"- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)",
"",
"---",
"*This issue was auto-generated from the DMARQ roadmap.*"
@@ -166,7 +166,7 @@ class RoadmapParser:
body_parts.extend([
"### Related Documentation",
"",
f"- [Milestone {milestone_num}](../ROADMAP.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
f"- [Milestone {milestone_num}](../roadmap.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
"",
"---",
"*This issue was auto-generated from the DMARQ roadmap.*"
@@ -211,7 +211,7 @@ class RoadmapParser:
"",
"### Related Documentation",
"",
f"- [Milestone {milestone_num}](../ROADMAP.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
f"- [Milestone {milestone_num}](../roadmap.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
"- [SECURITY.md](../SECURITY.md)",
"",
"---",
@@ -290,7 +290,7 @@ class RoadmapParser:
"",
"### Related Documentation",
"",
"- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)",
"- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)",
"",
"---",
"*This issue was auto-generated from the DMARQ roadmap.*"
@@ -452,8 +452,8 @@ def save_github_import_script(issues: List[Issue], output_path: Path):
def main():
"""Main function."""
repo_root = Path(__file__).parent.parent
roadmap_path = repo_root / "ROADMAP.md"
output_dir = repo_root / "generated_issues"
roadmap_path = repo_root / "docs" / "development" / "roadmap.md"
output_dir = repo_root / "docs" / "development" / "generated_issues"
output_dir.mkdir(exist_ok=True)
print("=" * 60)
+16
View File
@@ -0,0 +1,16 @@
#!/usr/bin/env python3
"""Sync the VERSION file from pyproject.toml after a version bump."""
import re
from pathlib import Path
root = Path(__file__).resolve().parent.parent
toml_content = (root / "pyproject.toml").read_text()
match = re.search(
r'^\[project\]\s*\n(?:.*\n)*?version\s*=\s*"([^"]+)"',
toml_content,
re.MULTILINE,
)
if match:
version = match.group(1)
(root / "VERSION").write_text(version + "\n")