Skip to content

talmolab/lablink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

92 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

LabLink

Dynamic VM allocation and management system for computational research workflows.

PyPI - lablink-allocator-service PyPI - lablink-client-service Documentation License


πŸ“¦ What's in This Repository

This repository contains the core LabLink packages, Docker images, and documentation:

Python Packages (Published to PyPI)

Docker Images (Published to GHCR)

Production images are built from PyPI packages and tagged with specific versions:

  • lablink-allocator-image - Allocator service container

    docker pull ghcr.io/talmolab/lablink-allocator-image:0.0.2a0
    docker pull ghcr.io/talmolab/lablink-allocator-image:latest
  • lablink-client-base-image - Client service container

    docker pull ghcr.io/talmolab/lablink-client-base-image:0.0.7a0
    docker pull ghcr.io/talmolab/lablink-client-base-image:latest

Available Tags:

  • <version> (e.g., 0.0.2a0) - Specific package version (recommended for production)
  • latest - Latest stable release
  • linux-amd64-latest - Latest for specific platform
  • <sha> - Specific git commit
  • linux-amd64-test - Development/testing builds

See Docker Image Tags for complete tagging strategy.

Documentation

  • LabLink Docs - Comprehensive documentation
    • Getting Started
    • Configuration
    • API Reference
    • Contributing Guide

πŸš€ Quick Start

For Users

Using LabLink:

This repository provides the Python packages and Docker images. To deploy LabLink infrastructure (allocator EC2, DNS, etc.), use the LabLink Template Repository.

For Developers

Contributing to LabLink packages:

# Clone the repository
git clone https://github.com/talmolab/lablink.git
cd lablink

# Install uv (recommended Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Setup allocator service for development
cd packages/allocator
uv sync --extra dev

# Setup client service for development
cd ../client
uv sync --extra dev

See the Contributing Guide for detailed development instructions.


πŸ“š Documentation


πŸ—οΈ Repository Structure

lablink/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ allocator/                   # Allocator Python package
β”‚   β”‚   β”œβ”€β”€ src/lablink_allocator/   # Source code
β”‚   β”‚   β”‚   └── terraform/           # Client VM Terraform (part of package)
β”‚   β”‚   β”œβ”€β”€ tests/                   # Unit tests including Terraform tests
β”‚   β”‚   β”œβ”€β”€ Dockerfile               # Production image (from PyPI)
β”‚   β”‚   └── Dockerfile.dev           # Development image (local code)
β”‚   └── client/                      # Client Python package
β”‚       β”œβ”€β”€ src/lablink_client/      # Source code
β”‚       β”œβ”€β”€ tests/                   # Unit tests
β”‚       β”œβ”€β”€ Dockerfile               # Production image (from PyPI)
β”‚       └── Dockerfile.dev           # Development image (local code)
β”œβ”€β”€ docs/                            # MkDocs documentation
└── .github/workflows/               # CI/CD workflows
    β”œβ”€β”€ ci.yml                       # Tests, linting, Docker builds
    β”œβ”€β”€ publish-pip.yml              # PyPI publishing
    β”œβ”€β”€ lablink-images.yml           # Docker image builds & pushes
    └── docs.yml                     # Documentation deployment

Note: Infrastructure deployment code (allocator EC2, DNS, etc.) has been moved to lablink-template.


πŸ“¦ Package Versioning

LabLink uses independent versioning for its packages:

  • lablink-allocator-service: PyPI
  • lablink-client-service: PyPI

See the Release Process for how releases are managed.


🀝 Contributing

We welcome contributions! Please see:

Quick Contributing Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make changes and add tests
  4. Run tests: cd packages/allocator && uv run pytest
  5. Commit: git commit -m "feat: add my feature"
  6. Push and open a Pull Request

πŸ”— Related Repositories


πŸ“ License

BSD-3-Clause License


πŸ™ Acknowledgments

LabLink is developed by the Talmo Lab for the research community.


Questions? Check the FAQ or open an issue.

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 6