So, you're wrestling with a complex problem and found the perfect package for it. Until you find a sudden hiccup or bug.
Try to find the underlying problem you need to solve. Perhaps the package isn't perfect for your use case or your approach need some tweaking.
- Is there a simple workaround? Often, lots of routes will get you to Rome.
- Is this package really the tailored solution you need? Or just a 90% there and will you end up hacking the last bits?
- Is the package well maintained and documented or abandoned? A well used package will likely cover a lot more situations and language versions than one which lacks activity.
If the package is right for your use case but you still encounter problems, chances are other people are on the same boat. Search the Github or Gitlab issues to look for answers.
Tip: when searching issues also include closed ones, as these often contain answered questions.
Nothing yet? Consider opening a new issue.
Add as much context as possible (current language version, what did you try before, ...), this will help getting a quick answer.
For smaller bugs, you could try and edit the package directly in your vendor folder - apply the changes afterwards with a pull request.
For more complex situations, pull down an own fork (see this this excellent guide by Matt Stauffer by Matt Stauffer) of the package and link composer to your local version. Not sure how to do this? Have a read here.
A pull request is actually a request to the package maintainers to pull your changes into the project - not to be confused with you pulling the code from the remote.
Again, add as much context as possible: what are you doing exactly with this pull request? Why did you solve it in a certain way? The maintainers have to handle lots of pull requests, so this information will be a great help to process them.
Don't be put off thinking your fix is not good enough. The maintainers will provide you with clear feedback and can request changes whenever needed. Actually, my first pull request got rejected because it caused another problem I hadn't thought of - I got some good feedback and learned a lot from it.
Remember: 99,9% of the time package owners are volunteers, so give them some time to review your changes.
Accepted? Congratulations, you just finished your first open source contribution! Depending on the package, a handful of / thousands of people will benefit from your work. Awesome, right?