TODO List - OpenType Feature Freezer
Lists 100+ planned improvements for a font tool: documentation, testing, refactoring, CI/CD, GUI, CLI, performance, and community tasks.
What this file does
Lists 100+ planned improvements for a font tool: documentation, testing, refactoring, CI/CD, GUI, CLI, performance, and community tasks.
When to use it
- You maintain a font processing tool and need a structured backlog
- You want to see what a mature open-source project's roadmap looks like
- You are planning a major refactor and need a checklist of code quality items
- You are evaluating whether to contribute to this project and want to see its priorities
Assumes this stack
TODO List - OpenType Feature Freezer
Immediate Priority Tasks
Documentation
- Add comprehensive docstrings to all classes and methods in
__init__.py - Add docstrings to all functions in
cli.py - Create inline code comments for complex logic
- Add type hints to remaining untyped functions
- Write API documentation using Sphinx
- Update README.md with badges and better examples
- Create CONTRIBUTING.md guide
- Add troubleshooting section to documentation
Error Handling
- Create
exceptions.pywith custom exception classes - Replace generic try/except blocks with specific exceptions
- Add input validation for font files
- Validate feature tags before processing
- Improve error messages with actionable suggestions
- Add proper logging configuration
Testing
- Increase test coverage to >90%
- Add unit tests for error conditions
- Create integration tests for full workflows
- Add property-based tests using Hypothesis
- Test with various font formats (TTF, OTF, WOFF, WOFF2)
- Add performance benchmarks
CI/CD Setup
- Create GitHub Actions workflow for testing
- Add matrix testing for Python 3.8-3.12
- Set up cross-platform testing (Windows, macOS, Linux)
- Configure automatic PyPI releases
- Add code coverage reporting
- Set up dependabot for dependency updates
Short-term Tasks (1-2 months)
Code Refactoring
- Split large functions into smaller, focused methods
- Extract substitution logic into separate classes
- Replace SimpleNamespace with dataclasses
- Implement proper separation of concerns
- Add design patterns (Strategy, Factory)
- Remove code duplication
- Split
RemapByOTLclass into smaller, single-responsibility modules/classes (e.g.,FontIOHandler,FeatureProcessor,CmapRemapper,FontNamer,Reporter) - Split
tests/test_rename.pyintotests/test_rename_ttf.pyandtests/test_rename_otf.py - Extract
get_versionfromapp/dmgbuild_settings.pytoapp/utils.py - Extract
icon_from_appfromapp/dmgbuild_settings.pytoapp/mac_app_utils.py
Build System
- Simplify PyInstaller specs
- Investigate modern packaging alternatives (Briefcase, PyOxidizer)
- Create unified build process for CLI and GUI
- Add build scripts for all platforms
- Create automated release scripts
GUI Improvements
- Evaluate modern GUI frameworks as Gooey alternatives
- Add drag-and-drop support for font files
- Implement batch processing interface
- Add preferences/settings persistence
- Create font feature preview
- Improve error reporting in GUI
Medium-term Tasks (3-6 months)
CLI Enhancements
- Add Rich library for beautiful terminal output
- Implement progress bars for operations
- Add interactive mode for guided usage
- Create shell completion scripts
- Add --dry-run option
- Implement verbose logging levels
Distribution
- Create Homebrew formula for macOS
- Create Chocolatey package for Windows
- Submit to Linux package repositories
- Create Docker images
- Set up Docker Hub automated builds
- Create portable versions
Performance
- Profile code for bottlenecks
- Optimize font processing algorithms
- Add multiprocessing for batch operations
- Implement caching for repeated operations
- Reduce memory usage for large fonts
Long-term Tasks (6+ months)
Advanced Features
- Add variable font support
- Implement color font handling
- Create font feature analysis tools
- Add font comparison utilities
- Support for more substitution types
- Implement feature interaction detection
API and Integration
- Create Python API for programmatic use
- Develop RESTful web service
- Build WebAssembly version
- Create plugin system
- Add webhook support
- Develop browser extension
Community
- Create project website
- Set up discussion forum
- Write tutorials and guides
- Create video demonstrations
- Establish code of conduct
- Build contributor community
Bug Fixes and Maintenance
Known Issues
- Fix potential Unicode handling edge cases
- Resolve memory leaks in batch processing
- Handle corrupted font files gracefully
- Fix GUI freezing on large operations
- Improve cross-platform path handling
Technical Debt
- Remove deprecated function usage
- Update to latest fontTools APIs
- Clean up legacy code
- Standardize coding style
- Remove unused imports and variables
- Optimize import statements
Documentation Tasks
User Documentation
- Create user manual
- Write FAQ section
- Add cookbook with recipes
- Create quick start guide
- Document all CLI options
- Add GUI screenshots
Developer Documentation
- Document architecture decisions
- Create development setup guide
- Write testing guidelines
- Document release process
- Add code style guide
- Create plugin development guide
Quality Assurance
Code Quality
- Achieve 100% type coverage
- Fix all Ruff warnings
- Add security scanning
- Implement complexity limits
- Add mutation testing
- Create quality dashboards
User Experience
- Conduct usability testing
- Gather user feedback
- Implement telemetry (opt-in)
- Create user surveys
- Analyze usage patterns
- Improve based on feedback
What's inside
9 priority sections with 100+ checkbox items, grouped by Immediate, Short-term, Medium-term, Long-term, Bug Fixes, Documentation, and Quality Assurance.
Change this for your project
- Replace
twardoch/fonttools-opentype-feature-freezerwith your own repository name - Replace
app/dmgbuild_settings.pyandapp/utils.pywith your own module paths - Replace
tests/test_rename.pywith your own test file names
Where it goes
Keep alongside your test suite. Used to define and score model evaluations.
Worth borrowing
- Organize tasks by time horizon (Immediate, Short-term, Medium-term, Long-term) to clarify priorities
- Include a separate Bug Fixes and Technical Debt section to keep maintenance visible
- Split large classes into single-responsibility modules as a concrete refactoring pattern
Related Documents
AI Tools for Developers
Curates a personal reference of AI coding tools, models, and setup instructions for VS Code, Xcode, and Cursor.
IATA BCBP Standard Compliance
Documents which IATA BCBP fields and barcode formats a Swift library implements, including Version 8 gender code support.
Evaluating AI Agent Systems: Metrics, Benchmarks, and Quality Assurance (2024-2026)
Surveys 2024-2026 metrics, benchmarks, and monitoring tools for evaluating AI agent systems, with recommendations for a self-improving coding agent.
Voice AI Leaderboards, Benchmarks, and Evaluation Gaps (Jan 2025 -- Feb 2026)
Surveys 20+ voice AI benchmarks from Jan 2025, Feb 2026, identifies evaluation gaps, and provides leaderboard data for STT, TTS, and end-to-end voice agents.