Skip to content

feat: bootstrap new autolens_profiling repository (Phase 0) #513

@Jammy2211

Description

@Jammy2211

Overview

Bootstrap a new GitHub repository PyAutoLabs/autolens_profiling that will consolidate all PyAutoLens profiling work currently scattered across autolens_workspace_developer/jax_profiling/ and searches_minimal/. This is Phase 0 of the multi-phase z_features roadmap tracked at PyAutoPrompt/z_features/autolens_profiling.md — it creates the empty repo and scaffolding so Phases 1–5 (likelihood mirror, simulators mirror, Nautilus mirror, instrument-framed README dashboard, CI) have a clean place to land.

This issue lives on PyAutoLabs/PyAutoLens as a temporary home because the target repo does not yet exist. It can be closed once the new repo is live and contains the scaffolding committed via this task. Future phase issues will file on PyAutoLabs/autolens_profiling directly.

Plan

  • Create the empty public GitHub repo PyAutoLabs/autolens_profiling (description: "Profiling and run-time tracking for PyAutoLens likelihood functions, simulators, and samplers across CPU, laptop GPU, and HPC GPU.")
  • Clone it locally to /home/jammy/Code/PyAutoLabs/autolens_profiling/ so later phase work picks it up alongside the other PyAutoLabs repos.
  • Author a top-level README.md covering vision/scope, a "JAX gradients out of scope for now" callout pointing to PyAutoLabs/autolens_workspace_developer/jax_profiling/gradient/, a "Related repos" section, and a guide to how the versioned results/ artifact pattern works.
  • Add LICENSE (matching the MIT license other PyAutoLabs repos use) and .gitignore (mirrored from autolens_workspace_developer).
  • Create the folder skeleton — likelihood/, simulators/, searches/, results/ — each containing only a placeholder README.md that says "populated by Phase N of the z_feature".
  • Decide and document whether the repo is a Python package or a script collection (lean: script collection — no pyproject.toml).
  • Push the initial scaffolding commit straight to main (no PR, no feature branch — this is the repo's first commit).
  • Update PyAutoPrompt/z_features/autolens_profiling.md to mark Phase 0 as shipped and link to the new repo.
Detailed implementation plan

Affected Repositories

  • PyAutoLabs/PyAutoLens (issue tracker only — no code changes)
  • PyAutoLabs/autolens_profiling (new repo, created by this task)
  • PyAutoLabs/autolens_workspace_developer (read-only reference for .gitignore, results convention, CLAUDE.md profiling conventions; now public on PyAutoLabs as of 2026-05-16)

Work Classification

Library-style work (creating a new code repo), but does not follow the standard /start_library worktree flow because there is no pre-existing repo to branch from. Initial scaffolding goes straight to main of the new repo.

Execution Steps

  1. Confirm the repo doesn't already exist (sanity check — last verified missing 2026-05-16):

    gh repo view PyAutoLabs/autolens_profiling 2>&1 | head -3
    # expect: GraphQL: Could not resolve...
  2. Create the repo on GitHub:

    gh repo create PyAutoLabs/autolens_profiling \
        --public \
        --description "Profiling and run-time tracking for PyAutoLens likelihood functions, simulators, and samplers across CPU, laptop GPU, and HPC GPU." \
        --clone \
        --add-readme=false

    If --clone lands in the wrong directory, clone manually:

    git clone git@github.com:PyAutoLabs/autolens_profiling.git /home/jammy/Code/PyAutoLabs/autolens_profiling
  3. Author LICENSE — copy the MIT license from /home/jammy/Code/PyAutoLabs/PyAutoLens/LICENSE (verify it's MIT first; PyAutoLens uses MIT).

  4. Author .gitignore — start from /home/jammy/Code/PyAutoLabs/autolens_workspace_developer/.gitignore and add: profiler trace artifacts (*.prof, *.pstats), JAX cache (/tmp/jax_cache/, __jax_cache__/), numba cache, matplotlib config, scratch result dirs from local dev.

  5. Author top-level README.md with these sections:

    • Title + one-line description.
    • Vision / scope — three short paragraphs:
      • What this repo profiles (likelihood, simulators, searches).
      • What hardware tiers (CPU, laptop GPU, HPC GPU like A100).
      • What dataset types and model compositions.
    • Headline results table — placeholder/stub explaining "populated by Phase 4".
    • JAX gradients note — explicit callout: "Gradient profiling is currently tracked in PyAutoLabs/autolens_workspace_developer/jax_profiling/gradient/ and will fold into this repo in a future phase once the gradient story stabilises."
    • Related repos — links to PyAutoLabs/PyAutoLens, PyAutoLabs/autolens_workspace, PyAutoLabs/autolens_workspace_developer, and Jammy2211/autolens_colab_profiling (sibling, Colab-specific scope, not yet migrated to PyAutoLabs).
    • How to read this repo — explain the results/**/*_summary_v<version>.{json,png} versioned-artifact pattern.
    • Section index — links to likelihood/README.md, simulators/README.md, searches/README.md.
    • Roadmap — short list of upcoming phases with link to PyAutoLabs/PyAutoPrompt/z_features/autolens_profiling.md (note: this PyAutoPrompt link is internal-only; consider also pasting the phase list into the README itself for public visibility).
    • Package vs scripts note — explicit one-liner: "This repo is a collection of standalone profiling scripts, not an installable Python package. Run scripts from the repo root."
  6. Create folder skeleton with placeholder READMEs:

    likelihood/README.md       → "Populated by Phase 1 of the z_feature. See PyAutoLabs/PyAutoPrompt/z_features/autolens_profiling.md."
    simulators/README.md       → "Populated by Phase 2 of the z_feature."
    searches/README.md         → "Populated by Phase 3 of the z_feature (Nautilus only first pass)."
    results/README.md          → "Versioned profiling artifacts written by scripts under likelihood/, simulators/, searches/. Layout mirrors source folders."
    
  7. Initial commit + push to main:

    cd /home/jammy/Code/PyAutoLabs/autolens_profiling
    git add -A
    git commit -m "feat: bootstrap autolens_profiling scaffolding
    
    Initial scaffolding for the new profiling repo. Phase 0 of the
    z_features roadmap tracked at PyAutoPrompt/z_features/autolens_profiling.md.
    
    - README.md with vision, scope, JAX-gradient out-of-scope note, related repos, how-to-read guide.
    - LICENSE (MIT), .gitignore.
    - Folder skeleton: likelihood/, simulators/, searches/, results/ with placeholder READMEs.
    
    Tracks PyAutoLens issue #<NN>."
    git push -u origin main

    (Substitute the real PyAutoLens issue number once known.)

  8. Mark Phase 0 shipped in the tracker:

    • Edit PyAutoPrompt/z_features/autolens_profiling.md Phase 0 row to add a "shipped" indicator and link to the new repo.
    • Add the task name autolens-profiling-bootstrap to PyAutoPrompt/complete.md so the z_features tracker audit (via /start_dev z_features/autolens_profiling.md) picks it up as shipped on the next audit.
    • Push PyAutoPrompt via prompt_sync_push.
  9. Close this PyAutoLens issue with a comment linking to the new repo and the initial scaffolding commit.

Key Files (in the NEW repo autolens_profiling)

  • README.md — vision / scope / dashboard placeholder / JAX-gradient note.
  • LICENSE — MIT, matching other PyAutoLabs repos.
  • .gitignore — mirrored from autolens_workspace_developer + profiler/cache additions.
  • {likelihood,simulators,searches,results}/README.md — placeholder section stubs.

Why this task does NOT use the standard /start_library worktree flow

The standard flow assumes an existing repo to branch from. Here:

  • There is no existing repo — gh repo create provisions one.
  • There is no feature branch — initial scaffolding lands on main directly.
  • There is no PR — the first commit IS the repo's first commit.

The next session should treat this task as a one-shot scripted bootstrap, NOT invoke /start_library.

Pre-flight checks for the next session

Before doing any of step 2, verify:

  • gh auth status shows you authed to GitHub as someone with permissions on the PyAutoLabs org.
  • The repo still doesn't exist (gh repo view PyAutoLabs/autolens_profiling).
  • /home/jammy/Code/PyAutoLabs/autolens_profiling/ doesn't exist yet (ls /home/jammy/Code/PyAutoLabs/autolens_profiling).
  • No other active task in PyAutoPrompt/active.md is mid-flight on PyAutoLabs repo creation (currently none).

Original Prompt

The full prompt content is preserved at PyAutoPrompt/issued/bootstrap.md after this issue is created. The complete z_features roadmap (Phases 0–5) lives at PyAutoPrompt/z_features/autolens_profiling.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions