Thank you for your interest in contributing to Softio!
Your time and effort help make this project more robust, reliable, and useful for everyone. Whether you're fixing bugs, suggesting improvements, or writing documentation, your help is appreciated. This guide outlines how to get involved and how to contribute effectively.
Depending on what you're contributing, please consider the following:
- ✅ If you're suggesting an idea or a feature, simply open an issue on our GitHub Issues page. No need to read this entire file.
- ✍️ If you're helping with documentation, follow the tips in this file, but you can skip most sections.
- 🛠️ If you're planning to submit code (features, fixes, etc.), please read this file thoroughly to understand our development standards and workflow.
Helpful prerequisite docs:
- 📄
docs/Labels.md– Learn how we categorize issues and PRs. - 🌿
docs/Git-Branch.md– Understand our branch naming conventions and Git flow.
Follow these steps to set up the project locally:
-
Fork the repository:
https://github.com/AryaFardmanesh/softio -
Clone your fork:
git clone https://github.com/<your-username>/softio.git cd softio
-
Install dependencies:
npm install
-
Create a feature branch:
git checkout -b current git branch my-new-feature-name # Like fix-issue-100 or add-feature-name
We follow the Contributor Covenant Code of Conduct.
Please interact respectfully and constructively in all discussions, reviews, and contributions.
If you find a bug, please open an issue and include:
- A short, clear title
- A detailed description
- Steps to reproduce (if possible)
- Expected vs. actual behavior
- Relevant logs or screenshots
Want to see a new feature in Softio? We’d love to hear from you!
Include the following in your feature request:
- The feature description
- Why it's useful or necessary
- How it aligns with Softio’s mission
When you're ready to contribute code:
-
Make sure your code follows our style guide
-
Write or update tests for any new logic
-
Update documentation (if needed)
-
Commit with a clear message:
git commit -m "[Add/Remove/Change/Build/Refactor/Etc.]: [feature description]" -
Push your branch:
git push origin my-feature
-
Open a pull request against the
currentbranch of the original repo:
Please follow these conventions:
-
Function Declarations:
function example( x: number, y: number ): void { console.log( x + y ); }
-
Spacing:
- Space after commas and inside parentheses
- Blank lines between logical code blocks
-
Conditionals:
if ( condition ) { // Code }else { // Code }
-
Semicolons: Always use semicolons
-
Quotes: Use single quotes
'like this' -
Indentation: Use tabs, not spaces
Recommended VS Code settings (add to .vscode/settings.json):
{
"files.eol": "\n",
"editor.insertSpaces": false,
"editor.tabSize": 8
}- Line endings:
LF(Unix) - File encoding:
UTF-8
If you add new features or fix bugs:
-
Add test files in the
testfolder -
Run all tests before submitting:
npm test # or for specific tests npm test out
- Update any affected sections in
docs/if your changes alter the public API or behavior. - Be clear and consistent in language and formatting.
We appreciate your effort and care in making Softio better. If you have any questions or ideas, feel free to open an issue or join the discussion on GitHub.
Let’s build an exceptional console programming toolkit together! 🚀