As an AccuRev user, you’ve gained an appreciation for the unique insight that the AccuRev StreamBrowser provides to visualize your software development. And the power and flexibility provided by AccuRev’s stream-based architecture has allowed you to capture your many software configurations, to manage your software development process as it has evolved, and to represent the organization of your development teams. But AccuRev’s ability to support concurrent development lines for production, product maintenance and prototyping, along with its ability to create any number of streams, can result in a steam hierarchy that can grow to tens, hundreds, or even thousands of streams. While this is great for managing the complexity of your software development, understanding the meaning and purpose of all these streams can be difficult, particularly for occasional users. To address this, AccuRev 5.6 introduces Stream Properties, which allow you to capture and view specific characteristics about your streams right from the StreamBrowser.
What are Stream Properties and how can you best leverage them?
A Stream Property is a name/value pair that you can use to describe any attribute or important characteristic about your streams. A Stream Property’s value can be either a textual description or a file attachment and streams can have as many stream properties as you need. In the StreamBrowser, a properties icon is shown underneath those streams where stream properties have been defined.
What are some of the reasons why you might use Stream Properties?
Let’s look at a couple of examples.
In this first example, testers need to see the status and results of Continuous Integration (CI) builds that are kicked off automatically whenever code is promoted into integration. This information could be created automatically by your build tool and stored as Stream Properties for your “CI_Build” streams. Testers can view this information to see things such as where and when the build was performed, the results of the build, and how to find the build log.
Another example might be that you have certain streams that developers leverage for ongoing development. The developers need to know the status or maturity of the code in that stream to determine whether it is stable enough to suit their purposes. This can be easily accomplished with a property like “Status” that holds values like “Unit Tested,” “Approved by QA,” “Lab Integration Complete,” “Failed Lab Integration,” and “Approved for Release.” It could also be important for them to know things like when the last testing was performed and who performed it.
Stream Properties could also be used as a learning tool, by holding references to process documentation and other information pertinent to the stream and its purpose in the software development lifecycle. By leveraging Stream Properties, the StreamBrowser provides access to all the relevant information users need to understand and use the stream hierarchy. In this example, a new release engineer needs to understand the deployment process. By referencing the stream properties of the production stream, the release engineer knows who owns the stream, what the stream is used for, whether this code is viewable by the customer, and has a reference to the project’s detailed deployment process. This approach can be quite helpful to people new to the project that need to understand how the stream hierarchy is architected and utilized in the software development process and how to find associated documentation.
With the freedom to create as many attributes and file references as you need, the list of possibilities for applying Stream Properties is endless. Hopefully you’ll find this feature useful in helping make your stream hierarchy more understandable and informative.
To get started creating Stream Properties, simply right-click the stream and select “Properties…” or highlight the stream and then use the pull-down menu Action->Properties. Clicking this icon or right-clicking the stream and selecting “Properties…” will bring up the current list of Stream Properties. You then have the option to create new properties, and edit or delete existing properties.