GithubHelp home page GithubHelp logo

virtool / virtool.ca Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 6.0 18.86 MB

The new website for Virtool

Home Page: https://www.virtool.ca

JavaScript 11.43% CSS 12.62% Less 20.75% SCSS 22.83% Astro 3.17% TypeScript 1.00% MDX 28.19%

virtool.ca's Introduction

Virtool

Virtool is a web-based application for diagnosing pathogen infections using high-throughput sequencing.

ci

Website: https://www.virtool.ca

Getting Started

See the Virtool documentation to get started with the latest version of Virtool 4.0.0.

About Versions

Virtool is currently undergoing a major transformation into a cloud-native application. This will mean Virtool can scale work across multiple hosts and run natively in Kubernetes and public cloud providers.

For current users and administrators:

  1. Virtool 4.0.0 series should be used for now.
  2. Virtool 4.0.0 series will continue to receive bug and security fixes for the forseeable future.
  3. Virtool 5.0.0 will comprise multiple containerized services that need to run together. A deployment and migration guide will be provided.

Tests

In the source directory root:

  1. Start the required backing services in Docker.

    docker compose -f tests/docker-compose.yml -p virtool-test up -d
    
  2. Run the test suite:

    poetry run pytest
    

Multiplexing

The test suite works with pytest-xdist.

poetry run pytest -n 4

This will use multiple Python processes to run the tests in parallel.

Snapshots

We use Syrupy for snapshot testing.

Snapshots are used for tests where we want to assert that an object (eg. database record, Pydantic object, API response) has an expected shape and set of values.

If snapshots need to be updated:

poetry run pytest <path_to_test_file> --su

You can be even more specific by specifying the test class or function:

poetry run pytest <path_to_test_file>::<class_or_function>

Always be specific about what snapshots you are updating. Don't blindly update a ton of snapshot files just to make your tests pass.

Commits

All commits must follow the Conventional Commits specification.

These standardized commit messages are used to automatically publish releases using semantic-release after commits are merged to main from successful PRs.

Example

feat: add API support for assigning labels to existing samples

Descriptive bodies and footers are required where necessary to describe the impact of the commit. Use bullets where appropriate.

Additional Requirements

  1. Write in the imperative. For example, "fix bug", not "fixed bug" or "fixes bug".
  2. Don't refer to issues or code reviews. For example, don't write something like this: "make style changes requested in review". Instead, "update styles to improve accessibility".
  3. Commits are not your personal journal. For example, don't write something like this: "got server running again" or "oops. fixed my code smell".

From Tim Pope: A Note About Git Commit Messages

virtool.ca's People

Contributors

buddy326 avatar christinewc avatar elanjm12 avatar igboyes avatar raastinn avatar reecehoffmann avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.