Welcome to the TheWeeklyChallenge project! We appreciate your interest in contributing. By contributing to this project, you're helping us creating a fun and welcoming space for developers of all skill levels to explore Perl and Raku. To ensure a smooth and collaborative experience, please review the guidelines below before making contributions.
- Ways to Contribute
- Contributions Guide
- Code Style and Guidelines
- Submitting Contributions
- Community Guidelines
- Contact
There are several ways you can contribute to TheWeeklyChallenge:
-
Reporting Issues: If you encounter any bugs or have suggestions for improvements, please submit an issue in our issue tracker. Provide a clear description and, if possible, steps to reproduce the issue.
-
Feature Requests: If you have ideas for new features or enhancements, you can submit a feature request. Please explain the feature in detail and its potential benefits.
-
Documentation: Help improve the project's developer guide by fixing errors or adding missing information. Submit a pull request with your proposed changes.
-
Bug Fixes and Improvements: If you are familiar with the codebase, you can contribute by fixing bugs or implementing enhancements. Fork the repository, make the changes, and submit a pull request.
-
Fork the Repository: Start by forking the repository to your GitHub account.
-
Clone the Forked Repository: Clone the forked repository to your local machine.
-
Create a New Branch: Checkout from the main branch and create a new branch on your local machine using the command:
git checkout -b <your_preferred_branch_name>
-
Commit Your Changes: After working and testing your changes, execute the following commands in order:
git add .
- This adds all your changes.git commit
- This takes a snapshot of all your changes and makes them ready to be pushed to the remote (online) origin.git push --set-upstream origin <origin_name_from_step_3>
-
Create a Pull Request: Go online to the forked repository and create a pull request.
Maintaining a clean and updated Git workflow is essential for efficient development and collaboration. Follow these steps to keep your local branch up-to-date with the remote master while ensuring a tidy and organized workflow.
Before starting any new work or making changes, ensure your local master branch is up-to-date with the remote repository:
git checkout master git pull origin master
Switch to your existing working branch or create a new one:
git checkout <branch_name> # Switch to an existing branch
or
git checkout -b <new_branch_name> # Create and switch to a new branch
Make necessary changes to your code or files and commit them:
git add . git commit -m "Your commit message here"
Incorporate the latest changes from the master branch into your working branch:
git checkout <working_branch> git rebase master
Resolve conflicts that may arise during the rebase process:
- Resolve conflicts manually using a text editor or Git tool
git add .
git rebase --continue
Push your changes to the remote repository:
git push origin <working_branch>
MacOS comes preinstalled with vendor versions of Perl, unfortunately, these Perl versions can't give you access to some packages and Perl internals.
Example Error: When trying to install the DBD mysql package, you may get an error like this:
1 error generated. make: *** [dbdimp.o] Error 1 DVEEDEN/DBD-mysql-5.003.tar.gz /usr/bin/make -- NOT OK Failed during this command: DVEEDEN/DBD-mysql-5.003.tar.gz
To resolve this, we can install Perlbrew version:
For a quick installation of Perlbrew, do this:
\curl -L https://install.perlbrew.pl | bash
After installing Perlbrew, attach it to your terminal:
- Open your
~/.bash_profile
file using a text editor. You can do this by running the command:
nano ~/.bash_profile
- Append the following line to the end of the file:
source ~/perl5/perlbrew/etc/bashrc
- Save the changes and exit the text editor.
- Close your terminal and start a new one. Alternatively, you can run the command:
source ~/.bash_profile
Use ctrl + o
to write to a file and ctrl + x
to save to a file.
When contributing code to TheWeeklyChallenge, please follow these guidelines:
-
Follow the existing code style and naming conventions used in the project.
-
Write clear and concise code with appropriate comments where necessary.
-
Maintain consistent and meaningful commit messages.
-
Document any new or modified functionality appropriately.
For more detailed guidelines, please refer to the Code of Conduct.
To submit your contributions, please follow these steps:
-
Ensure that your code adheres to the project's code style and guidelines.
-
Test your changes thoroughly.
-
Commit your changes with descriptive commit messages.
-
Push your changes to your forked repository.
-
Open a pull request in the main repository, providing a clear description of your changes and any additional information that may be relevant.
To ensure a welcoming and inclusive environment for all contributors and users, we expect everyone involved in the TheWeeklyChallenge community to adhere to our community guidelines:
-
Be respectful and considerate of others' opinions and experiences.
-
Use inclusive language and avoid any form of discriminatory or offensive behavior.
-
Be supportive and helpful to fellow contributors and users.
-
Resolve conflicts and disagreements constructively and professionally.
-
If you witness any violations of the project's code of conduct, please report them to the project maintainers.
For more details, please refer to the Code of Conduct.
If you have any questions or need further assistance, you can reach out to the project maintainers.