# XmlTransformer TODO List for Initial Release (v1.0.1)

## Critical (Required for Release)
All critical tasks completed.

## Recommended (Enhance Release Quality)
1. Add screenshots to README.md:
   - Quick panel for XSL selection.
   - Parameter input panel.
   - Transformation output (e.g., test-output.html).
2. Add download verification in setup scripts:
   - Check file existence/size after curl/wget/Invoke-WebRequest.
   - Optionally add checksum validation for JARs.
3. Remove unused self.default_xsl in XmlTransformer_build.py or integrate it (e.g., preselect if exists).
4. Add unit tests for key functions (e.g., get_xsl_output_method, parse_xml_param_file, validate_xml_file).
5. Make output panel name configurable in XmlTransformer_exec.py (not hardcoded "exec").

## Optional (Future Improvements)
6. Add comprehensive parameter sanitization function to handle special characters (e.g., ;, ", ') to prevent command injection.
7. Support Sublime Text 4 Python 3.8 features (e.g., f-strings) if dropping Sublime Text 3 support.
8. Add cleanup for failed transformation outputs (e.g., delete partial files).
9. Add configuration option for output directory (currently uses input file directory).
10. Include test cases for edge cases (e.g., invalid params, large XML files).
11. Update xmlresolver to 6.0.19 for latest bug fixes (skipped for v1.0.1).

## Release Tasks
12. Push to GitHub:
   - Create public repo: https://github.com/haloway13/XmlTransformer [Completed]
   - Add description: "Sublime Text package for XSLT transformations using Saxon-HE" [Completed]
   - Add topics: sublime-text, xslt, xml [Completed]
   - Tag v1.0.1 [Completed]
13. Submit to Package Control:
   - Fork https://github.com/wbond/package_control_channel [Completed]
   - Add entry to repository/x.json [Completed]
   - Submit PR with testing confirmation [Completed]
14. Test on all platforms (Windows, Linux, macOS) to ensure compatibility. [Completed]

## Completed Tasks
15. Fixed README.md: Removed "Upgrade to SuperGrok", completed License section, added Additional Files section.
16. Updated CHANGELOG.md date to 2025-10-10 and documented features.
17. Fixed combineWin.py to handle .html files as text by adding '.html' to text_extensions.
18. Sanitized parameter values in run_transformation to escape spaces using .format() for Python 3.3 compatibility.
19. Added input validation for XML/XSL files in XmlTransformer_build.py (validate_xml_file method).
20. Uncommented settings save in XmlTransformer_build.py (on_param_file_name_entered, on_param_file_selected) to persist last_param_filename.
21. Enhanced error detection in XmlTransformer_exec.py to include "Warning" and "Fatal Error" patterns.
22. Fixed Java not found error by using explicit path detection for macOS (Intel: /usr/local/opt/openjdk@11/bin/java, Apple Silicon: /opt/homebrew/opt/openjdk@11/bin/java) in XmlTransformer_build.py.
23. Tested package on Windows, Linux, and macOS for cross-platform compatibility.
24. Copied package to ~/XmlTransformer for Git repository setup.
25. Configured Git with no-reply email for privacy.
26. Resolved repository not found error, created and pushed to https://github.com/haloway13/XmlTransformer with v1.0.0 tag.
27. Fixed non-fast-forward error by pushing local master to remote main.
28. Forked packagecontrol/channel, added XmlTransformer entry with author handle haloway13, committed.
29. Created XmlTransformerV6.zip and verified v1.0.0 tag for Package Control distribution.
30. Submitted PR to packagecontrol/channel, but redirected to wbond/package_control_channel due to library vs. package distinction.
31. Forked wbond/package_control_channel, added XmlTransformer entry to repository/x.json, and resubmitted PR to correct channel.
32. Added .gitattributes to exclude test_xslt/, *.sublime-project, *.sublime-workspace from package ZIP.
33. Confirmed PR submission to wbond/package_control_channel with no conflicts.
34. Simplified x.json entry to use details and tags, removed Context.sublime-menu, added debug setting to XmlTransformer_build.py per PR feedback.
35. Added Run without parameters option to XmlTransformer_build.py for improved usability.
36. Further simplified x.json by removing redundant name, description, and author fields per PR feedback.
37. Removed dependencies.json, as it incorrectly listed non-Python dependencies, and updated README.md with setup instructions.
38. Moved install.txt to messages/install.txt and added Main.sublime-menu for settings access.
39. Tagged v1.0.1 to reflect updates (debug fixes, parameter option, menu additions).
