Community Guide
A guide to getting involved with SQLAlchemy and its associated projects.
While these sections may be written to address developers of the core SQLAlchemy project, the various guidelines, especially the Code of Conduct, apply to all projects hosted under the SQLAlchemy organization's repository.
Get Support
Before requesting support, please try to make use of the available online resources, where the answers to a large number of questions can already be found. The most important is the documentation. A great deal of questions asked in SQLAlchemy forums are answered through simple searches using the search box in the upper right of the index page or in the left hand column of any documentation page. The documentation is worked on and improved constantly, sometimes dramatically so. Issues with the documentation may be reported as bugs (see reporting bugs). Another approach is to search through the Github Discussions forum which is fast becoming a primary informational resource.
Github Discussions
SQLAlchemy and its related projects now offer support via the Github Discussions link on the Github page for each project. This forum-style interface allows for discussions more or like that of a mailing list, but with better support for illustrating code samples and linking to issues. When posting on the discussions forum, we ask that posters try, to the best of their ability, to compose messages are both complete in their description as well as succinct with regards to the topic at hand:
- Complete - important details like the version of SQLAlchemy in use, the type of database being worked with (MySQL 8, PostgreSQL 12, etc.), as well as full stack traces for error messages are provided, as well as clear sections of code illustrating the exact usage that leads to the symptom.
- Succinct - code and output is trimmed and formatted to illustrate only the problem at hand - details that aren't directly relevant to the issue at hand should be trimmed out as much as possible, including unrelated tables and models, dependencies on internal or third party libraries, unrelated object methods and relationships, large numbers of column definitions that can be omitted, complicated internal variable names that are difficult for outsiders to read.
These are only guidelines to follow, as we can and regularly do accommodate users of all skill levels. As long as some effort is apparent on your part to research and thoughtfully describe the issue, you've earned support from us !
Real-time Channels: Gitter, IRC
There are several real-time options for support.
The Developers of SQLAlchemy kindly request all people participating in these channels respect the Code of Conduct when seeking or providing support.
Core developers are sometimes present on these channels, but please do not single them out for individual assistance! There are usually about 80-100 members on at any given time - many of which can likely help with your issue. If your issue is genuinely more intricate and requiring of more skillful help than is currently available on IRC or Gitter, that's when it's time to post on the Github Discussions forum.
Gitter Room
The sqlalchemy/community Gitter room is available for real-time support. There are usually a handful of SQLAlchemy users and developers present and willing to assist.
Unlike IRC, Gitter offers a browsable public history - so user are not required to be constantly logged-in and can review any conversations they have missed.
IRC Channel
A popular support resource is the IRC channel. In this forum, users of all skill levels can ask short questions, post pastes of code, and discuss techniques among other developers who happen to be present. The usual rules of IRC etiquette apply here. Users who've put some effort into understanding their problem ahead of time will tend to get better results.
The IRC channel is on the Libera network as #sqlalchemy
.
Professional support with Tidelift
Professional support for SQLAlchemy is available as part of the Tidelift Subscription. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.