Topic stream scenarios

This topic describes the scenarios of using topics streams.

Basic scenario

This scenario describes how to:

  • Create a topic stream and a pull request.

  • Rehome a work area.

  • Make and review changes.

  • Merge the changes into the parent stream using the pull request.

Scenario steps:

  1. Amy launches the desktop client and opens the stream QLARIUS_MAIN with the work area C:\Work_Main.

  2. Amy opens her request inbox and sees that she has been assigned QLARIUS_CR_1.

  3. To create a new topic stream for the work, Amy right clicks on QLARIUS_CR_1 and selects New Topic Stream. The following fields are prepopulated:

    • Topic stream name: the request type and ID (CR_1).

    • Parent stream: the stream on which the topic stream is based (QLARIUS_MAIN). This is the stream the topic stream will be merged into.

    • Request: the request that will be used to merge the changes (QLARIUS_CR_1).

    • Rehome: reuse the existing work area.

  4. Amy clicks Create.

    • The new topic stream is created and opened in the desktop client.

    • A pull request is automatically created in PulseUno at the Draft state. The pull request has the same title as the request.

      Note: QLARIUS_MAIN has been configured to automatically create pull requests from new topic streams.

    • The request QLARIUS_CR_1 is automatically related to the pull request.

    • The work area is rehomed to the new topic stream so that it can be used for development work.

  5. Amy makes changes to the code in the topic stream and delivers them to the repository.

    • A request is not required to deliver the changes.

    • A new peer review in PulseUno is not created for the topic stream because changes are associated with the pull request.

  6. Amy opens the pull request in the desktop client.

    • In the Conversation tab, Amy can see that changes were delivered to the topic stream.

    • Amy has completed her development work, so she selects another developer, Fred, as reviewer and moves the pull request to the In Review state.

  7. Fred opens the pull request in the desktop client:

    • Fred reviews the changes and votes to approve the pull request.

    • The changes are ready to be merged into QLARIUS_MAIN.

  8. Amy receives a notification that the pull request is approved.

    • Amy opens the pull request in PulseUno. There are no conflicts, so she clicks Merge.

    • The changes are merged into the mainline using request QLARIUS_CR_1.

    • After the merge has completed successfully, the pull request moves automatically to the Completed state.

  9. Amy rehomes the work area back to the mainline stream, QLARIUS_MAIN.

Back to top

Shelving scenario

This scenario describes how to:

  • Shelve local changes into a topic stream.

  • Publish a pull request and start a review.

  • Add comments to a pull request and send it for rework.

  • Resolve conflicts between a topic stream and its parent.

  • Approve and merge a pull request.

Scenario steps:

  1. Sam is assigned the request QLARIUS_ENH_7 to add a new feature to the Qlarius application. He starts development in the work area C:\Work_Main, which is associated with the mainline stream, QLARIUS_MAIN.

  2. Sam launches the web client and opens his default stream QLARIUS_MAIN with the work area set to C:\Work_Main. This work area contains all his local changes. Sam starts to make changes to the code.

  3. Sam thinks that his changes are not ready to deliver to the mainline stream. So he decides to branch them from the local work area into a topic stream using the shelving feature.

  4. Before shelving, Sam uses the Update operation to fetch the latest repository content from the mainline into the work area. This ensures that the new topic stream will contain the most recent sources.

  5. Sam selects the Folders and Items view and on the toolbar clicks Shelve.

  6. In the Shelve wizard, Sam specifies a name for topic stream that is the same as the request related to the work, QLARIUS_ENH7. This makes it easier to identify the purpose of the stream. He also specifies a unique branch name and a description.

    Sam wants to continue working on this enhancement in the current work area after shelving, so he selects the Rehome option. The work area will be associated the new topic stream after shelving.

    In the Shelve wizard, Sam verifies that all parameters are set as expected, validates the file changes to be shelved, and specifies a comment for the uploaded changes.

    Note: Shelving, or delivering to a topic stream, does not require a request. Request QLARIUS_ENH_7 will be used when merging changes into the mainline.

  7. After the local changes are shelved, Sam switches the web client to the new topic stream, QLARIUS_ENH7. The work area, C:\Work_Main, is rehomed to the new topic stream that he just created.

    Note: QLARIUS_MAIN has been configured to automatically create pull requests from topic streams.

  8. Sam completes the enhancements to the topic stream and delivers the changes to the repository. To start the peer review process, he performs the following operations in the web client:

    • In the My Current Stream tab, selects Pull Request in the side panel. The pull request opens in the main window.

    • In the Requests section, relates QLARIUS_ENH_7 to the pull request. This is the request that will be used for the merge.

    • Adds Arlene as a reviewer.

    • Clicks Publish. The pull request is assigned to Arlene for code review.

  9. Arlene receives an email notification that there is a new pull request in her inbox ready for review. She clicks the link in the notification, which opens the pull request in PulseUno. The request contains a list of all the changes that Sam made in the topic stream QLARIUS_ENH7. Arlene reviews the code, adds comments to the pull request suggesting changes, and votes Request Changes to send it for rework.

  10. Sam receives a notification that the pull request has been sent for rework. He implements the changes proposed by Arlene. He also notices a warning in the pull request that it cannot be automatically merged because of conflicting changes in the mainline stream introduced by a different team member.

    To resolve the conflicts, Sam performs the following operations:

    • Merges the mainline stream QLARIUS_MAIN into the work area, C:\Work_Main, and resolves all the conflicts.

    • Delivers the changes in the topic stream QLARIUS_ENH_7 to the repository, including the changes requested by Arlene.

    • Publishes the pull request again for Arlene to review.

  11. Arlene is satisfied with the latest changes and votes to approve the pull request.

  12. Sam opens the pull request and clicks Merge Pull Request, which automatically merges all the topic stream changes into the mainline.

  13. Sam can now rehome the work area C:\QLARIUS and continue development on mainline changes, or branch another topic stream and work on a different task.

Back to top

See also: