Friendsofthepeople / django-recall-server

A Django server for managing the verification of constituents, publishing of representative information, and signing to recall them.
MIT License
61 stars 37 forks source link

Maintainability #17

Closed robinmuhia closed 1 month ago

robinmuhia commented 3 months ago

Very good initiative.

However, this project will have a lot of contributors hence we need to architect our code structure, maintainability and readability early before we accumulate technical debt.

I will follow this up with a large Pull Request to try and make our code maintainable

C-o-m-o-n commented 3 months ago

Very good initiative.

However, this project will have a lot of contributors hence we need to architect our code structure, maintainability and readability early before we accumulate technical debt.

I will follow this up with a large Pull Request to try and make our code maintainable

That would be very nice of you. Whenever you are ready with the Pull Request, feel free to open it.

Happy hacking with you :)

apexDev37 commented 2 months ago

Good initiative! Given this is in the initial stages, I'd advocate for considerable effort to go into the project's test suite🧪 Well-covered and testable software is the cornerstone of reliable and maintainable software. The following is a fraction of the benefits of investing in a comprehensive test suite:

robinmuhia commented 2 months ago

Good initiative! Given this is in the initial stages, I'd advocate for considerable effort to go into the project's test suite🧪 Well-covered and testable software is the cornerstone of reliable and maintainable software. The following is a fraction of the benefits of investing in a comprehensive test suite:

  • Prevents over-time regression of the codebase
  • Provides users a safety net to fall back to production-ready states
  • Gives quantifiable metrics and empirical evidence that the software behaves as expected.
  • Increases developer productivity by reducing mean time to detection (MTTD) and mean time to recovery (MTTR)

I agree hence the introduction of pytest and a tests folder as well as the ci.yaml

apexDev37 commented 2 months ago

While skimming through the repo, I noticed minor yet fundamental patches that should be added.

@robinmuhia Kindly add a task list on the issues you are working on. This will save time and avoid duplicate work from other contributors working on issues you're tackling

apexDev37 commented 2 months ago

I agree hence the introduction of pytest and a tests folder as well as the ci.yaml

Would the team prefer to write pytest or unittest based tests? I've seen teams write unittest based tests and use pytest for execution (test runner). Apart from the learning curve, I recommend full adoption of the pytest framework, both as the test style and execution

robinmuhia commented 2 months ago

While skimming through the repo, I noticed minor yet fundamental patches that should be added.

@robinmuhia Kindly add a task list on the issues you are working on. This will save time and avoid duplicate work from other contributors working on issues you're tackling

Currently, I am not working on anything at the moment...maybe next weekend i can setup the tests and checks for linting etc

robinmuhia commented 2 months ago

I agree hence the introduction of pytest and a tests folder as well as the ci.yaml

Would the team prefer to write pytest or unittest based tests? I've seen teams write unittest based tests and use pytest for execution (test runner). Apart from the learning curve, I recommend full adoption of the pytest framework, both as the test style and execution

we can use both of them but use pytest for test execution.

apexDev37 commented 2 months ago

Currently, I am not working on anything at the moment...maybe next weekend i can setup the tests and checks for linting etc

Noted. @robinmuhia Kindly note the tasks I aim to resolve this week in the following issue: #31

apexDev37 commented 2 months ago

Would the team prefer to write pytest or unittest based tests? I've seen teams write unittest based tests and use pytest for execution (test runner). Apart from the learning curve, I recommend full adoption of the pytest framework, both as the test style and execution

we can use both of them but use pytest for test execution.

Okay. This should be enforced and well-documented for current and new contributors⚠️ This way the test suite is consistent and does not mix test styles (both pytest or unittest)