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:
@@ -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
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
"""DMARQ - DMARC monitoring and analysis platform."""
|
||||
|
||||
__version__ = "0.3.0"
|
||||
|
||||
+39
-41
@@ -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
|
||||
@@ -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.*
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
Reference in New Issue
Block a user