Contribution Guide

Goravel welcomes rich and diverse contributions from different talents, such as coding, translations, articles, tutorials, etc. After completing two enhancements(not containing good first issue), you will be recognized as a core contributor. By completing one enhancement every three months, you can maintain this status. Core developers will be eligible for benefits when Goravel benefits in the future.

Let's make Goravel more efficient together!

Core Developers

Contributors

Bug Feedback

You can report Bug Feedback hereopen in new window, please search Issue Listopen in new window for similar questions before submitting. The report should contain a title and a clear description of the problem, as much relevant information as possible, and a code sample that demonstrates the problem. The goal of Bug Feedback is to make it easy for yourself and other persons to reproduce the Bug and develop fixes. Goravel encourages committers to create a PR for the Bug repair at the same time, making the open-source project more actively developed.

Support Questions

Goravel's GitHub issue trackers are not intended to provide Goravel help or support. Instead, use one of the following channels:

Development Discussion

You may propose new features or improvements to existing Goravel behavior in the Goravel framework repository's GitHub discussion boardopen in new window. Informal discussion regarding bugs, new features, and implementation of existing features takes place in Telegram or WeChat. Bowen, the maintainer of Goravel, is typically present in the group on weekdays from 9am-6pm (UTC+08:00), and sporadically present in the group at other times.

Contribution

Find/Create Issue

You can find or create an issue in Issue Listopen in new window, leave a message to express your willingness to deal with the issue, once confirmed by the repository maintainer, the process can be started.

Create PR

  • You can check out this articleopen in new window if you are new to the process;
  • During the development process, if you encounter a problem, you can describe the problem in detail in issue at any time for future communication, but before that, please make sure that you have tried to solve the problem through Google and other methods as much as possible;
  • Before creating a PR, please improve the unit test coverage as much as possible to provide more stable functions;
  • If you modify any file under the contracts folder, please install vektra/mockeryopen in new window locally and run the mockery command in the root directory to generate the mock file;
  • When the PR is developed, please add the Review Ready , the maintainer will review it in a timely manner.
  • After the PR is merged, the issue will be closed automatically if the description in the PR is set correctly;
  • Goravel greatly appreciates your contribution and will add you to the home contribution list at the next release; ❤️

Which Branch?

All bug fixes should be sent to the latest version that supports bug fixes, unless they fix features that exist only in the upcoming release.

New features or features with breaking changes should always be sent to the master branch.

Local Environment

SoftwareAction
Golang v1.20The minimum version
vektra/mockeryopen in new windowProvider mock files for unit tests

Goravel Repository

RepositoryAction
goravel/goravelopen in new windowGoravel artisans
goravel/frameworkopen in new windowGoravel main repository
goravel/exampleopen in new windowGoravel example
goravel/example-clientopen in new windowExample for Grpc client
goravel/example-protoopen in new windowThe proto dependency of example
goravel/example-packageopen in new windowExample for package
goravel/docsopen in new windowDocument
goravel/docs-webopen in new windowGoravel Website
goravel/s3open in new windowThe S3 driver of Storage module
goravel/ossopen in new windowThe OSS driver of Storage module
goravel/cosopen in new windowThe COS driver of Storage module
goravel/minioopen in new windowThe Minio driver of Storage module
goravel/cloudinaryopen in new windowThe Cloudinary driver of Storage module
goravel/redisopen in new windowThe Redis driver of Cache module
goravel/ginopen in new windowThe Gin driver of Route module
goravel/fiberopen in new windowThe Fiber driver of Route module
goravel/file-rotatelogsopen in new windowProviders log splitting functionality for Log module
goravel/.githubopen in new windowCommunity health fileopen in new window

Code of Conduct

The Goravel code of conduct is derived from the Laravel code of conduct. Any violations of the code of conduct may be reported to Bowen.

  • Participants will be tolerant of opposing views.
  • Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
  • When interpreting the words and actions of others, participants should always assume good intentions.
  • Behavior that can be reasonably considered harassment will not be tolerated.