Skip to main content

MLOps Platform with step-based pipeline execution

Project description

ExpOps

expops is a project-based experiment runner: keep each experiment isolated under a workspace, run pipelines, and save run artifacts (with optional tracking/backends).

User Guide

Install:

pip install expops

The installed CLI command is expops.

Initial Setup

Prerequisites

  • Git installed and configured
  • Access to the project repository
  • Required dependencies installed

First-Time Setup

# Clone the repository
git clone <repository-url>
cd mlops-platform

# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate   # On Windows: .venv\Scripts\activate

# Install the package in editable mode (for development)
pip install -e .

Branch Naming Convention

Use descriptive branch names that follow this pattern:

<type>/<short-description>

Types:

  • feature/ - New features or enhancements
  • bugfix/ - Bug fixes
  • refactor/ - Code refactoring
  • test/ - Adding or updating tests
  • docs/ - Adding or updating documents

Examples:

  • feature/model-versioning
  • bugfix/api-timeout-error

Development Workflow

Step 1: Create a New Branch

Always create a new branch from the latest main branch:

# Update main branch
git checkout main
git pull origin main

# Create and switch to new branch
git checkout -b feature/your-feature-name

Step 2: Make Changes

  • Write clean, well-documented code
  • Follow the project's coding standards
  • Keep changes focused and atomic
  • Test your changes locally

Step 3: Regular Commits

Commit your changes regularly with meaningful messages:

git add <changed-files>
git commit -m "descriptive commit message"

Step 4: Keep Branch Updated

Regularly sync your branch with main to avoid conflicts:

git checkout main
git pull origin main
git checkout feature/your-feature-name
git merge main

This would also trigger the CI/CD pipeline on Github Actions, which includes running automated testing.

Testing Requirements

Writing Tests

  • Write unit tests for new functions and classes
  • Place tests in the tests/ directory
  • Name test files as test_<module_name>.py

Merge and Deployment

Merging

  1. Ensure all CI/CD checks pass
  2. Rebase if needed to keep history clean
  3. Merge using "Squash and merge" or "Rebase and merge"
  4. Delete the feature branch after merging
# After merge, update local main
git checkout main
git pull origin main
git branch -d feature/your-feature-name

Post-Merge

  • Monitor for any issues in staging/production
  • Update project documentation if needed
  • Close related issues

Publishing to PyPI

The project uses GitHub Actions to automatically build and publish to PyPI when a git tag is pushed.

Steps to Publish

  1. Update version and create a git tag:

    # Create a new version tag (e.g., v1.0.0, v1.1.0, v2.0.0)
    git tag v<version-number>
    
    # Example:
    git tag v1.0.0
    
  2. Push the tag to GitHub:

    git push origin v<version-number>
    
    # Example:
    git push origin v1.0.0
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

expops-0.1.18.dev0.tar.gz (500.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

expops-0.1.18.dev0-py3-none-any.whl (475.4 kB view details)

Uploaded Python 3

File details

Details for the file expops-0.1.18.dev0.tar.gz.

File metadata

  • Download URL: expops-0.1.18.dev0.tar.gz
  • Upload date:
  • Size: 500.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for expops-0.1.18.dev0.tar.gz
Algorithm Hash digest
SHA256 82b79814b31967bd4fe2c793d72c6a28793d0d7f3c0dab2517aa3c64a799b754
MD5 799dfb63bd33671d349ad50041f5acd9
BLAKE2b-256 cb3d105f110a61999eb26a4d06b509a79e116922b463dc2a04f57a9c62b5897f

See more details on using hashes here.

Provenance

The following attestation bundles were made for expops-0.1.18.dev0.tar.gz:

Publisher: release.yml on local-minima-lab/mlops-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file expops-0.1.18.dev0-py3-none-any.whl.

File metadata

  • Download URL: expops-0.1.18.dev0-py3-none-any.whl
  • Upload date:
  • Size: 475.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for expops-0.1.18.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 03fb013e4c2c52974199d8636ece30650736ef0761fa072605f7c4a4d8ae799e
MD5 9b14762c7972694a4f83a6e3b7fb03ab
BLAKE2b-256 8b5a2d8303d71a1a3ba1c2f35f0799aff4a70da140d2d0dcd6b30a5f7cfd6017

See more details on using hashes here.

Provenance

The following attestation bundles were made for expops-0.1.18.dev0-py3-none-any.whl:

Publisher: release.yml on local-minima-lab/mlops-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page