Skip to main content

CLI tool to automate SmartEM multi-repo workspace setup

Project description

smartem-workspace

PyPI version Python Versions License CI

CLI tool to automate SmartEM multi-repo workspace setup.

Installation

# Run directly with uvx (recommended)
uvx smartem-workspace init

# Or install globally
uv tool install smartem-workspace

Usage

Initialize a new workspace

# Interactive setup in current directory
smartem-workspace init

# Specify target directory
smartem-workspace init --path ~/dev/smartem

# Use a preset (skip repo selection)
smartem-workspace init --preset smartem-core

# Non-interactive with preset
smartem-workspace init --preset full --no-interactive

Available presets

Preset Description
smartem-core Core SmartEM repos (decisions, frontend, devtools)
full All 30+ repos including ARIA reference
aria-reference ARIA ecosystem repos for reference
minimal Just smartem-devtools (workspace setup only)

Other commands

# Sync existing repos (git pull)
smartem-workspace sync

# Show workspace status
smartem-workspace status

# Add a single repo
smartem-workspace add DiamondLightSource/smartem-frontend

Options

--path PATH         Target directory (default: current directory)
--preset NAME       Use preset: smartem-core, full, aria-reference, minimal
--no-interactive    Skip prompts, use preset only
--ssh               Use SSH URLs (default: HTTPS)
--skip-claude       Skip Claude Code setup
--skip-serena       Skip Serena MCP setup

What it sets up

  1. Repository clones - Organized by organization (DiamondLightSource, FragmentScreen, GitlabAriaPHP)
  2. Claude Code configuration - Skills, settings, permissions
  3. Serena MCP server - Semantic code navigation
  4. Workspace structure - CLAUDE.md, tmp/, testdata/ directories

Documentation

Development

cd packages/smartem-workspace

# Install dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Run linter
uv run ruff check .

# Build package
uv build

See Developer Guide for detailed development instructions.

Releasing

Releases are published to PyPI via GitHub Actions using Trusted Publishers.

# 1. Update version in pyproject.toml
# 2. Commit the change
git commit -am "chore: release smartem-workspace vX.Y.Z"

# 3. Create and push a version tag
git tag smartem-workspace-vX.Y.Z
git push origin main --tags

The CI workflow runs tests, builds the package, and publishes to PyPI automatically on tag push.

Links

License

Apache-2.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

smartem_workspace-0.1.0.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

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

smartem_workspace-0.1.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file smartem_workspace-0.1.0.tar.gz.

File metadata

  • Download URL: smartem_workspace-0.1.0.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smartem_workspace-0.1.0.tar.gz
Algorithm Hash digest
SHA256 379e91160238e8edbfa08484b2d46d5c3b4621175f8188fe6c179496977dacb9
MD5 b9964f2d5fd375af6b43a1be5df54f49
BLAKE2b-256 8ad55ecfee04e8a01d838ef52e138634866527ea99e1a9549a7427448d2bbf2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartem_workspace-0.1.0.tar.gz:

Publisher: publish-smartem-workspace.yml on DiamondLightSource/smartem-devtools

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

File details

Details for the file smartem_workspace-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for smartem_workspace-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e928b58d85919f5d7725a4686670d1cd5ea5266a1a5662e6f786c828bf37d864
MD5 fb8d01077cc1dd6a12151d016f98d404
BLAKE2b-256 a92b130eda98ddd39b2447d541c2bb7c1ef8ff4ee1f2b81dd003e0dc9337346f

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartem_workspace-0.1.0-py3-none-any.whl:

Publisher: publish-smartem-workspace.yml on DiamondLightSource/smartem-devtools

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