Spaces:
Sleeping
Sleeping
A newer version of the Streamlit SDK is available:
1.53.1
Contributing to Multi-Lingual Product Catalog Translator
Thank you for your interest in contributing to this project! This document provides guidelines for contributing to the Multi-Lingual Product Catalog Translator.
π€ How to Contribute
1. Fork and Clone
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/BharatMLStack.git cd BharatMLStack
2. Set Up Development Environment
Follow the setup instructions in the README.md to get your development environment running.
3. Create a Feature Branch
git checkout -b feature/your-feature-name
4. Make Your Changes
- Write clean, documented code
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
5. Test Your Changes
# Test backend
cd backend
python -m pytest
# Test frontend manually
cd ../frontend
streamlit run app.py
6. Commit Your Changes
Use conventional commit messages:
git commit -m "feat: add new translation feature"
git commit -m "fix: resolve translation accuracy issue"
git commit -m "docs: update API documentation"
7. Push and Create Pull Request
git push origin feature/your-feature-name
Then create a pull request on GitHub.
π Reporting Issues
Bug Reports
When reporting bugs, please include:
- Environment: OS, Python version, browser
- Steps to reproduce: Clear, numbered steps
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Screenshots: If applicable
- Error messages: Full error text/stack traces
Feature Requests
When requesting features, please include:
- Use case: Why is this feature needed?
- Proposed solution: How should it work?
- Alternatives considered: Other approaches you've thought of
- Additional context: Any other relevant information
π Code Style Guidelines
Python Code Style
- Follow PEP 8 guidelines
- Use type hints for all functions
- Write comprehensive docstrings
- Maximum line length: 88 characters (Black formatter)
- Use meaningful variable and function names
Commit Message Format
We use conventional commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Documentation Style
- Use clear, concise language
- Include code examples where helpful
- Update relevant documentation with code changes
- Use proper Markdown formatting
π§ͺ Testing Guidelines
Backend Testing
- Write unit tests for all business logic
- Test error conditions and edge cases
- Mock external dependencies (AI models, database)
- Aim for high test coverage
Frontend Testing
- Test user workflows manually
- Verify responsiveness across devices
- Test error handling and edge cases
- Ensure accessibility compliance
π Review Process
Pull Request Guidelines
- Keep PRs focused on a single feature/fix
- Write clear PR descriptions
- Include screenshots for UI changes
- Link related issues using keywords (fixes #123)
- Ensure all tests pass
- Request reviews from maintainers
Code Review Checklist
- Code follows style guidelines
- Tests are included and passing
- Documentation is updated
- No sensitive information is committed
- Performance impact is considered
- Security implications are reviewed
π Development Resources
AI/ML Components
Web Development
Deployment
π·οΈ Release Process
Version Numbering
We follow semantic versioning (SemVer):
- MAJOR.MINOR.PATCH
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes (backward compatible)
Release Checklist
- All tests pass
- Documentation is updated
- CHANGELOG.md is updated
- Version numbers are bumped
- Tag is created and pushed
- Release notes are written
πββοΈ Getting Help
Community Support
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For questions and general discussion
- Documentation: Check existing docs first
Maintainer Contact
- Create an issue for technical questions
- Use discussions for general inquiries
- Be patient and respectful in all interactions
π Code of Conduct
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Our Standards
- Be respectful: Treat everyone with kindness and respect
- Be inclusive: Welcome people of all backgrounds and experience levels
- Be constructive: Provide helpful feedback and suggestions
- Be patient: Remember that everyone is learning
Thank you for contributing to make this project better! π