lostintangent / spaces

Discover, share, and connect with developers across your favorite teams, classrooms and communities
https://aka.ms/vsls-spaces
MIT License
34 stars 3 forks source link

[broadcasts]: implement "Branch Broadcasts" #112

Closed legomushroom closed 4 years ago

legomushroom commented 4 years ago

The PR:

  1. Implements the "Branch Broadcasts" feature.
  2. Refactors the reducer into multiple smaller ones.
  3. Adds the logger for extension tracing.

Branch Broadcasts

The Branch Broadcasts is the mechanic that can tap into existing user workflow, providing the easy way to automatically share the feature branch they are working on, to a Space. After registering a branch for broadcast, every time a user switches to the branch the LiveShare will broadcast the branch to their space. Likewise, when the branch is no longer active, the Live Share stops broadcasting the branch.

branch broadcasts

That is the first step in implementing the full feature, further planned:

  1. Explore the session badge that shows if the session is active. In case if we create a persistent Live Share session by default, such badge can be added to a PR, indicating when the author is working on the related feature branch.
  2. Explore the scheduled sessions for the broadcasts. That should make it easier for collaborators to plan if they will join the upcoming session.
  3. Improve UI. Currently, we rely on VSCode UI to implement the Branch Registration form. Having richer UI should benefit user experience by having a better input field for branch description, Github issue, tags? e.g.
  4. Improve broadcast notifications in a Space when a broadcast is started (ideally with emails).
  5. After session reports:
    • give users feedback about the session
    • give the ability to post updates on the progress of the feature branch (possibly with git snapshots of the session)
    • give the ability to appreciate collaborator's help
    • opportunity to plan the next sessions

Appreciate your feedback 🙃

arjunattam commented 4 years ago

this is very cool. I think I need to review once more to be able to grok through the whole pr. right now I'm wondering if we can make this feature easier to get started/discover. using git info to start broadcasts is compelling - it makes sessions integrated to a natural workflow, which is great. however, the link of a branch to a broadcast is not very natural, and this might just be me. maybe its more natural if we think of the "code review" session type? would love to get your ideas as I'm thinking this through.

legomushroom commented 4 years ago

@arjun27 the mechanic I want to try out is to provide the means for the user to create a LS session trigger for the future that requires a habit otherwise. Hence every time they start working on some feature, their workspace is automatically shared, creating a "join" trigger for others (given we have a good notification system, session planning and the ability to follow other users).

The idea in general is:

Overall I want to try out this flow when you develop "in the spotlight" where you constantly post updates about your work and give others the opportunity to participate.