Skip to main content

CFF Libraries

The CFF libraries are various modules for 3D visualization and editing on the AXS platform.

CFF Libraries deployment

Purpose

This document provides an overview of the Clinical Frontend Framework (CFF) libraries, which are modules designed for 3D visualization and editing on the AXS platform.

Demos and Documentation

Explore live demos and detailed documentation in Storybook.

Additional information about this project can be found on the Confluence page for the project.

Contributing

To contribute to this project, refer to the CONTRIBUTING.md file for guidelines.

Tools

The following tools are available in the CFF libraries:

This project follows the Inner-source model. For governance details, see GOVERNANCE.md.

Installation

The libraries require Node.js 20 and Yarn 4 (berry). Ensure you have the correct versions installed as specified in the .nvmrc file. Follow the steps below to set up your environment:

Prerequisites

  1. Git Configuration: Ensure proper line endings and commit signing. Refer to Git setup details.
  2. Node Version Manager (nvm): Install nvm to manage Node.js versions. For Windows, use nvm-windows.
  3. Yarn: Install Yarn by enabling corepack (corepack enable). Refer to the Yarn installation guide.

Initializing Yarn

Run the initYarnrc.sh script to configure authentication for the Azure Artifacts registry. Follow the instructions in the Confluence page for the project to obtain your personal access token.

Development

To start development:

  1. Install dependencies using yarn.
  2. Launch the Storybook environment with yarn dev.

Managing Dependencies

Use manypkg check to ensure dependency consistency across packages. Upgrade dependencies with:

yarn manypkg upgrade <package-name>

API Client Generation

API clients are generated from specifications during build processes. To force regeneration, run:

yarn generate --force

Versioning

The project uses beachball for versioning. Create change records with:

yarn change

After merging, the CI will handle version bumps, tagging, and publishing. Promote releases to stable using the release pipeline.