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 ## 🧪 Development Roadmap
-**Milestone 1**: Basic DMARC Monitoring (up to 5 domains) -**Milestone 1**: Basic DMARC Monitoring (up to 5 domains)
- 🔄 **Milestone 2**: Enhanced Visualization & Analysis - **Milestone 2**: IMAP Integration
- 🔜 **Milestone 3**: Database Persistence & User Management - **Milestone 3**: Database Persistence
- 🔜 **Milestone 4**: Email Integration & Automated Processing - 🔜 **Milestone 4**: Enhanced Dashboard & Visualization
- 🔜 **Milestone 5**: DNS Health & Configuration Suggestions - 🔜 **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 ## 🤝 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/), 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). 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 ### Added
- Initial release of DMARQ - Initial release of DMARQ
- Domain management with basic health checks - DMARC XML report parsing (supports XML, ZIP, and GZIP formats)
- DMARC report processing (aggregate and forensic) - In-memory storage of report data for up to 5 domains
- Dashboard with compliance rate visualization - Simple dashboard UI showing DMARC compliance statistics
- IMAP integration for automatic report collection - Report upload via web interface
- User authentication and management - Domain overview with compliance rates and email statistics
- SQLite and PostgreSQL database support - Docker Compose deployment support
- Docker deployment option - FastAPI backend with Jinja2 templates and Tailwind CSS
- 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
+2 -2
View File
@@ -188,8 +188,8 @@ jq '.[] | select(.labels[] | contains("priority: high"))' issues.json
## 📞 Support ## 📞 Support
- **Source**: Generated from [ROADMAP.md](../ROADMAP.md) - **Source**: Generated from [roadmap.md](../roadmap.md)
- **Script**: [scripts/generate_issues.py](../scripts/generate_issues.py) - **Script**: [scripts/generate_issues.py](../../../scripts/generate_issues.py)
- **Questions**: Open an issue in the DMARQ repository - **Questions**: Open an issue in the DMARQ repository
## 🔒 Important Notes ## 🔒 Important Notes
@@ -29,7 +29,7 @@ Ongoing code quality tasks to maintain and improve DMARQ.
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -56,7 +56,7 @@ Ongoing security tasks to maintain and improve DMARQ.
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -83,7 +83,7 @@ Ongoing documentation tasks to maintain and improve DMARQ.
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -110,7 +110,7 @@ Ongoing community tasks to maintain and improve DMARQ.
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -138,7 +138,7 @@ Historical trend analysis
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -162,7 +162,7 @@ Comparative reporting
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -186,7 +186,7 @@ Export capabilities (PDF, CSV)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -210,7 +210,7 @@ Scheduled reports
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -234,7 +234,7 @@ Custom dashboards
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -262,7 +262,7 @@ Multi-tenant architecture
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -286,7 +286,7 @@ API rate limiting
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -310,7 +310,7 @@ Advanced RBAC
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -334,7 +334,7 @@ SSO integration (SAML, OAuth)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -358,7 +358,7 @@ Compliance reporting (SOC 2, GDPR)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -382,7 +382,7 @@ High availability setup
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -406,7 +406,7 @@ Backup and disaster recovery
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -434,7 +434,7 @@ Historical trend charts (Chart.js integration)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -458,7 +458,7 @@ Compliance rate visualizations
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -482,7 +482,7 @@ Volume and sender analytics
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -506,7 +506,7 @@ Time-series data displays
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -530,7 +530,7 @@ Domain comparison views
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -558,7 +558,7 @@ FastAPI Users integration
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -582,7 +582,7 @@ User registration and management
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -606,7 +606,7 @@ JWT-based authentication
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -630,7 +630,7 @@ Role-based access control (RBAC)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -654,7 +654,7 @@ Password reset functionality
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -678,7 +678,7 @@ Email verification (optional)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -706,7 +706,7 @@ Apprise integration
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -730,7 +730,7 @@ Customizable alert rules
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -754,7 +754,7 @@ Multi-channel notifications (Email, Slack, etc.)
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -778,7 +778,7 @@ Alert history and management
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -802,7 +802,7 @@ Notification preferences per user
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -830,7 +830,7 @@ Custom alert conditions
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -854,7 +854,7 @@ Threshold-based triggers
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -878,7 +878,7 @@ New sender detection
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -902,7 +902,7 @@ Anomaly detection
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -926,7 +926,7 @@ Scheduled report summaries
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -954,7 +954,7 @@ DNS record health checks
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -978,7 +978,7 @@ SPF/DKIM/DMARC validation
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1002,7 +1002,7 @@ Cloudflare API integration
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1026,7 +1026,7 @@ Configuration recommendations
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1050,7 +1050,7 @@ DNS change tracking
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1078,7 +1078,7 @@ Forensic report parsing
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1102,7 +1102,7 @@ Failure sample analysis
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1126,7 +1126,7 @@ PII redaction options
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1150,7 +1150,7 @@ Detailed authentication failure views
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1174,7 +1174,7 @@ Sample download/export
### Related Documentation ### 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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1211,7 +1211,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1242,7 +1242,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1273,7 +1273,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1306,7 +1306,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1333,7 +1333,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1363,7 +1363,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
@@ -1390,7 +1390,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
### Related Documentation ### Related Documentation
- [SECURITY.md](../SECURITY.md) - [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.* *This issue was auto-generated from the DMARQ roadmap.*
+2
View File
@@ -45,6 +45,8 @@ nav:
- Contributing: development/contributing.md - Contributing: development/contributing.md
- Testing: development/testing.md - Testing: development/testing.md
- Roadmap: development/roadmap.md - Roadmap: development/roadmap.md
- Agentic Coding: development/agents.md
- Issue Generation: development/issue_generation.md
- FAQ: faq.md - FAQ: faq.md
- Changelog: changelog.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] [tool.black]
line-length = 100 line-length = 100
target-version = ['py310'] target-version = ['py310']
+6 -6
View File
@@ -84,7 +84,7 @@ class RoadmapParser:
"### Related Documentation", "### Related Documentation",
"", "",
"- [SECURITY.md](../SECURITY.md)", "- [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.*" "*This issue was auto-generated from the DMARQ roadmap.*"
@@ -166,7 +166,7 @@ class RoadmapParser:
body_parts.extend([ body_parts.extend([
"### Related Documentation", "### 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.*" "*This issue was auto-generated from the DMARQ roadmap.*"
@@ -211,7 +211,7 @@ class RoadmapParser:
"", "",
"### Related Documentation", "### 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)", "- [SECURITY.md](../SECURITY.md)",
"", "",
"---", "---",
@@ -290,7 +290,7 @@ class RoadmapParser:
"", "",
"### Related Documentation", "### 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.*" "*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(): def main():
"""Main function.""" """Main function."""
repo_root = Path(__file__).parent.parent repo_root = Path(__file__).parent.parent
roadmap_path = repo_root / "ROADMAP.md" roadmap_path = repo_root / "docs" / "development" / "roadmap.md"
output_dir = repo_root / "generated_issues" output_dir = repo_root / "docs" / "development" / "generated_issues"
output_dir.mkdir(exist_ok=True) output_dir.mkdir(exist_ok=True)
print("=" * 60) 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")