Contributing to Qalsadiο
Thank you for considering contributing to Qalsadi β an open-source Arabic morphological analyzer and lemmatizer. Your contributions help make Arabic NLP better for everyone.
π οΈ Getting Startedο
Fork the repository on GitHub.
Clone your fork:
git clone https://github.com/linuxscout/qalsadi.git cd qalsadi```
(Optional) Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate
Install the package in editable mode:
pip install -e .[dev]
π§ͺ Running Testsο
We use Pythonβs unittest (and optionally pytest) for testing. Tests are located in the tests/ directory.
To run tests:
python3 -m unittest discover tests
# or
pytest
π§Ό Code Styleο
Follow PEP8 coding guidelines.
Use descriptive names and write docstrings for public methods.
Avoid commented-out code in commits.
Use black to format:
black qalsadi/ tests/
π‘ Submitting Changesο
Create a new branch:
git checkout -b feature/my-new-feature
Make your changes and add tests if needed.
Commit and push:
git commit -m "Add feature: describe it" git push origin feature/my-new-feature
Open a Pull Request from your branch to
main.
Please describe your changes clearly, and reference any related issues.
π Directory Structureο
qalsadi/ # Core Python package
tests/ # Unit tests
tests/fixtures/ # Test data
docs/ # Documentation (Markdown or Sphinx)
data/ # Static resources (e.g. database files)
π€ Code of Conductο
Please be respectful and constructive in all interactions. Weβre building a welcoming and inclusive community for Arabic NLP.
π Need Help?ο
Open an Issue or reach out by email at taha.zerrouki@gmail.com.
Happy hacking!
β Taha Zerrouki and the Qalsadi contributors