Skip to content

Add protoprimer to "Productivity Tools"#328

Open
uvsmtid wants to merge 1 commit intowmariuss:mainfrom
uvsmtid:add_protoprimer
Open

Add protoprimer to "Productivity Tools"#328
uvsmtid wants to merge 1 commit intowmariuss:mainfrom
uvsmtid:add_protoprimer

Conversation

@uvsmtid
Copy link

@uvsmtid uvsmtid commented Feb 21, 2026

@wmariuss

Hey, what are the entry requirements for a project to be listed?

I want to add protoprimer:
https://github.com/uvsmtid/protoprimer
"An arg-less script to bootstrap tools in isolated python environments in one shot."

Section "Productivity Tools" seems suitable.

@uvsmtid uvsmtid requested a review from wmariuss as a code owner February 21, 2026 11:16
@wmariuss
Copy link
Owner

Hi,

Thank you for your contribution.
What exactly is this tool? Can you give me a real use case?

@uvsmtid
Copy link
Author

uvsmtid commented Mar 10, 2026

@wmariuss

Thank you for your contribution. What exactly is this tool? Can you give me a real use case?

Short

an arg-less one-liner to bootstrap a repo clone

./prime

Long

Any python repo requires some preparation to be useful - like setting up venv.

Basic venv creation with requirements.txt may work...

... or it may fail because you also need specific python version.

protoprimer is a text script hosted in your repo:

  • takes off with a wild python version (whatever is in PATH)
  • downloads and switches it in-flight to the required python version
  • hands over inside a comfy isolated venv with all dependencies pinned

AI can summarize readme.md, but I embedd some...

Highlights:

  • Why proto?

    The beginning when nothing exists yet.

  • Why not reinvent shell-script?

    shell-scripts have no test cases + reinventing = a lot of waste.

  • Why not uv?

    uv is not arg-less, uv is not one-liner, uv has to be installed first.

  • It isolates setup per repo clone (e.g. avoid changing any user ~/.*rc files).

  • It delegates everything to standard tools (e.g. pip or uv).

  • It pins different versions depending on the selected environment (e.g. local or CI).

  • It avoids writing documentation by authors, reading documentation by users.

    Just (choose your name):

    ./boot
  • Eventually, it passes control to custom code (already in predictable venv).

    Think: generating code, configuring pre-commit hooks, linters, whatever...

  • What if there is no any "wild" python?

    Requiring any unspecified python version is not a hard ask.

  • How does it deal with arbitrary repo directory structure?

    There is a basic config to find

  • It also starts scripts directly in their venv without activation:

    ./cmd/some_script
    

    All with exact dependencies. All isolated in that repo clone.

  • Why repo clone only? What about deploying to prod (without clonning repo)?

    That is well addresse by other build tools - protoprimer is to prime those tools.

Ultimately, it is a way to boostrap repo environment with all those requirements in one shot.

Always arg-less. Always one-liner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants