Replies: 1 comment
-
imo i like the polyrepo because:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
the pro/con of this is mostly the same as monorepo vs polyrepo.
Here's some reading I did:
Pros of this:
on: release
in GitHub Actions without re-releasing the entire monorepoCons of this:
I think the killer argument pro-polyrepo is this: it makes it easier to isolate and delegate features to people to do their own way
But counter, the killer argument for monorepo: it's the way the @devcontainers org does it
Some preliminary findings from my experimentation:
its relatively easy to use https://oras.land/docs/commands/oras_push to push a feature. no strings attached. you just push devcontainer-feature.json and install.sh in a tarball. https://containers.dev/implementors/features-distribution/#oci-registry
its easy to publish oci packages from jcbhmr/features-cmake to jcbhmr/features/cmake with NO EXTRA TOKEN NEEDED just
permissions: { packages: write }
its easy enough to just search for
owner:jcbhmr /features\\/.+/ package_type:container
via REST API and get a list of feature packagesits relatively easy to publish a feature index. its just a json file of all the feature manifests in a big list.
I ASSUME that you need to store features under a /features/my-feature naming convention so that the /features index collection can use the "id" property of each of said features in said manifest to implicitly point to it when you use it? i don't think there's a "containerURI" or similar property of devcontainer-feature.json that allows ghcr.io/devcontainers/features to reference a feature ghcr.io/devcontainers/my-unscoped-feature i think it MUST BE ghcr.io/devcontainers/features/my-scoped-feature in order to be reference-able by the devcontainers/features index collection 👈 this is a thing to be AWARE OF
its REALLY nice to have isolated feature repos so you can do your thing in one and test JUST THAT ONE FEATURE without needing complicated github actions tooling to isolate and test that single folder that changed. 👈 this is the biggest win i experienced; having per-repo github actions instead of wrangling "what folders changed?" is wayyyy easier imo
its also nice to see the actual readme of the feature when browsing to that feature's package instead of the monorepo's readme. github packages doesn't seem to support subfolder package readmes
doing things in each their own repo gives you a lot more control over testing methodology. I've adopted this script in my experiments: (below)
you CAN DEFINITELY use features that aren't part of a collection. the collection is only there for metadata for https://containers.dev/features
Beta Was this translation helpful? Give feedback.
All reactions