Thank you for your interest in contributing to the Shopify Metafields Copy Tool! This document provides guidelines and instructions for contributing to this project.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Code Style Guidelines
- Reporting Bugs
- Suggesting Enhancements
By participating in this project, you are expected to uphold a respectful and inclusive environment. Please be kind and considerate in your interactions with other contributors.
Before creating bug reports, please check the existing issues to see if the problem has already been reported. When creating a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include details about your configuration and environment
If you have a suggestion for a new feature or improvement:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the use case
- Describe the current behavior and explain which behavior you expected to see instead
-
Fork the repository
# Clone your fork git clone https://github.com/YOUR_USERNAME/shopify-metadata-migrator.git cd shopify-metadata-migrator
-
Ensure you have the prerequisites
- Node.js 18+ installed
- Access to Shopify stores for testing
-
Set up your development environment
# No additional dependencies required # The project uses native Node.js fetch
-
Create a feature branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix
-
Fork the repository
- Click the "Fork" button on the main repository page
- This creates a copy of the repository under your GitHub account
-
Create a feature branch
- Always create a new branch for your changes
- Use descriptive branch names (e.g.,
feature/add-validation,fix/metafield-copy-issue)
-
Make your changes
- Write clear, readable code
- Follow the existing code style
- Add comments where necessary
- Test your changes thoroughly
-
Test your changes
- Test with both source and target Shopify stores
- Verify that the tool works as expected
- Check for any error conditions
-
Commit your changes
git add . git commit -m "feat: add new validation for metafield types" # Use conventional commit messages
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Select the
masterbranch as the target - Fill out the pull request template (if available)
- Provide a clear description of your changes
-
Wait for review
- Maintainers will review your pull request
- Address any feedback or requested changes
- Once approved, your changes will be merged
- Use meaningful variable and function names
- Add comments for complex logic
- Follow the existing code structure and patterns
- Use consistent indentation (2 spaces)
- Use semicolons at the end of statements
Use conventional commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changesstyle:for formatting changesrefactor:for code refactoringtest:for adding or updating testschore:for maintenance tasks
Example:
feat: add validation for metaobject reference types
fix: handle GraphQL errors more gracefully
docs: update README with new examples
When creating a pull request, include:
- Summary: Brief description of the changes
- Motivation: Why this change is needed
- Changes: Detailed list of what was changed
- Testing: How you tested the changes
- Screenshots: If applicable, include screenshots or examples
When reporting bugs, please include:
-
Environment details:
- Node.js version
- Operating system
- Shopify store types (development/production)
-
Steps to reproduce:
- Exact command used
- Expected behavior
- Actual behavior
-
Error messages:
- Full error output
- Any relevant logs
-
Additional context:
- Any relevant configuration
- Steps you've already tried
When suggesting enhancements:
-
Describe the problem:
- What limitation or issue are you addressing?
- How does it affect users?
-
Propose a solution:
- How should the tool behave?
- What new features would help?
-
Consider alternatives:
- Are there other ways to solve this?
- What are the trade-offs?
If you need help with your contribution:
- Check existing issues and pull requests
- Ask questions in the issue comments
- Be patient and respectful
By contributing to this project, you agree that your contributions will be licensed under the same terms as the project itself.
Thank you for contributing to the Shopify Metafields Copy Tool!