Quality Assurance

DataJoint and DataJoint Elements serve as a framework and starting points for numerous new projects, setting the standard of quality for data architecture and software design. To ensure higher quality, the following policies have been adopted into the software development lifecycle (SDLC).

Coding Standards

When writing code, the following principles should be observed.

Automated Testing

All components and their revisions must include appropriate automated software testing to be considered for release. The core framework must undergo thorough performance evaluation and comprehensive integration testing.

Generally, this includes tests related to:

Code Reviews

When introducing new code to the code base, the following will be required for acceptance by DataJoint core team into the main code repository.

Alpha Release Process

For the workflows and their revisions, the initial development and internal testing, the code will be released in Alpha. During this phase, we will engage external research teams to test and validate the complete workflows in real-life experiments with our team's engineering support. During this phase, significant design changes may be performed and not all features may be completely developed. However, several features should be usable and suitable for testing and validation.

Criteria to participate as validation sites

Criteria for a successful validation

Beta Release Process

After the initial validation phase, we make the workflows available to the general public with a warning of Beta status and that the released code may be subject to errors and changes. During this phase, feature development should be complete with a focus on collecting user feedback to make design improvements and bug fixes.

Official Release Process

After gaining confidence of user satisfaction by resolving concerns raised in Beta, the workflows are declared officially released and announced to the community.

Maintenance Support Lifecycle

Revision of the workflows will be released with a version specification that clearly identifies whether in Alpha, Beta, or Official release status. Quality assurance process will be followed for all iterations and new designs. If the updates require changes in the design of the database schema or formats, a process for data migration will be provided.

User Feedback & Issue Tracking

All components will be organized in GitHub repositories with guidelines for contribution, feedback, and issue submission to the issue tracker. For more information on the general policy around issue filing, tracking, and escalation, see the DataJoint Open-Source Contribute policy. Typically issues will be prioritized based on their criticality and impact. If new feature requirements become apparent, this may trigger the creation of a separate workflow or a major revision of an existing workflow.