|
1 | | -## Contribution Guidelines |
| 1 | +### **How to Contribute to the Papers Repository** |
2 | 2 |
|
3 | | -Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. |
| 3 | +We appreciate your interest in contributing to the `papers-codechef` repository! Please follow these guidelines to ensure a smooth and effective contribution process. |
4 | 4 |
|
5 | | -## How to contribute |
| 5 | +--- |
6 | 6 |
|
7 | | -- Decide which repository to contribute |
8 | | -- Decide what to contribute |
9 | | -- Fork the repo then clone it locally |
10 | | -- Commit your work (You should create a new branch when you're doing development work that is somewhat experimental in nature.) |
11 | | -- Create a **Pull Request** |
12 | | -- Congrats 🎉 you have just contributed towards open source! |
| 7 | +### **1. Get an Issue Assigned** |
13 | 8 |
|
14 | | -## What to contribute |
| 9 | +All contributions must be tied to an issue. Go to the issues page at `https://github.com/CodeChefVIT/papers-codechef/issues` |
| 10 | +You can either ask a board member to assign you an existing issue or create a new issue and ask a board member to assign it to you. |
15 | 11 |
|
16 | | -- Find an open issue to tackle |
17 | | -- Ask if you can help write a new feature |
18 | | -- Add / Improve Unit Testing |
19 | | -- Write tutorials for how a project can be used and add to the readme |
20 | | -- Review code on other people’s submissions and help improving / finding vulnerabilities |
| 12 | +--- |
21 | 13 |
|
22 | | -## Making a PR |
23 | | -- Provide all the appropriate details asked in PR template |
24 | | -- A pull request doesn’t have to represent finished work. It’s usually better to open a pull request early on, so others can watch or give feedback on your progress. Just mark it as a “WIP” (Work in Progress) in the subject line. You can always add more commits later. |
| 14 | +### **2. Fork the Repository** |
25 | 15 |
|
26 | | -## Opening an Issue |
27 | | -- Make use of an appropriate Issue Template |
28 | | -- We welcome Feature request, Bug Report, Documentation fix and others |
29 | | -- Do not open critical security issues here, report them directly at [our email](mailto:contact@codechefvit.com). |
| 16 | +To start working, you need to create your own copy of the repository. |
30 | 17 |
|
31 | | -## Communicating effectively |
32 | | -**Give context.** Help others get quickly up to speed. If you’re running into an error, explain what you’re trying to do and how to reproduce it. If you’re suggesting a new idea, explain why you think it’d be useful to the project (not just to you!). |
| 18 | +- **Fork the repo:** Navigate to `https://github.com/CodeChefVIT/papers-codechef` and click the "Fork" button to create a copy of the repository on your account. This allows you to freely experiment with changes without affecting the original project. |
| 19 | +- **Create the fork:** When prompted, make sure the "Copy the `prod` branch only" option is unchecked. |
33 | 20 |
|
34 | | -``` |
35 | | -✔️ “X doesn’t happen when I do Y” |
36 | | -❌ “X is broken! Please fix it.” |
37 | | -``` |
| 21 | +--- |
38 | 22 |
|
39 | | -**Do your homework beforehand.** It’s OK not to know things, but show that you tried. Before asking for help, be sure to check a project’s README, documentation, issues (open or closed), mailing list, and search the internet for an answer. People will appreciate when you demonstrate that you’re trying to learn. |
| 23 | +### **3. Clone Your Fork** |
40 | 24 |
|
41 | | -``` |
42 | | -✔️ ““I’m not sure how to implement X. I checked the help docs and didn’t find any mentions.”” |
43 | | -❌ “How do I X?” |
44 | | -``` |
| 25 | +After forking, you need to get the code onto your local machine. |
45 | 26 |
|
46 | | -**Keep requests short and direct.** |
| 27 | +- **Clone the repo:** Copy the URL of your fork to your clipboard. |
| 28 | +- **Run `git clone {url}`:** This command will clone the repository. You can use either **HTTPS** (less secure, easier) or **SSH** (more secure, needs a `.ssh` file setup). If you're unsure which method to use, ask a board member for help. |
| 29 | +- **Sync your fork:** Before you start, make sure your fork is up to date with the original `CodeChefVIT` repository. |
47 | 30 |
|
48 | | -``` |
49 | | -✔️ “I’d like to write an API tutorial.” |
50 | | -❌ “I was driving down the highway the other day and stopped for gas, and then I had this amazing idea for something we should be doing, but before I explain that, let me show you…“ |
51 | | -``` |
| 31 | +--- |
52 | 32 |
|
53 | | -**It’s okay to ask questions (but be patient!).** |
| 33 | +### **4. Set Up Your Local Environment** |
54 | 34 |
|
55 | | -``` |
56 | | -✔️ “Thanks for looking into this error. I followed your suggestions. Here’s the output.” |
57 | | -❌ “Why can’t you fix my problem? Isn’t this your project?” |
58 | | -``` |
| 35 | +To get the project running, you'll need to set up your local environment. |
59 | 36 |
|
60 | | -**Respect community decisions.** |
| 37 | +- **Create a `.env` file:** Create a new file named `.env` and ask a board member for its contents. |
| 38 | +- **Install dependencies:** Run `pnpm i` in your terminal to install all necessary dependencies. |
| 39 | +- **Run the project:** Run `pnpm dev` to start the project. |
61 | 40 |
|
62 | | -``` |
63 | | -✔️ “I’m disappointed you can’t support my use case, but as you’ve explained it only affects a minor portion of users, I understand why. Thanks for listening.” |
64 | | -❌ “Why won’t you support my use case? This is unacceptable!” |
65 | | -``` |
| 41 | +--- |
66 | 42 |
|
67 | | -## Misc |
68 | | -- You are welcome to Propose a new feature by creating an **Issue**. |
69 | | -- You may Discuss a high-level topic or idea (for example, community, vision or policies) by writing to us at our [Email](mailto:contact@codechefvit.com). |
| 43 | +### **5. Work on Your Code** |
70 | 44 |
|
71 | | -## Attribution |
72 | | -- [Open Source Guide](https://opensource.guide/how-to-contribute/) |
| 45 | +Once your environment is set up, you're ready to start coding. |
| 46 | + |
| 47 | +- **Create a new branch:** Use the command `git checkout -b yourName/featureName` to create a new branch for your work. |
| 48 | +- **Make your changes:** Write the code to address the issue you were assigned. |
| 49 | +- **Add changed files:** After making your changes, use `git add` to add the modified files to Git tracking. |
| 50 | +- **Commit your changes:** Use `git commit -m "feat: xyz"` to create a checkpoint for your work. Use a prefix that describes your changes. Common prefixes include: |
| 51 | + - `feat:` A new feature. |
| 52 | + - `fix:` A bug fix. |
| 53 | + - `docs:` Documentation changes. |
| 54 | + - `style:` Formatting or white-space changes that do not affect the code's meaning. |
| 55 | + - `refactor:` A code change that is not a bug fix or a new feature. |
| 56 | + - `perf:` A code change that improves performance. |
| 57 | + - `test:` Adding or correcting tests. |
| 58 | + - `build:` Changes affecting the build system or external dependencies. |
| 59 | + - `ci:` Changes to CI configuration files or scripts. |
| 60 | + - `chore:` Other changes that don't modify source or test files. |
| 61 | + - `revert:` Reverts a previous commit. |
| 62 | +- **Push your changes:** Push your commits to your forked repository using `git push`. |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +### **6. Submit a Pull Request** |
| 67 | + |
| 68 | +- **Open a Pull Request:** On your GitHub page for the forked repository, you will see a button to "Open pull request" since your branch is ahead of the upstream. Click this to begin the process. |
| 69 | +- **Target the `staging` branch:** When creating the pull request, make sure you set the **base branch** to `staging`. |
| 70 | +- **Request a review:** After creating the pull request, direct message a board member to review your PR. Any new changes you push to your branch will be automatically attached to the pull request. |
0 commit comments