Skip to content

add mostly claude-gen usage example package - #43

Open
swelborn wants to merge 1 commit into
shared-cache-modefrom
add-client-example
Open

add mostly claude-gen usage example package#43
swelborn wants to merge 1 commit into
shared-cache-modefrom
add-client-example

Conversation

@swelborn
swelborn force-pushed the add-client-example branch from 1c2813a to 346bbb8 Compare July 13, 2026 19:32
@swelborn swelborn mentioned this pull request Jul 13, 2026
@frobnitzem

Copy link
Copy Markdown
Collaborator

Why is there a client code added to the API? It belongs in a separate client package. Please submit this PR to https://github.com/lcls-users/lclstream.git

@swelborn

Copy link
Copy Markdown
Contributor Author

Since there is CI involved, I would rather keep this all in the same repo.

Eventually, I think we should migrate all of the fragmented packages we have in this org into a monorepo, it makes CI/CD much more straightforward, and allows us to suck up context for agents in one place rather than requiring people to manage their own workspace. uv allows us to do this very simply with workspaces.

This is a separate python package with a separate pyproject.toml - you can just refer to it differently in your dependencies ("lclstream-api-client @ git+https://github.com/lclstream/lclstream_api.git@add-client-example#subdirectory=client/").

@frobnitzem

Copy link
Copy Markdown
Collaborator

If you want a super-repo, why not create a new one for that purpose and put all 4: lclstream_api, lclstream, lclstreamer, and fastcache into it as git submodules?

@swelborn

swelborn commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

submodules is a strategy for this, but i would argue not the best. it does not cover CI very well, and for each commit in a submodule, you have to make another commit to the submodule repo for every merge done in one of the submodules, another maintenance burden. it can also be quite confusing to work with

i laid some of my arguments out for this in slack:

the main issue I take with a polyrepo setup on a small team is that people start to lose track of what other people are doing, and get siloed into their own repo rather than doing code review. Google uses a monorepo for most of its software, for example, and they are an enormous organization with hundreds of applications/teams.

As long as we all take the time to review each others code, I think that the separation is fine. However we end up losing the ability to share CI/CD, connect data models and libraries together easily, etc. If we add a frontend app or react library in the future, for example, do we put that in another repo? How do we coordinate releases between lclstream_api, lclstreamer, fastcache, fastcache_api, and frontend? At the end of the day this is a single product we are shipping.

This is a pattern I see all over the place at slac, the code sprawl is significant. One reason appears to be that people have been burned by monorepos in the past...

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants