🚀 Feature: use linting tools (pre-commit)
🔖 Feature description
I think we can use famous linting tools like black, flake8 and isort to keep the code style consistent and maybe we can use pre-commit hook to make sure the format is correct before making any unnecessary commits.
In some files like here: https://github.com/appwrite/sdk-for-python/blob/df2780464278185e9965134787dde5c92d163c37/appwrite/client.py#L1 we have unused imports like io in this case which can be easily detected using something like this. We can use husky as well....
We can also later on add a ci workflow to make sure lint tests pass. wdyt?
🎤 Pitch
We can use pre-commit as a dev dependency and create a .pre-commit-config.yaml file in the root dir like this:
repos:
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
language_version: python3
args: [appwrite]
- repo: https://github.com/pycqa/flake8
rev: 5.0.4
hooks:
- id: flake8
args:
- "--max-line-length=120"
- repo: https://github.com/pycqa/isort
rev: 5.11.5
hooks:
- id: isort
name: isort (python)
args: [--filter-files]
👀 Have you spent some time to check if this issue has been raised before?
- [X] I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- [X] I have read the Code of Conduct
I wonder if there is a common formatting being followed in sdk-generator for all SDKs using composer that's why we are not implementing something like this separately?
I'm interested in implementing this feature. I agree that using linting tools like black, flake8, and isort can significantly improve the consistency of our code style. The pre-commit hook idea is also excellent as it can prevent unnecessary commits with incorrect formatting.
I have experience working with these tools. Can someone please assign this task to me?
CC: @eldadfux @TorstenDittmann @christyjacob4
Hey @jayanth-kumar-morem it's great that u want to contribute but just a suggestion that please don't tag the maintainers directly for getting assigned to some issue
Okay, Alright, should I draft a PR then ?
You should wait for someone to approve this first
Oh, Alright @Ananya2001-an
Thank you for opening this @Ananya2001-an - our SDKs are actually generated via https://github.com/appwrite/sdk-generator so it is an important consideration about where to add it, how to add it, automating it, etc so a deeper look at this is required. I will be looking into this and letting you know what the decision is.
Sure @joeyouss :)
Is this still open? will attach pre-commit hooks