Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
Not a problem per say, but a quality of life update. Having auto formatting and linter checks in vscode will ensure all members code according to best practices, and formatting will be opinionated from the get go so members don't have to think about how to format their stuff.
Having everything integrated into vscode but not in pre-commit checks will help guide members without burdening their coding process. They can commit and push to their branches without worrying about constantly fixing little formatting and whitespace errors. All the checks will be hit when PR's are made so as to ensure that no code will go through to main without passing all formatting and linting checks. This lets people get eyes on code as fast as possible, ensuring a more efficient, collaborative process.
Describe the solution you'd like
A clear and concise description of what you want to happen.
For VSCode:
black formatting for python code
isort import sorting as python imports can get a bit unwieldly
flake8 linting for python to ensure pep8 practices are being followed
mypy static type checking to ensure as much python code as deemed necessary is statically typed, reducing the possibility of runtime bugs
clang-format for formatting c++ code
clang-tidy for linting c++ code
auto-docstring capabilities for functions and classes to encourage good programming practices
For CI:
all of the above tools will be included in CI checks, ensuring code passes everything before being merged to main.
the diagnostics from the check should be available to see in some sort of log file so that the developer making the PR can see all the checks failed, and they can go and fix everything.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
we have tried pre-commit hooks running before git commits, but that process becomes a major burden to committing code fast and often. I considered moving everything to pre-push hooks, but I still think lowering the barrier to commits and pushes is a good thing because we can get more eyes on code quickly. Thus, having everything set up in vscode to be either automatic or just present error warnings seems to be the best option for local development.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is.
Not a problem per say, but a quality of life update. Having auto formatting and linter checks in vscode will ensure all members code according to best practices, and formatting will be opinionated from the get go so members don't have to think about how to format their stuff.
Having everything integrated into vscode but not in pre-commit checks will help guide members without burdening their coding process. They can commit and push to their branches without worrying about constantly fixing little formatting and whitespace errors. All the checks will be hit when PR's are made so as to ensure that no code will go through to main without passing all formatting and linting checks. This lets people get eyes on code as fast as possible, ensuring a more efficient, collaborative process.
Describe the solution you'd like A clear and concise description of what you want to happen.
For VSCode:
For CI:
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
we have tried pre-commit hooks running before git commits, but that process becomes a major burden to committing code fast and often. I considered moving everything to pre-push hooks, but I still think lowering the barrier to commits and pushes is a good thing because we can get more eyes on code quickly. Thus, having everything set up in vscode to be either automatic or just present error warnings seems to be the best option for local development.
Additional context Add any other context or screenshots about the feature request here.