Thank you for your interest in contributing to this project! This document provides guidelines for contributing to the Logseq to Obsidian migration tool.
- Python 3.6 or higher
- Git
- A Logseq graph for testing
-
Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/logseq-to-obsidian-migration.git cd logseq-to-obsidian-migration -
Create a virtual environment
python3 -m venv logseq_env source logseq_env/bin/activate # On Windows: logseq_env\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Test the installation
python3 logseq_to_obsidian.py --help
Before creating an issue, please:
- Search existing issues to avoid duplicates
- Test with the latest version of the script
- Provide detailed information:
- Python version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Sample files (if applicable)
Use the provided issue templates:
- 🐛 Bug Report: For reporting bugs
- ✨ Feature Request: For suggesting new features
- 📚 Documentation: For documentation improvements
- Follow Python PEP 8 style guidelines
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and small
Before submitting changes:
-
Test with sample data
python3 logseq_to_obsidian.py --src examples/sample_logseq --out test_output --dry-run
-
Test all command-line options
python3 logseq_to_obsidian.py --src examples/sample_logseq --out test_output --frontmatter --status-tags --strip-properties --rename-journals --dry-run
-
Verify error handling with malformed files
Use clear, descriptive commit messages:
Add support for custom date formats
- Parse additional date formats in frontmatter
- Update documentation with new formats
- Add test cases for edge cases
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, well-documented code
- Add tests if applicable
- Update documentation
-
Test thoroughly
- Run the script with various options
- Test with different Logseq graph structures
- Verify error handling
-
Commit your changes
git add . git commit -m "Add your descriptive commit message"
-
Push and create PR
git push origin feature/your-feature-name
-
Create Pull Request
- Use the PR template
- Describe what changes you made
- Link any related issues
- Request review from maintainers
- Bug fixes: Fix reported issues
- Error handling: Improve robustness
- Documentation: Improve README and examples
- Testing: Add automated tests
- Performance: Optimize for large graphs
- Features: New conversion options
- CLI: Better command-line interface
- Logging: Add verbose output options
- GUI: Optional graphical interface
- Plugins: Obsidian plugin integration
- Batch processing: Multiple graph support
logseq-to-obsidian-migration/
├── logseq_to_obsidian.py # Main script
├── README.md # Documentation
├── CONTRIBUTING.md # This file
├── LICENSE # MIT License
├── requirements.txt # Dependencies
├── .gitignore # Git ignore rules
├── examples/ # Sample files
└── tests/ # Test files (future)
- Keep the main script focused on core functionality
- Use helper functions for complex operations
- Maintain backward compatibility when possible
- Document all public functions
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Follow the golden rule
- GitHub Issues: For bugs and feature requests
- Discussions: For questions and general discussion
- Email: For private concerns
Contributors will be recognized in:
- README.md contributors section
- Release notes
- GitHub contributors list
Thank you for contributing to this project! 🎉