diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index de56ce14..da6b3e1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,102 +1,76 @@ -# Contributing +# 🚀 Contributing to go-zero -Welcome to go-zero! +Welcome to the go-zero community! We're thrilled to have you here. Contributing to our project is a fantastic way to be a part of the go-zero journey. Let's make this guide exciting and fun! -- [Before you get started](#before-you-get-started) - - [Code of Conduct](#code-of-conduct) - - [Community Expectations](#community-expectations) -- [Getting started](#getting-started) -- [Your First Contribution](#your-first-contribution) - - [Find something to work on](#find-something-to-work-on) - - [Find a good first topic](#find-a-good-first-topic) - - [Work on an Issue](#work-on-an-issue) - - [File an Issue](#file-an-issue) -- [Contributor Workflow](#contributor-workflow) - - [Creating Pull Requests](#creating-pull-requests) - - [Code Review](#code-review) - - [Testing](#testing) +## 📜 Before You Dive In -# Before you get started +### 🤝 Code of Conduct -## Code of Conduct +Let's start on the right foot. Please take a moment to read and embrace our [Code of Conduct](/code-of-conduct.md). We're all about creating a welcoming and respectful environment. -Please make sure to read and observe our [Code of Conduct](/code-of-conduct.md). +### 🌟 Community Expectations -## Community Expectations +At go-zero, we're like a close-knit family, and we believe in creating a healthy, friendly, and productive atmosphere. It's all about sharing knowledge and building amazing things together. -go-zero is a community project driven by its community which strives to promote a healthy, friendly and productive environment. -go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. +## 🚀 Getting Started -# Getting started +Get your adventure rolling! Here's how to begin: -- Fork the repository on GitHub. -- Make your changes on your fork repository. -- Submit a PR. +1. 🍴 **Fork the Repository**: Head over to the GitHub repository and fork it to your own space. +2. 🛠️ **Make Your Magic**: Work your magic in your forked repository. Create new features, squash bugs, or improve documentation - it's your world to conquer! -# Your First Contribution +3. 🚀 **Submit a PR (Pull Request)**: When you're ready to unveil your creation, submit a Pull Request. We can't wait to see your awesome work! -We will help you to contribute in different areas like filing issues, developing features, fixing critical bugs and -getting your work reviewed and merged. +## 🌟 Your First Contribution -If you have questions about the development process, -feel free to [file an issue](https://github.com/zeromicro/go-zero/issues/new/choose). +We're here to guide you on your quest to become a go-zero contributor. Whether you want to file issues, develop features, or tame some critical bugs, we've got you covered. -## Find something to work on +If you have questions or need guidance at any stage, don't hesitate to [open an issue](https://github.com/zeromicro/go-zero/issues/new/choose). -We are always in need of help, be it fixing documentation, reporting bugs or writing some code. -Look at places where you feel best coding practices aren't followed, code refactoring is needed or tests are missing. -Here is how you get started. +## 🔍 Find Something to Work On -### Find a good first topic +Ready to dive into the action? There are several ways to contribute: -[go-zero](https://github.com/zeromicro/go-zero) has beginner-friendly issues that provide a good first issue. -For example, [go-zero](https://github.com/zeromicro/go-zero) has -[help wanted](https://github.com/zeromicro/go-zero/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) and -[good first issue](https://github.com/zeromicro/go-zero/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) -labels for issues that should not need deep knowledge of the system. -We can help new contributors who wish to work on such issues. +### 💼 Find a Good First Topic -Another good way to contribute is to find a documentation improvement, such as a missing/broken link. -Please see [Contributing](#contributing) below for the workflow. +Discover easy-entry issues labeled as [help wanted](https://github.com/zeromicro/go-zero/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [good first issue](https://github.com/zeromicro/go-zero/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). These issues are perfect for newcomers and don't require deep knowledge of the system. We're here to assist you with these tasks. -#### Work on an issue +### 🪄 Work on an Issue -When you are willing to take on an issue, just reply on the issue. The maintainer will assign it to you. +Once you've picked an issue that excites you, let us know by commenting on it. Our maintainers will assign it to you, and you can embark on your mission! -### File an Issue +### 📢 File an Issue -While we encourage everyone to contribute code, it is also appreciated when someone reports an issue. +Reporting an issue is just as valuable as code contributions. If you discover a problem, don't hesitate to [open an issue](https://github.com/zeromicro/go-zero/issues/new/choose). Be sure to follow our guidelines when submitting an issue. -Please follow the prompted submission guidelines while opening an issue. +## 🎯 Contributor Workflow -# Contributor Workflow +Here's a rough guide to your contributor journey: -Please do not ever hesitate to ask a question or send a pull request. +1. 🌱 Create a New Branch: Start by creating a topic branch, usually based on the 'master' branch. This is where your contribution will grow. -This is a rough outline of what a contributor's workflow looks like: +2. 💡 Make Commits: Commit your work in logical units. Each commit should tell a story. -- Create a topic branch from where to base the contribution. This is usually master. -- Make commits of logical units. -- Push changes in a topic branch to a personal fork of the repository. -- Submit a pull request to [go-zero](https://github.com/zeromicro/go-zero). +3. 🚀 Push Changes: Push the changes in your topic branch to your personal fork of the repository. -## Creating Pull Requests +4. 📦 Submit a Pull Request: When your creation is complete, submit a Pull Request to the [go-zero repository](https://github.com/zeromicro/go-zero). -Pull requests are often called simply "PR". -go-zero generally follows the standard [github pull request](https://help.github.com/articles/about-pull-requests/) process. -To submit a proposed change, please develop the code/fix and add new test cases. -After that, run these local verifications before submitting pull request to predict the pass or -fail of continuous integration. +## 🌠 Creating Pull Requests -* Format the code with `gofmt` -* Run the test with data race enabled `go test -race ./...` +Pull Requests (PRs) are your way of making a grand entrance with your contribution. Here's how to do it: -## Code Review +- 💼 Format Your Code: Ensure your code is beautifully formatted with `gofmt`. +- 🏃 Run Tests: Verify that your changes pass all the tests, including data race tests. Run `go test -race ./...` for the ultimate validation. -To make it easier for your PR to receive reviews, consider the reviewers will need you to: +## 👁️‍🗨️ Code Review -* follow [good coding guidelines](https://github.com/golang/go/wiki/CodeReviewComments). -* write [good commit messages](https://chris.beams.io/posts/git-commit/). -* break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue. +Getting your PR reviewed is the final step before your contribution becomes part of go-zero's magical world. To make the process smooth, keep these things in mind: +- 🧙‍♀️ Follow Good Coding Practices: Stick to [good coding guidelines](https://github.com/golang/go/wiki/CodeReviewComments). +- 📝 Write Awesome Commit Messages: Craft [impressive commit messages](https://chris.beams.io/posts/git-commit/) - they're like spells in the wizard's book! +- 🔍 Break It Down: For larger changes, consider breaking them into a series of smaller, logical patches. Each patch should make an understandable and meaningful improvement. + +Congratulations on your contribution journey! We're thrilled to have you as part of our go-zero community. Let's make amazing things together! 🌟 + +Now, go out there and start your adventure! If you have any more magical ideas to enhance this guide, please share them. 🔥 \ No newline at end of file