-
Notifications
You must be signed in to change notification settings - Fork 22
Home
Welcome to the Tapir wiki!
Here I (Théo) will try to define what our needs are in terms of documentation and propose an outline of the documentation's structure to serve as a discussion base. Once the team agrees on a place, format and process, the intention is for the documentation effort to be distributed among the team.
The goals are to :
- enable current developers to do more
- facilate the welcoming of new members
- ensure the maintainability of Tapir through time and changes within the team
In order to work toward those goals, we intend to document how to develop, test, and deploy Tapir.
Linked with the documentation on Tapir development are two other user groups : data analysis and member office. Ideally, we would find a way to avoid repeated work and inconsistencies between these documentations. However, in order to help the current dev team members faster, I suggest that we work toward that goal in a second step.
An overview of previous documentation efforts is available on this page.
Following our meeting on the 05.06.24 (notes), I suggest to start with the following content:
- Release process: how do we go from a feature request or a bug report to a new version being deployed to the production server?
- Original draft proposal: https://etherpad.wikimedia.org/p/supercoop-tapir-release
- Formalized page: https://github.com/SuperCoopBerlin/tapir/wiki/Feature-development-process-and-tracking
- Automated tests:
- When and how to write tests
- What kinds of tests do we use
- How to run them and read the results
- What is test coverage and how to check it
- Debugging:
- Getting started:
- Resources to get started with Python
- Resources to get started with Django
- How to setup your development environment:
- How to get Tapir running on your local machine
- Setup your IDE
- Learn by example: walking through the most common used features to understand how they are setup
- Examples:
- How to add a page: URLs, Views, templates
- How are members created: Models, forms, permissions, validation
- Shifts:
- Points that we should make sure are described in the examples:
- Working with database models and migrations
- Access permissions
- Writing and testing services
- Examples:
- Misc points to address:
- LDAP
- Scheduled tasks with Celery
- Sending emails
- Keeping track of changes with LogEntry models
- Translations
- Deployment (meeting on the 25.06.24: https://supercoopberlin.slack.com/archives/CHNUD32JJ/p1717685190055969)
- How to get informed when errors happen on production (receive an email with the stacktrace automatically)
- How to use GitHub, where to look for stuff...
- Poetry/Python packages
- Faster page load with less database requests, silk profiling