speckle-sharp icon indicating copy to clipboard operation
speckle-sharp copied to clipboard

Feature: Commit Bundle Object

Open haitheredavid opened this issue 3 years ago • 1 comments

Description & motivation

A PR to build off of #1010

The idea of the Bundle object is to replicate the Commit Overlay feature used in the web viewer as a Base type object for designers + devs to utilize within their commits. The bundle object is similar to the Model or Container but instead of grouping all the objects it holds a list of references that point to a stream and a reference object.

A couple of use cases that sparked this idea:

  • Custom tools / apps that are built on top of Speckle rely heavily on the standard Object converter but need to link different model objects together in order to compose a specialized model scenario. This would allow for developers to rely on a standard Speckle object rather than standing up their own kit and converter for grouping together sets of different objects.
  • Designers tend to utilize Branches as a way to separate different focuses of modeling work, but there is a bump in the process when they try to layer in all the necessary commits or objects they need to visualize the model (sometimes I've seen this info written down on slack messages or gh panels 😱 ). The bundle could act as a simple object for designers to rely on when passing around settings for model compositions.

Changes:

  • Bundle object added to Objects
  • BundleItem object added to Core
  • ProgressReport supports collecting bundle data with BundleReferenceArgs
  • This logic would mainly impact the receive calls. I implemented a basic version of this in the ReceiveSyncComponent in GH, which shows that this would be a pretty big change for conversion logic across all connectors.

To-do before merge:

  • [ ] Connectors would need to check the ProgressReport and converters would need to be adapted to support the new object type.
  • [ ] Review if this object should sit in the Objects.Organization namespace

Screenshots:

Bundle In GH

Validation of changes:

Here is a tested prototype, working in C# and the GH connector

Checklist:

  • [x] My pull request follows the guidelines in the Contributing guide?
  • [x] My pull request does not duplicate any other open Pull Requests for the same update/change?
  • [x] My commits are related to the pull request and do not amend unrelated code or documentation.
  • [x] My code follows a similar style to existing code.
  • [x] I have added appropriate tests.
  • [ ] I have updated or added relevant documentation.

haitheredavid avatar Sep 15 '22 03:09 haitheredavid

Hey @haitheredavid, thanks for the PR! We've just returned from our retreat (some people are still traveling actually), but we'll get to this asap :)

In the meantime, if you could please remove any whitespace changes and fix indentation where needed (we use just 2 spaces), it'll make review easier.

Cc @clairekuang as she was involved with the organization classes

teocomi avatar Sep 19 '22 16:09 teocomi

Hey @haitheredavid! Just bumping this up since we never heard back from you ;) Let's find a spot to have a quick video-call about this ;)

AlanRynne avatar Oct 27 '22 12:10 AlanRynne

@teocomi all cleaned up now :) No longer passing commits with Hide white space now

@AlanRynne I'm down to chat! sometime next week?

haitheredavid avatar Oct 28 '22 21:10 haitheredavid

I'm closing this for now @haitheredavid. Hopefully the alternatives using the reference object worked for you!

If the ref object didn't do the trick for you, feel free to continue this discussion on the issue you opened, which will remain open for now ;)

AlanRynne avatar Dec 12 '22 18:12 AlanRynne