Skip to content

Latest commit

 

History

History
79 lines (69 loc) · 4.43 KB

L1_co-development.mdx

File metadata and controls

79 lines (69 loc) · 4.43 KB
sidebar_position title
1
L1 - Co-development

import * as Responsibilities from './Responsibilities.js';

Start situation

Co-development of the new virtual lab can be started when a basic virtual lab has been provisioned with the customized libraries and configurations required by the development plan and a development team is ready to work on the subject.

During the co-development phase

The development team preferably follows Agile practices to implement the components and workflows based on the development plan.

Where possible, the following should be done while building the virtual lab:

  • Documentation
    • Publish virtual lab metadata outside the virtual lab. This will allow others to be aware of the context of the virtual lab from an early stage.
      • Track the metadata with version control, such that the changes to metadata can be viewed by virtual lab users.
      • Currently, we are choosing a default metadata catalogue. For progress, see issue #275.
    • Create a directory for documentation of the virtual lab.
      • Track the documentation with version control.
    • Start each cell in a notebook with a title.
  • Security
    • Make sure personal tokens for APIs do not end up in version control. ToDo VLIC: Guideline for secret management #276.
  • Versioning
    • Pin versions of used software and libraries in the dependencies to prevent compatibility problems when updates occur to the packages and software.
  • Data
    • Prepare the data for scientific experiments.
    • Store data that is only read by the virtual lab in an external catalogue and use an API to access this data.
  • Parallelization
    • Parallelize the execution of the parts of the code where this is useful. A tutorial is available here.
  • Workflow
    • Prepare and perform a demonstration of the virtual lab to inform the community supporter of the possibilities in the virtual lab.

Co-development responsibilities

The following roles should be assigned during co-development:

  • Golden users: <Responsibilities.L1GoldenUser/>
  • Virtual lab core developers: <Responsibilities.L1CoreDeveloper/>
  • Virtual lab code reviewer: <Responsibilities.L1Reviewer/>
  • Community supporter: <Responsibilities.L1CommunitySupporter/>
  • Infrastructure supporter: <Responsibilities.L1InfrastructureSupporter/>
  • Virtual lab coordinator: <Responsibilities.L1Coordinator/>
  • Virtual research environment (VRE) development and operations (DevOps) engineers: <Responsibilities.L1DevOps/>

Co-development milestones

Two milestones should be reached during co-development:

  • The publication of the metadata.
  • A demonstration of a running the workflow in the virtual lab.

Exit conditions

The lab transitions from co-development to the validation phase, when the technical development has been finished and the lab is ready to conduct the scientific experiments on the required scale. For this, at least the following criteria should be checked:

  • Documentation
    • [ ] The virtual lab metadata is available outside the virtual lab.
      • [ ] Metadata is tracked by version control.
  • Security
    • [ ] Personal tokens are not tracked by version control.
  • Versioning
    • [ ] Versions of used software and libraries are pinned.
  • Data
    • [ ] The data is ready for scientific experiments.
    • [ ] Data that is only read by the virtual lab is stored in an external catalogue.
  • Codebase
    • [ ] The code executes without errors: The code can be executed without errors. Currently, you can verify this by manually executing all cells in the notebook on a machine on which the code was not developed (to ensure no references are made to local resources).
    • [ ] The responsibility of each cell in the notebook is clear and can be described in a single sentence.
    • [ ] The coding style is consistent and follows a style guide e.g. For Python PEP 8.
    • [ ] Parallel processing is applied where suitable.
    • [ ] There are clear errors when expected files and objects are not found.
    • [ ] External code use, such as command-line interface tools, are clearly labeled.
  • Containerization
    • [ ] The notebook cells can be containerized.
  • Workflow execution
    • [ ] The containerized cells can run without any modifications.
    • [ ] It is possible to give a demonstration of the virtual lab.