No matter what exactly has do be done, there are some steps that should always be performed when working with the v5 code base.
<HTML><ol></HTML>
example: creating an endpoint: what is the interface? what should be returned in error cases? are there time limits?
clone git / pull / check that you are in master
create a new branch for the feature, naming convention: <ID>_<NAME> where ID is the trello card number
setup / check the local developing environment
do one thing at a time (dont work on independent features in parallel)
understand the implications of a change (changing a function - where is it used? changing a db query - do indexes have to be reevaluated / changed? and so on)
have as few code duplication as possible.
use type hints for parameters and returned values
logging: everything that may be useful for debugging later on should be logged; use the correct level
tests: new feature = new test; changing code = check / change existing tests; removing code = check / change existing tests
test the positive case, but more importantly test cases where the input is not as “usually expected”
documentation: code should be clear, simple and readable, but there are definitely cases that require documentation; just make sure that someone who reads the code without explanation can understand whats going on. writing a non trivial function? docstring; creating an endpoint? docstring; doing black magic or 3 steps in one line? comment; adding a complete new feature, changing a pipeline, etc? update the README.md
make an entry in the CHANGELOG.md
merge request + commit meeting
make sure that you pushed all the changes to the feature branch, then create a merge request
get someone for the commit meeting and prepare to answer questions about your changes
merge
deployment + (pre-)live system changes
change back to master an pull the changes and run the tests again
make sure that it is fine to deploy (check the logs of the live system, is it used right now?)
use the deploy pipeline of the project
test that the deployment worked correctly (logs, health endpoint, test scripts, check index usage)
are there changes necessary to the live system outside the code? e.g. database changes (tables, indexes,… also keep in mind to perform analyze after postgres changes) or cronjob changes<
HTML></ol></
HTML>