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).
Install:
pip install expops
The installed CLI command is expops.
Initial Setup
Prerequisites
- Python 3.10
- Git installed and configured
- Access to the project repository
- Required dependencies installed
First-Time Setup
# Clone the repository
git clone <repository-url>
cd expops-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 enhancementsbugfix/- Bug fixesrefactor/- Code refactoringtest/- Adding or updating testsdocs/- Adding or updating documents
Examples:
feature/model-versioningbugfix/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
- Ensure all CI/CD checks pass
- Rebase if needed to keep history clean
- Merge using "Squash and merge" or "Rebase and merge"
- 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
-
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
-
Push the tag to GitHub:
git push origin v<version-number> # Example: git push origin v1.0.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file expops-0.1.24.dev0.tar.gz.
File metadata
- Download URL: expops-0.1.24.dev0.tar.gz
- Upload date:
- Size: 554.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56f6a213c7337aa0a765fc2496e423f7a085fa1835b43b5e8ba7517dc34395a8
|
|
| MD5 |
6f1a223445007c93cde1940656adeb73
|
|
| BLAKE2b-256 |
a97155b2ce3bf5a32e7c4412ca8a04c6621f2c65641a33f149aa6c7a7ad911b3
|
Provenance
The following attestation bundles were made for expops-0.1.24.dev0.tar.gz:
Publisher:
release.yml on local-minima-lab/expops-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
expops-0.1.24.dev0.tar.gz -
Subject digest:
56f6a213c7337aa0a765fc2496e423f7a085fa1835b43b5e8ba7517dc34395a8 - Sigstore transparency entry: 1059454084
- Sigstore integration time:
-
Permalink:
local-minima-lab/expops-platform@be8238a0a3603d9a82172fa5c4f8ef6eed0dbfc7 -
Branch / Tag:
refs/tags/v0.1.23 - Owner: https://github.com/local-minima-lab
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@be8238a0a3603d9a82172fa5c4f8ef6eed0dbfc7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file expops-0.1.24.dev0-py3-none-any.whl.
File metadata
- Download URL: expops-0.1.24.dev0-py3-none-any.whl
- Upload date:
- Size: 518.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0f72b05a6d93a11456f3797ac18c144f807126f27c038de49378bfb296706cb
|
|
| MD5 |
04c6a679ecc7b79751eb5819d4cff28a
|
|
| BLAKE2b-256 |
14c7f10eb8238d9b0dcb554c9dee0c49010dd6df487ea6cc23caf4cc24216745
|
Provenance
The following attestation bundles were made for expops-0.1.24.dev0-py3-none-any.whl:
Publisher:
release.yml on local-minima-lab/expops-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
expops-0.1.24.dev0-py3-none-any.whl -
Subject digest:
c0f72b05a6d93a11456f3797ac18c144f807126f27c038de49378bfb296706cb - Sigstore transparency entry: 1059454090
- Sigstore integration time:
-
Permalink:
local-minima-lab/expops-platform@be8238a0a3603d9a82172fa5c4f8ef6eed0dbfc7 -
Branch / Tag:
refs/tags/v0.1.23 - Owner: https://github.com/local-minima-lab
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@be8238a0a3603d9a82172fa5c4f8ef6eed0dbfc7 -
Trigger Event:
push
-
Statement type: