Maintainer's Guide¶
This document provides guidelines and procedures for EVOSEAL maintainers.
Table of Contents¶
- Maintainer Responsibilities
- Review Process
- Release Process
- Handling Security Issues
- Managing Dependencies
- Community Management
- Decision Making
- Onboarding New Maintainers
- Stepping Down
Maintainer Responsibilities¶
As a maintainer, you are expected to:
- Review Pull Requests
- Ensure code quality and consistency
- Verify tests pass
- Check for proper documentation
-
Enforce code of conduct
-
Triage Issues
- Label and categorize issues
- Identify duplicates
- Help reproduce bugs
-
Guide contributors
-
Release Management
- Follow the release process
- Update changelog
-
Create release notes
-
Community Engagement
- Answer questions
- Welcome new contributors
- Moderate discussions
Review Process¶
Code Review Guidelines¶
- First Pass
- Check for obvious issues
- Verify tests exist
-
Check documentation
-
In-Depth Review
- Understand the changes
- Check for edge cases
- Consider performance implications
-
Verify security
-
Final Check
- Squash and merge
- Update documentation
- Close related issues
Review Labels¶
needs-tests
: Missing test coverageneeds-docs
: Missing documentationneeds-changelog
: Changelog entry requiredblocked
: Waiting on other changesdo-not-merge
: Do not merge until resolved
Release Process¶
Patch Release (x.y.Z)¶
- Create release branch from
main
- Update version in
__version__.py
- Update
CHANGELOG.md
- Create PR and get approval
- Merge to
main
- Create GitHub release
- Publish to PyPI
Minor Release (x.Y.0)¶
- Create
release-x.y
branch frommain
- Follow patch release process
- Update
main
version to next development version
Major Release (X.0.0)¶
- Create RFC (Request for Comments)
- Get community feedback
- Follow minor release process
Handling Security Issues¶
Reporting Process¶
- Acknowledge receipt within 3 days
- Verify the vulnerability
- Work on a fix in private
- Prepare a security advisory
- Release fixed version
- Disclose vulnerability
Security Team¶
- Primary: security@example.com
- Backup: maintainers@example.com
Managing Dependencies¶
Adding Dependencies¶
- Add to appropriate requirements file:
requirements/base.txt
for core depsrequirements/dev.txt
for dev tools-
requirements/requirements.txt
for pinned versions -
Justify the addition
- Consider security implications
- Document in
CHANGELOG.md
Updating Dependencies¶
- Test updates locally
- Check for breaking changes
- Update documentation if needed
- Update
CHANGELOG.md
Community Management¶
Communication Channels¶
- GitHub Issues: Feature requests and bug reports
- Discussions: General questions and ideas
- Chat: Real-time discussions
Handling Conflicts¶
- Stay neutral and professional
- Refer to code of conduct
- Escalate if needed
- Document decisions
Decision Making¶
Process¶
- Open an issue for discussion
- Allow time for feedback (minimum 72 hours)
- Seek consensus
- Make decision if no consensus
- Document the decision
Decision Records¶
Maintain a docs/decisions
directory with:
- Context
- Decision
- Consequences
Onboarding New Maintainers¶
Criteria¶
- Consistent contributions
- Quality of contributions
- Understanding of project
- Community involvement
Process¶
- Nomination by existing maintainer
- Discussion in private
- Vote among current maintainers
- Onboarding tasks
- Announcement
Stepping Down¶
Process¶
- Notify other maintainers
- Transfer responsibilities
- Update documentation
- Announce departure
Emeritus Status¶
- Retain read access
- Welcome to return
- Acknowledged in
MAINTAINERS.md
Last Updated: June 17, 2025
Last update:
2025-07-20
Created: 2025-06-17
Created: 2025-06-17