๐Ÿค Contributing to FixMP3Tags

Thank you for your interest in contributing! Whether you're fixing bugs, improving documentation, testing with different MP3 files, or adding features โ€” your help is welcome and appreciated.

๐Ÿ“ฆ Project Scope

FixMP3Tags is a command-line tool for fixing and normalizing MP3 ID3 tags. It aims to be:

๐Ÿงฐ How to Contribute

๐Ÿ› Report Bugs

โœจ Suggest Features

๐Ÿ› ๏ธ Submit Code

  1. Fork the repo
  2. Create a new branch (feature/my-feature or fix/my-bug)
  3. Make your changes
  4. Run tests: make test
  5. Submit a pull request with a clear summary

๐Ÿ“š Improve Docs

๐ŸŽต Test with Different MP3 Files

๐Ÿงช Development Setup

git clone https://github.com/vr-ski/fix-mp3-tags.git
cd fix-mp3-tags

# Install dependencies
cpanm --installdeps .

# Run tests
make test

# Or directly with prove
prove -l t/

# Test the script
perl -Ilib bin/fix-mp3-tags --help

For development with a local Perl environment:

# Using perlbrew (recommended)
perlbrew install perl-5.36.0
perlbrew switch perl-5.36.0

# Using plenv
plenv install 5.36.0
plenv global 5.36.0

๐Ÿงผ Code Style

This project uses:

Before submitting:

# Format code
perltidy lib/**/*.pm bin/fix-mp3-tags

# Check code quality
perlcritic lib/**/*.pm bin/fix-mp3-tags

# Run tests
make test

# Or run specific tests
prove -lv t/01-processor.t

Key Style Points:

๐Ÿงช Testing

Running Tests:

# Basic test suite
make test

# With verbose output
prove -lv t/

# Specific test file
prove -lv t/02-user-patterns.t

# Test coverage (if Devel::Cover installed)
cover -test

Adding Tests:

๐Ÿ“ฆ Release Process

For maintainers:

  1. Update $VERSION in lib/FixMP3Tags/Processor.pm
  2. Update Changes file with release notes
  3. Commit and tag: git tag -a v0.02 -m "Release 0.02"
  4. Push tags: git push --tags

๐Ÿ“„ License and Attribution

By contributing, you agree that your code will be released under the BSD 2-Clause License.

This project builds upon the Perl ecosystem and MP3::Tag library. Special thanks to all the CPAN contributors whose modules make this tool possible.

๐Ÿ™Œ Thank You

Your contributions help make this tool more reliable and useful for everyone. If you've tested this with different MP3 files, tag formats, or operating systems, please share your experience!

๐Ÿ” Need Help?

Happy hacking! ๐ŸŽต