Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable PyLint rules of your own choice and fix the errors #1755

Open
buhtz opened this issue Jun 6, 2024 · 36 comments
Open

Enable PyLint rules of your own choice and fix the errors #1755

buhtz opened this issue Jun 6, 2024 · 36 comments
Assignees
Labels
GOOD FIRST ISSUE Used by 24pullrequests.com to suggest issues Low relevant, but not urgent Meta

Comments

@buhtz
Copy link
Member

buhtz commented Jun 6, 2024

Introduction

Welcome to the project, if you pick up this Issue because of the "GOOD FIRST USE" label. You will be mentored through the process if you want. First the Issue is explained. At the end you will find some guidance for first contributors. Please do not hesitate to ask questions. Your solution don't need to be perfect.

Be aware that this is a meta Issue not describing one specific problem and task, but a bunch of similar problems you can choose from.

It is a fine issue for beginners. But participation or contribution is not recommended unless you are familiar with Back In Time and are an active user. This project is not intended for learning basic Python skills or enhancing your GitHub profile.

Problem

Code analyzing tools like PyLint and others show multiple of 1.000 errors (~4.500 in default configuration) on the current code base of Back In Time. They can not be fixed all at once. Back In Time currently use pylint in two unit test (see common/test/test_lint.py and qt/test/test_lint.py) with a very small selection of enabled error codes.

In the code of the two files common/test/test_lint.py and qt/test/test_lint.py you will find a list of disabled error codes you can start with:

# ...in common/test/test_lint.py
# 'W0612',  # unused-variable
# 'W0237',  # arguments-renamed
# 'W0221',  # arguments-differ
# 'W0603',  # global-statement
# ...in qt/test/test_lint.py
# 'R0201',  # no-self-use
# 'R0202',  # no-classmethod-decorator
# 'R0203',  # no-staticmethod-decorator
# 'W0123',  # eval-used
# 'W0237',  # arguments-renamed
# 'W0221',  # arguments-differ
# 'W0404',  # reimported
# 'W4902',  # deprecated-method
# 'W4904',  # deprecated-class
# 'W0603',  # global-statement
# 'W0614',  # unused-wildcard-import
# 'W0611',  # unused-import
# 'W0612',  # unused-variable
# 'W0707',  # raise-missing-from

Be aware that there are two files named test_lint.py, one in folder common/test and one in qt/test. They should be identical, especially the list of enabled/disabled error codes.

Solution

Pick one of the disabled error codes listed in the source code linked above. Have a look at the PyLint documentation to read about that error code and how to fix it. You don't need to stick to the existing list of error codes. You are free to choose another one if you are able to fix it. Important: Pick one error only and work on one file only. Don't blow up the Pull Request.

Your next steps

  1. If this is your first contribution in this project please introduce your self and tell us about your skills, wishes and plans. Also let us know how you found the issue and the project.
  2. Read the existing contributors documentation.
  3. We can develop the next steps in the further discussion. Don't hesitate to ask.
  4. If you created a separate branch on your forked repo enable the choosen error code via uncommenting the specific line in the two test_lint.py files.
  5. Then run the test: Navigate into common and/or qt and run pytest test/test_lint.py. Work on that errors but only on one of the source files per PullRequest.
  6. Be careful! The job might look like easy but has a high potential introducing new bugs and problems.
@buhtz buhtz added Meta Low relevant, but not urgent GOOD FIRST ISSUE Used by 24pullrequests.com to suggest issues labels Jun 6, 2024
@buhtz buhtz self-assigned this Jun 6, 2024
@ayush571995

This comment was marked as off-topic.

@ayush571995

This comment was marked as off-topic.

@buhtz

This comment was marked as off-topic.

@buhtz buhtz changed the title Handling various PyLint error messages Enable PyLint rules of your own choice and fix the errors Jun 14, 2024
buhtz pushed a commit that referenced this issue Jun 19, 2024
…4 (superfluous-parens), C0410 (multiple-imports), E0213 (no-self-argument) (#1766)

Thank you to Ayush Saluja (@ayush571995) for this contribution.

Related to #1755
@vincentfar
Copy link

Hello, my name is Vincent and I am new to Github open source contributions. For this issue, do I just select any error in test_lint.py and parse through any files within the entire program for that error and fix it?
Kind Regards,
Vincent Far

@buhtz
Copy link
Member Author

buhtz commented Jun 22, 2024

Hello Vincent,
welcome to the project and thank you for your efforts to contribute.
Did you read our CONTIRBUTION.md file and understood everything?

As a first step I would say you fork the repo, create a separate branch and then try to run the test suite on your own system. When this works we can step further.

Best
Christian

@vincentfar
Copy link

Hello Christian,
Yes, I forked the repo and created a separate local branch. Ran the test_lint.py and it says "no test ran in 0.4 s". So would the next step be uncommenting the specific line in the two test_lint.py files?

@buhtz
Copy link
Member Author

buhtz commented Jun 23, 2024

Ran the test_lint.py and it says "no test ran in 0.4 s".

That means something is wrong. How do you run the test? Can you post the command?
See our doc about how to run tests.
Be aware that we do have two test suites (common/test and qt/test) that need to be run one by one.

$ cd common
$ pytest test/test_lint.py

Or

$ cd common
$ python3 -m unittest test/test_lint.py

The output then should indicate that one test was run and passed.

So would the next step be uncommenting the specific line in the two test_lint.py files?

Yes. Then run the tests again and then see where the errors appear. Important: Keep the PullRequest small. No matter in how many files the error appears, fix only one file per PullRequest. You can exception that rule if you have 3 errors in 3 files for example. Decide this on your own. But keep the PR simple and small.

@vincentfar
Copy link

Hello,
I ran
$ cd common
$ pytest test/test_lint.py

and the output was:
===================================================================== short test summary info ======================================================================
FAILED test/test_lint.py::MirrorMirrorOnTheWall::test_with_pylint - AssertionError: 0 != 54 : PyLint found 54 problems.
======================================================================== 1 failed in 13.47s ========================================================================

I see several import errors. I have read the Build & install and the dependencies section of the documentation. I believe I have installed ubuntu and the dependencies on my windows command prompt but I am unsure if this is the cause of the import errors. I also tried to uncomment specific lines such as "no-member / E1101" and "'R0201', # no-self-use" but there are no additional errors to the pylint test other than those original 54 errors.
I apologize for my lack of experience! However, I'm not sure what I am doing wrong.

@vincentfar
Copy link

qt_probing.py:120:4: E0401: Unable to import 'PyQt6.QtWidgets' (import-error)
************* Module snapshots
snapshots.py:25:0: E0401: Unable to import 'pwd' (import-error)
snapshots.py:27:0: E0401: Unable to import 'grp' (import-error)
snapshots.py:410:20: E1101: Module 'os' has no 'chown' member (no-member)
snapshots.py:420:20: E1101: Module 'os' has no 'chown' member (no-member)
snapshots.py:1942:27: E1101: Module 'os' has no 'statvfs' member (no-member)
snapshots.py:1982:19: E1101: Module 'os' has no 'statvfs' member (no-member)
************* Module sshtools
sshtools.py:327:54: E1101: Module 'signal' has no 'SIGKILL' member; maybe 'SIGILL'? (no-member)
sshtools.py:420:51: E1101: Module 'os' has no 'setsid' member (no-member)
sshtools.py:1171:39: E1101: Module 'os' has no 'setsid' member (no-member)
************* Module tools
tools.py:55:58: E1101: Module 'os' has no 'geteuid' member (no-member)
tools.py:1630:11: E1101: Module 'os' has no 'geteuid' member (no-member)
tools.py:2055:26: E1101: Module 'signal' has no 'SIGALRM' member (no-member)
tools.py:2056:12: E1101: Module 'signal' has no 'alarm' member (no-member)
tools.py:2066:12: E1101: Module 'signal' has no 'alarm' member (no-member)
tools.py:2568:30: E1101: Module 'signal' has no 'SIGTSTP' member (no-member)
tools.py:2569:30: E1101: Module 'signal' has no 'SIGCONT' member (no-member)
tools.py:2570:30: E1101: Module 'signal' has no 'SIGHUP' member (no-member)
tools.py:2621:30: E1101: Module 'signal' has no 'SIGTSTP' member (no-member)
tools.py:2622:30: E1101: Module 'signal' has no 'SIGCONT' member (no-member)
tools.py:2623:30: E1101: Module 'signal' has no 'SIGHUP' member (no-member)
tools.py:2649:48: E1101: Module 'signal' has no 'SIGSTOP' member (no-member)
tools.py:2658:48: E1101: Module 'signal' has no 'SIGCONT' member (no-member)
tools.py:2698:18: E1101: Module 'os' has no 'fork' member (no-member)
tools.py:2710:8: E1101: Module 'os' has no 'setsid' member (no-member)
tools.py:2715:18: E1101: Module 'os' has no 'fork' member (no-member)
tools.py:2814:25: E1101: Module 'signal' has no 'SIGHUP' member (no-member)
************* Module test.test_config_crontab
test\test_config_crontab.py:22:0: E0401: Unable to import 'pyfakefs.fake_filesystem_unittest' (import-error)
************* Module test.test_restore
test\test_restore.py:21:0: E0401: Unable to import 'pwd' (import-error)
test\test_restore.py:22:0: E0401: Unable to import 'grp' (import-error)
test\test_restore.py:32:13: E1101: Module 'os' has no 'geteuid' member (no-member)
test\test_restore.py:35:13: E1101: Module 'os' has no 'getegid' member (no-member)
************* Module test.test_snapshots
test\test_snapshots.py:23:0: E0401: Unable to import 'pwd' (import-error)
test\test_snapshots.py:24:0: E0401: Unable to import 'grp' (import-error)
test\test_snapshots.py:42:13: E1101: Module 'os' has no 'geteuid' member (no-member)
test\test_snapshots.py:45:13: E1101: Module 'os' has no 'getegid' member (no-member)
test\test_snapshots.py:52:10: E1101: Module 'os' has no 'geteuid' member (no-member)
************* Module test.test_tools
test\test_tools.py:33:0: E0401: Unable to import 'pyfakefs.fake_filesystem_unittest' (import-error)
test\test_tools.py:248:33: E1101: Module 'signal' has no 'SIGSTOP' member (no-member)
test\test_tools.py:251:33: E1101: Module 'signal' has no 'SIGCONT' member (no-member)

============================================================= short test summary info =============================================================
FAILED test/test_lint.py::MirrorMirrorOnTheWall::test_with_pylint - AssertionError: 0 != 54 : PyLint found 54 problems.
=============================================================== 1 failed in 10.85s ======================================

@buhtz
Copy link
Member Author

buhtz commented Jun 23, 2024

I believe I have installed ubuntu and the dependencies on my windows command prompt

This sentence confuses me. You installed ubuntu but using a windows command prompt? Are you using "Windows Subsystem for Linux" (WSL) instead of a real GNU Linux?

The import errors you reporting are very exotic and uncommon. Using a WSL might explain them. WSL is not supported. You can use Back In Time only on a real/full GNU Linux distribution but not on Windows.

If you still use a real GNU Linux then we need to investigate the problem further. Despite the unit tests are you able to start BIT?

I apologize for my lack of experience! However, I'm not sure what I am doing wrong.

No need to apologize. We are doing this to increase our experience and learn. 😄

@vincentfar
Copy link

Oh I see, yeah I am currently on Windows working on VS code and for the terminal using cmd. I tried WSL because I figured that would work as a good substitute to GNU Linux but I guess not. Yeah not able to run BIT because it says "ModuleNotFoundError: No module named 'syslog'"
Even though I already used:
"pip install syslog-py"
"Requirement already satisfied: syslog-py in c:\users\vince\anaconda3\lib\site-packages (0.2.5)".

I guess that means I can't work on this project on Windows?

@buhtz
Copy link
Member Author

buhtz commented Jun 23, 2024

I guess that means I can't work on this project on Windows?

You can not provide new or modified code to the project, right.
But there are several other ways to contribute. You might like to help translating the GUI with your native language?
Or you can work on the documentation (user manual for example).

@vincentfar
Copy link

It's okay, thank you for all your help.

@N0madC0de
Copy link

N0madC0de commented Jun 25, 2024

Hello Christian,

I am 37. Started coding a few days ago after a gap of about 15 years. The last time I coded was in High School in C and it was a horrible experience. Always wanted to code but due to time constraints I was unable to do so. Now, I have decided to devote 2 hours daily. Presently learning python and it is so simple and powerful. I hope to contribute something to any Open Source project as I learn a bit more of Python.

Presently, I will read the CONTIRBUTION.md and try to follow the instructions.

Kind Regards,
N0madC0de

@buhtz
Copy link
Member Author

buhtz commented Jun 25, 2024

Hello N0madC0de,
thank you for your message and your efforts.
Did I get it correct that you are just start to learn Python?

Christian

@N0madC0de
Copy link

N0madC0de commented Jun 25, 2024

Started learning Python about 15 days ago.

I tried the test_lint.py. This is the output I got:

root@parb-B760M-DS3H-AX-DDR4:/home/parb/Documents/github-clones/backintime/common/test# pytest -v test_lint.py
====================================================================== test session starts =======================================================================
platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/parb/Documents/github-clones/backintime/common/test
collected 1 item

test_lint.py::MirrorMirrorOnTheWall::test_with_pylint FAILED [100%]

============================================================================ FAILURES ============================================================================
_____________________________________________________________ MirrorMirrorOnTheWall.test_with_pylint _____________________________________________________________

self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test_with_pylint>

@unittest.skipUnless(ON_TRAVIS or PYLINT_AVIALBE, PYLINT_REASON)
def test_with_pylint(self):
    """Use Pylint to check for specific error codes.

    Some facts about PyLint
     - It is one of the slowest available linters.
     - It is able to catch lints none of the other linters
    """

    # Pylint base command
    cmd = [
        'pylint',
        # Make sure BIT modules can be imported (to detect "no-member")
        '--init-hook=import sys;'
        'sys.path.insert(0, "./../qt");'
        'sys.path.insert(0, "./../common");',
        # Storing results in a pickle file is unnecessary
        '--persistent=n',
        # autodetec number of parallel jobs
        '--jobs=0',
        # Disable scoring  ("Your code has been rated at xx/10")
        '--score=n',
        # Deactivate all checks by default
        '--disable=all',
        # prevent false-positive no-module-member errors
        '--extension-pkg-allow-list=PyQt6,PyQt6.QtCore',
        # Because of globally installed GNU gettext functions
        '--additional-builtins=_,ngettext',
        # PEP8 conform line length (see PyLint Issue #3078)
        '--max-line-length=79',
        # Whitelist variable names
        '--good-names=idx,fp',
        # '--reports=yes',
    ]

    # Explicit activate checks
    err_codes = [
        'C0305',  # trailing-newlines
        'C0324',  # superfluous-parens
        'C0410',  # multiple-imports
        'C0303',  # trailing-whitespace
        'E0100',  # init-is-generator
        'E0101',  # return-in-init
        'E0102',  # function-redefined
        'E0103',  # not-in-loop
        'E0106',  # return-arg-in-generator
        'E0213',  # no-self-argument
        'E0401',  # import-error
        'E0602',  # undefined-variable
        'E1101',  # no-member
        'W0311',  # bad-indentation
        'I0021',  # useless-suppression
        # 'W0611',  # unused-import
        'W1301',  # unused-format-string-key
        'W1401',  # anomalous-backslash-in-string (invalid escape sequence)

        # Enable asap. This list is selection of existing (not all!)
        # problems currently exiting in the BIT code base. Quit easy to fix
        # because there count is low.
        'R0201',  # no-self-use
        # 'R0202',  # no-classmethod-decorator
        # 'R0203',  # no-staticmethod-decorator
        # 'R0801',  # duplicate-code
        # 'W0123',  # eval-used
        # 'W0237',  # arguments-renamed
        # 'W0221',  # arguments-differ
        # 'W0404',  # reimported
        # 'W4902',  # deprecated-method
        # 'W4904',  # deprecated-class
        # 'W0603',  # global-statement
        # 'W0614',  # unused-wildcard-import
        # 'W0612',  # unused-variable
        # 'W0707',  # raise-missing-from
    ]

    cmd.append('--enable=' + ','.join(err_codes))

    # Add py files
    cmd.extend(self._collect_py_files())

    r = subprocess.run(
        cmd,
        check=False,
        universal_newlines=True,
        capture_output=True)

    # Count lines except module headings
    error_n = len(list(filter(lambda line: not line.startswith('*****'),
                              r.stdout.splitlines())))
    print(r.stdout)
  self.assertEqual(0, error_n, f'PyLint found {error_n} problems.')

E AssertionError: 0 != 8 : PyLint found 8 problems.

test_lint.py:133: AssertionError
---------------------------------------------------------------------- Captured stdout call ----------------------------------------------------------------------
************* Module tools
/home/parb/Documents/github-clones/backintime/common/tools.py:56:8: E0401: Unable to import 'keyring' (import-error)
/home/parb/Documents/github-clones/backintime/common/tools.py:57:8: E0401: Unable to import 'keyring' (import-error)
/home/parb/Documents/github-clones/backintime/common/tools.py:58:8: E0401: Unable to import 'keyring.util.platform_' (import-error)
************* Module qt_probing
/home/parb/Documents/github-clones/backintime/common/qt_probing.py:104:4: E0401: Unable to import 'PyQt6' (import-error)
/home/parb/Documents/github-clones/backintime/common/qt_probing.py:105:4: E0401: Unable to import 'PyQt6.QtWidgets' (import-error)
/home/parb/Documents/github-clones/backintime/common/qt_probing.py:120:4: E0401: Unable to import 'PyQt6.QtWidgets' (import-error)
************* Module test.test_tools
test_tools.py:33:0: E0401: Unable to import 'pyfakefs.fake_filesystem_unittest' (import-error)
************* Module test.test_config_crontab
test_config_crontab.py:22:0: E0401: Unable to import 'pyfakefs.fake_filesystem_unittest' (import-error)

==================================================================== short test summary info =====================================================================
FAILED test_lint.py::MirrorMirrorOnTheWall::test_with_pylint - AssertionError: 0 != 8 : PyLint found 8 problems.
======================================================================= 1 failed in 3.06s ========================================================================

What to do next sir?

@buhtz
Copy link
Member Author

buhtz commented Jun 25, 2024

Hello N0madC0de,

Started learning Python about 15 days ago.

I really appreciate your effort to contribute but I would say this is to early for us. We do accept that we need to invest some time and resource into guiding new contributors in the project. But this project is not a Python learning course. We can not effort that. We have no company and no money behind. We do this in our spare time beside our regular life. I am sorry.

About your output you provided. You shouldn't work with your root account. To dangerous. And the errors from the test run are about missing dependencies. You need to install them first as described in the dependencies section in the contribution info.

Maybe have a look at r/learnpython.

Best,
Christian

@N0madC0de
Copy link

Thanks for the suggestions.

buhtz added a commit that referenced this issue Jun 28, 2024
Remove unused method debugTrace().
Enable PyLint rule W1515 (forgotten-debug-statement).
Replace deprecated PyLint rule C0324 with C0325 (superfluous-parens).
Removed ImportError check for class MutableSet because not relevant anymore since Python 3.3.

Related to #1755
@feman323
Copy link
Contributor

Hello Christian,
my name is Manuel. I have some years of experience in the software and IT domain, but I'm completely new to open source contributions. I have set up a development environment, enabled some of the checks and now the test_lint.py test fails as expected. May I start working on some of the disabled checks?
Regards,
Manuel

@buhtz
Copy link
Member Author

buhtz commented Jun 30, 2024

Hello Manuel,
welcome to the team and thank you for the efforts to contribute.

Keep the Pull Request small. That make reviews easier. It means don't modify to much files at once. If you choose a linter rule that cause warnings in 20 files, just fix 1 or 2 of that files and then disable that rule again before creating the Pull Request.

Don't hesitate to ask.
Christian

@feman323
Copy link
Contributor

feman323 commented Jul 1, 2024

Hello Christian,
I have selected the rule "W0611" (unused imports) and created a first Pull Request: #1775

This rule affects many files but the changes in every file are quite small. Can I also add more files in such cases, or should I continue changing only a few files per PR?

@buhtz
Copy link
Member Author

buhtz commented Jul 1, 2024

Hello Manual,
see my comment on your PR.

buhtz pushed a commit that referenced this issue Jul 8, 2024
Related to #1755 

Thank you to Manual (@feman323) for this contribution.
@dnerever
Copy link
Contributor

dnerever commented Jul 9, 2024

Hey Christian!

I've been going to school studying computer science for a few years and am currently focused on cybersecurity. I have experience with Python and a few other languages. I'm a big user of Linux and Android open-source but have yet to contribute.

I was able to fork and then create a new branch with the repo. I then tried uncommenting error code 'R0801', # duplicate-code on line 109 in common/test/test_lint.py. Then I ran:
cd common
python3 -m unittest test/test_lint.py

It returned what seems to be the default output.

s
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK (skipped=1)

I then tried using pytest test/test_lint.py and also trying the same on the qt/test/test_lint.py with the same results. What am I missing?

Also, I fix some minor grammatical errors within the test/test_lint.py. Can I submit the PR here?

Thanks,
Keith

@buhtz
Copy link
Member Author

buhtz commented Jul 9, 2024

Hello Keith,
welcome to the project.

Yes this looks as expected. Not all of the rules to cause errors. We might have fixed some of them in the near past.
Let's see what you have got and open a Pull Request.

btw: If you have a native language different from English you could also give our translation platform a try.

Best,
Christian

@dnerever
Copy link
Contributor

I submitted my PR #1788 for a few grammatical errors I fixed on the test_lint.py file.

I feel like I'm missing something when trying to run the unit test as described in the instructions and in my previous comment. I tried uncommenting all of the error codes in common/test/test_lint.py but observed no difference in output. Then I tried introducing an unused variable in common/mount.py to test the error code 'W0612', # unused-variable. Any suggestions on figuring out if I'm running the linting properly? Thanks!

@Ihor-Pryyma
Copy link
Contributor

hey. I pushed PR to enable code-duplication pylint checks #1803

@sakshamdahake
Copy link

sakshamdahake commented Aug 4, 2024

Hey Christian,

I am Saksham and I have 3 years of experience as a SDE. I looked up and found out this project has pretty good issues for good first time contributors. As, I have just started my journey in open source contribution, I would really appreciate some directions regarding this issue. I have a good handle on py3 and I have done early development env setup for this project. Please guide me through the next steps.

@buhtz
Copy link
Member Author

buhtz commented Aug 4, 2024

Hello Saksham,
thank you for your message and efforts to contribute.

Just have look at the warnings and errors of PyLint as described in the initial posting. Have a look in the PullRequest section. There are some other contributors working on some of the linter rules.

Do you know how to fork/branch and create pull requests? Which one of the linter rules you would like to work on?

Don't hesitate to ask back.

Best,
Christian

@sakshamdahake
Copy link

sakshamdahake commented Aug 6, 2024

Hello Christian,

Thank you for your message and the opportunity to contribute.

  • I am familiar with the process of forking, branching, and creating pull requests on GitHub. I have already set up my local environment for Back In Time (BIT).
  • I would like to work on the linter rule W0612 (unused-variable). I can already see the errors on my local setup and have started fixing them.
  • I noticed that there are no open PRs, and I can't see any PRs related to this issue. Could you please tag a link to any approved PR for my reference?
  • I noticed there are a total of 13 errors in various files in the qt directory and several other errors in the common directory. Should I fix all the files in a single PR, or should I raise a PR for each source file modified?
  • Is it mandatory to enable a linter rule in both test_lint.py files in the common and qt directories?

Please let me know if there are any specific guidelines or considerations for addressing this linter rule. I look forward to contributing to the project.

Best regards,
Saksham

@buhtz
Copy link
Member Author

buhtz commented Aug 6, 2024

Hello Saksham,
the rule W0612 is (half) taken by someone else (PR#1790). But he worked only in common folder not in qt. You might find some W0612 errors in qt folder you can work on that separtely.

Currently all PRs are blocked because we are in the middle of a release process. We won't merge PRs until our upstream release reaches the Debian repository. That is why we have so many open PRs currently.

About your questions.

Should I fix all the files in a single PR, or should I raise a PR for each source file modified?

This is up to you to decide. It does not depend only on the number of files modified but also an the amount of lines (and contexts) modified. If it is just about removing some lines with unused variables in 13 files I would be fine with one single PR. If you are unsure it is better to split up into several PRs. Smaller is better. It is easier (for me) to deal with 13 tiny PRs instead of one big PR.

Is it mandatory to enable a linter rule in both test_lint.py files in the common and qt directories?

Not mandatory but it should be this way if possible but also don't have to be.

Best,
Christian

@sakshamdahake
Copy link

Hello Christian,

Thank you for the clarification.

I will work on fixing the W0612 errors in the qt folder as suggested.

Should I wait until the release process is completed before submitting any PRs?

Thank you for the guidance.

Best regards,
Saksham

@buhtz
Copy link
Member Author

buhtz commented Aug 6, 2024

You can submit the PR when ever you want.

@sakshamdahake
Copy link

Please check #1831.

buhtz added a commit that referenced this issue Aug 11, 2024
Activate PyLint rule W0611 (unused imports) and fix the errors. Thank you to Manual (@feman323) for this contribution.

Related to #1755

---------

Co-authored-by: buhtz <[email protected]>
buhtz added a commit that referenced this issue Aug 11, 2024
Thank you to Manual (@feman323) for this contribution.

Related to #1755 .
---------

Co-authored-by: buhtz <[email protected]>
buhtz added a commit that referenced this issue Aug 11, 2024
Thank you to Keith Bates (@dnerever) for this contribution.

Related to #1755 
---------

Co-authored-by: buhtz <[email protected]>
buhtz added a commit that referenced this issue Aug 25, 2024
Thank you to Ihor Pryyma (@Ihor-Pryyma) for this contribution.

Related to #1755 

---------

Co-authored-by: buhtz <[email protected]>
@pratikbawkar
Copy link

Hi, my name is Pratik. I’m starting to contribute on GitHub to learn more about the platform and improve my Python skills. Right now, I’m focused on solving issues to test my knowledge and explore different types of problems. I found this project through GitHub's explore feature while looking for "good first issues." My goal is to learn, connect with new people, and dive deeper into Python. Looking forward to contributing and growing!

@buhtz
Copy link
Member Author

buhtz commented Sep 16, 2024

Hi Pratik,
welcome to the project. I updated the list of available error codes you could work on in the initial post.

@pratikbawkar
Copy link

Hi Pratik, welcome to the project. I updated the list of available error codes you could work on in the initial post.

Thanks @buhtz I will look into it and comment here what issue I will work on.

ivanrdgz03 added a commit to ivanrdgz03/backintime that referenced this issue Nov 7, 2024
… variables to improve code readability and maintain a cleaner codebase. This change resolves the linting issues related to unused variables mentioned in issue bit-team#1755.
buhtz added a commit that referenced this issue Nov 17, 2024
Related to #1755

Thank you to Iván Rodríguez (@ivanrdgz03) for this contribution.
---------

Co-authored-by: Christian Buhtz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GOOD FIRST ISSUE Used by 24pullrequests.com to suggest issues Low relevant, but not urgent Meta
Projects
None yet
Development

No branches or pull requests

9 participants