Closed doriable closed 1 month ago
After discussions, we will not be pursuing this -- this should be achievable by pushing a specific directory input. If there are shared module roots that make this difficult, the goal is to migrate the workspace configuration such that this is no longer an issue.
Feature
Currently, when calling
buf push
on av2
workspace, the intention is to push the entire workspace at once. For example, if a user has the following tree:And the
buf.yaml
is configured as:And
bar.proto
importsfoo.proto
(so the modulebar
has a dependency on the modulefoo
).When we call
buf push
, we push everything, and changes tofoo
will result in a change tobar
, which is expected due to the dependency.However, there is no way to push a smaller subset of workspaces. The user can call
buf push bar
, and this would targetbar
, and also result in a new commit tobar
if there are any changes tofoo
, while ignoring changes tobaz
, however this behaviour is implicit based on the input path.If the user has many overlapping workspace roots (e.g. they rely on
includes
andexcludes
for their workspace modules), it can be difficult to invoke a push on a subset of their workspace.Ideally, there is some mechanism that allows them to define which modules they want to push, e.g. something like:
Where the dependency on
foo
will be accounted for (sobuf.build/<user>/foo
will be pushed if there is a change), but explicitly excludes other non-dependency modules.