Perforce Blog


 

Perforce Blog
2018-01-16Achieve Faster CI Build Performance With Partitioned Workspaces
Achieve Faster CI Build Performance With Partitioned Workspaces jbartlett@perf January 16, 2018 Continuous Integration As DevOps teams increasingly adopt a continuous integration approach, there is a strong yearning for lightweight build processes. Helix Core provides development teams with myriad techniques to streamline continuous integration: p4 sync -p, dedicated build replicas, partitioned client workspaces, and read-only workspaces. While the latter approach expedites the build process by not fragmenting the respective database table, it doesnt offer the capability to write build artifacts and other files to Perforce Helix. Partitioned client workspaces, on the other hand, enable build services to not only read files, but to also submit changes back to the server. Before delving into the benefits of partitioned client workspaces, lets first examine client workspaces in general. Background Part of the speed and power of a Perforce Helix server comes from the fact that client workspaces do not keep any hidden files on the users machine. Instead, the status of your workspace is stored on the central server in the db.have table. When a client workspace is updated via p4 sync, all the server does is compare the 'have' revisions and the 'head' revisions to determine which files need to be sent to the client. This works extremely well when the client workspaces are reasonably stable and do not get continuously deleted and recreated again. In some build environments, however, this is not the case. Builds get moved from node to node, temporary client workspaces get created and deleted continuously, or even wiped and refreshed. With the move to continuous integration, the number and frequency of builds being performed is going up. On many Perforce Helix servers, the highest load is not generated by the hundreds or thousands of developers and artists, but by the build farms in the background constantly syncing or removing hundreds of thousands of files. This affects the db.have table, which over time gets bloated and fragmented, and this in turn can have an impact on performance and maintenance operations such as checkpoints. Read-only Workspaces In a previous blog post I wrote about read-only workspaces as a great tool for a build master to create client workspaces that do not fragment the central db.have table. The effects of this feature are quite dramatic: Fragmentation of the db.have table is greatly reduced. Write contention to the table virtually disappears[1]. Journal file sizes grow at a much slower rate. The latter point is interesting. When updating read-only workspaces, the changes are not journaled because these workspaces are deemed ephemeral (I love that word), and build processes can typically re-create the workspace easily. We thereby reduce write contention to the journal file. As a nice side-effect, replaying the journal for offline checkpoints becomes faster, and replication (which uses the journal file to keep the local databases up-to-date), is faster as well. Partitioned Client Workspaces Alas, there is one fly in the ointment: read-only workspaces are just that read-only. Sometimes a build process might want to write build artifacts and other files back to Perforce Helix. You can certainly create some clever build logic with two workspaces: one read-only workspace for the sources, and a read-write workspace for the artifacts. Many build systems are not geared up for this kind of trickery and expect a single workspace for reading and writing. In 2016.2 Perforce introduced partitioned workspaces, which use the same logic as read-only workspaces but allow build processes to open files and submit the changes. Perforce Helix keeps track of the working state (e.g. files opened for edit) in the central tables db.working and db.locks. Partitioned workspaces are created the same way as read-only workspaces, but with one major difference: you set the type to partitioned. Most of the arguments for read-only workspaces hold true for partitioned workspaces as well, making this type of workspace a good choice for build services that need to submit changes as well. Caveats There are a few caveats you should be aware of before you start deploying either kind of workspace. Recovery Since either kind of workspace is not journaled, any server crash that requires a full recovery from checkpoint and journal will not restore the read-only or partitioned workspaces. This is in line with the ephemeral nature (that word again) of these objects. It is assumed build machines can always restart the build by recreating a workspace from scratch; this is common practice for many build tools. If syncing to your build workspace takes several hours and you are very careful about preserving the workspaces state, neither read-only nor partitioned workspaces are for you. Effects on Referential Integrity There is a funny side-effect that partitioned workspaces have on servers where paranoid administrators[2] run referential integrity checks using an undocumented tool Perforce has hidden in the Helix server. One of the references this tool checks is the relationship between working and have, but the tool does not go into each partitioned workspace to perform the same check. The end result is that the tool can report false working records with no have records, and if the administrator applies the resulting jnl.fix file without checking, the open file records will be removed again, leaving orphaned db.locks records in their wake. In any case, we always recommend speaking to Perforce Support before applying the jnl.fix file. Failover to an HA server You might have a HA server deployed, that is, a Perforce Helix server configured as a replica of type standby or forwarding-standby. The purpose of this server is to failover quickly at any time and for the users to continue working (almost) uninterrupted. Replicas use the journal file to update their own database, and, as you learned above, neither read-only nor partitioned workspaces get journaled. A failover will therefore interrupt all processes that use either type of workspace; these will need to be updated again after a failover. Alternative: Edge Servers If you find any of the drawbacks of partitioned workspaces unacceptable, you might find that an edge server gives you what you need. This is a separate server created as a replica but with its own have and working (and a few other) tables. Many of our customers use edge servers for the build services as well as for remote operations in high-latency environments. Be aware, though, that edge servers are more complicated to set up than partitioned workspaces and require a separate server instance. Horses for courses, as they say. Conclusion I hope this post gave you some ideas for how to get some reprieve from all those build processes for your busy Perforce Helix server, gaining you faster builds and access for your developers and artists. As usual, reach out to me on Twitter @p4sven if you have any feedback or questions. Happy hacking! Sign Up For Helix Core For Free Sign up for your free 30-day free trial of Helix Core or register for our next live demo. [1] Perforce introduced lockless reads back in 2013.3 (thereby eliminating most read lock contention), but there can still be write contention. [2] Only paranoid administrators are good administrators, right? Off Email sign up Sven Erik Knop Principal Solutions Engineer, Perforce Software Sven Erik is a Principal Solutions Engineer at Perforce Software. He works with sales, professional services, and marketing to promote, architect, and implement the best version management solutions for Perforce customers. When he is not working, he enjoys running, cycling and swimming, playing piano and the bass guitar, and spending time with his family.
2018-01-124 Reasons Why Software Testers Struggle (and How to Fix Them)
4 Reasons Why Software Testers Struggle (and How to Fix Them) mreisenauer January 12, 2018 Test Management If test case management is consuming too much time or if more bugs are crawling out of your products and onto customers than usual, it may be time to examine the working conditions of your testers and find a solution. Here are four common scenarios that put testers (and teams and products) to the test. 1. Mix of Veteran and Novice Testers Your team is growing. Youre delighted. Youre hiring more help, but dont have the budget for a dream team of senior testers. So you currently have a mix of veterans, who are deeply familiar with the process, and novices, who arent. In fact, some may be new to software testing altogether. Ideally, veterans mentor the novices and bring them up to speed as quickly as possible. But if the team is large, or things are moving fast, that critical knowledge transfer might not be happening as it should or at all. This scenario is tough for veteran testers because, whether training or compensating for the new staff, theyre doing double-duty. Its hard on novices who want to help, but cant help but slow the process. Its hard on you and on the product. [RELATED WHITE PAPER: How to Succeed at Test Case Management] 2. High Staff-Turnover Rate Perhaps your team isnt growing its churning. Whether due to the cyclical nature of your product or other reasons, it all reduces to a single challenging question: How can you hold product quality above the bustle of incoming and outgoing staff? Your replacement testers swoosh in through the revolving door and, lacking the visibility or insights into requirements theyve been assigned, deliver their work the best they can under the circumstances before swooshing back out. When they leave, what work theyve done is picked up and resumed by another tester. The knowledge that isnt entirely lost is partially misinterpreted, then wholly misunderstood. In the end, its a challenging scenario for incoming testers who want to do great work. And for you, who still needs to make sure all tests are run and issues reported and addressed. Because your customers are unconcerned with your turnover challenges, they just want their product to work perfectly. 3. Many Outsourced/Offshore Team Members Despite how networked the world is, collaborating over time and space can be challenging.Co-location is just not feasible for every team. Knowledge transfer issues, similar to those detailed in points one and two above, can occur as a result. Outsourced or offshore testers can have difficulty overcoming this gap. Testing (and morale) can suffer as a result. 4. Tools Not Built for Regulated Industry If you work in a heavily regulated industry, you have the added responsibility of documenting compliance and passing audits. You can achieve this, at a basic level, with a pen and paper or spreadsheet software. But not without pain. Getting everyone to update the same spreadsheet, piece of paper, or even a shared whiteboard is a job by itself. Creating a traceability matrix? It takes hours or even days. No tester entered the industry because they enjoyed chasing down and updating spreadsheets. Truer still, you and your team are doing data entry when you could be using that time by conducting more tests! One Way to Fix These Issues? Modern Test Management Tools Whether your testing team is large or small, a modern testing tool can address many of these issues, while improving schedule predictability, increasing product quality, increasing job satisfaction, lowering development costs, and shortening delivery cadences. To find out more about the advantages of test case management tools, such as Helix TCM, read our white paper, How to Succeed (and Fail) at Test Case Management. Or, for a free trial of Helix TCM (as part of the complete Helix ALM solution), click here. On Email sign up
2018-01-04Perforce Engineering Leader to Speak at CodeMash Conference
Perforce Engineering Leader to Speak at CodeMash Conference jbartlett@perf January 4, 2018 Developer Collaboration The annual CodeMash conference is known for spurring thought-provoking conversations among the developer community about current trends and best practices, and this year is no exception. At this years conference, Gunnar Ostergren, Director of Client Engineering at Perforce Software, will be contributing to the conversation when he gives a presentation about the benefits of code hosting platforms. Gunnar has been an entrepreneur and technology leader since well before the internet became a part of our daily lives. Moving from Sweden to Silicon Valley in 1997, he had a front row seat to, and learned a lot from, the boom and bust of the dot-com era. Having worked in many different industries and cultures, he has experience in most alternative approaches to software design, development and operations, and enjoys helping teams find their path through the maze of options available today. A week before the CodeMash conference, Perforce caught up with Gunnar to learn more about his speaking engagement. Perforce: What will you be speaking to conference attendees about? GO: The session is going to be about developer best practices and how code hosting and collaboration fits into developer workflows. These are really important topics for small and large teams. Sometimes developers dont think they need features like version control, continuous integration and code reviews, especially when they are just three guys sitting in a room together working on a project. But when you wake up a year later and there are 15 of you, my experience has been you might regret not making some basic process decisions right from the start. Perforce: Why are you excited to share your knowledge about code hosting solutions to CodeMash attendees? GO: Having worked with a large variety of software projects across Europe and the U.S., I have seen most of the challenges developers run into. I really enjoy helping teams avoid the standard challenge of not thinking ahead enough and running into problems when they scale their teams, or planning too far out and running out of money and/or time. Code hosting tools can solve these central pain points by enabling scale while simultaneously managing complexity. Perforce: Why are code hosting solutions essential for todays developers? GO: The pace of change, remote contributors, and the complexity of modern development stacks and deployment platforms make it hard to collaborate well and manage risk. The tools and processes you choose have a big impact on both the product and the happiness of your team. Perforce: The conference will be held in Sandusky, Ohio far away from Silicon Valley. What does this say about the state of the tech industry? GO: Silicon Valley is still very important, but developers today can participate from anywhere in the world using tools like Helix TeamHub, Slack/Screenhero, Google Docs/Hangouts, among others. The amount of services and products catering to off-collaboration from anywhere with an internet connection is staggering. Thus, you have the ability to choose where you want to live while still having the opportunity to work on interesting things. Many companies start out in the literal middle of nowhere and then get acquired by larger entities without any forced relocation of staff. Some even choose to stay small while still having a big impact within their field of expertise. Perforce: How do code hosting platforms facilitate DevOps principles such as continuous integration and continuous delivery? GO: Code hosting platforms promote visibility, integrations, scalability, and manageability all key to achieving DevOps. Visibility is crucial because you dont have time to track down all details in log files; myriad integrations because your platform and toolchain might be very complex; and scalability because when you run large teams and have large sets of automated tests, they need to finish in a reasonable amount of time. Lastly, manageability includes not only ease of use but also flexibility to adapt to the teams workflow and preferences. Perforce: CodeMash has a strong focus on getting young children interested in coding and the tech industry. How do code hosting platforms accommodate the needs of novice developers? GO: Code hosting platforms include many features that help senior developers educate and train junior programmers. For instance, Helix TeamHub has a Git-powered markdown wiki that is project-based, which is a great resource to share best practices and information with young developers. The UI/UX is also very simple to navigate and includes informational messages during critical stages in development. While new developers will still need to learn a programming language, once they have done that, theyll have no problem understanding how to use Helix TeamHub. Perforce: What are some of the innovations on the horizon for code hosting solutions such as Helix TeamHub? GO: Technologies such as microservices, containers, and serverless computing are hot topic and youll find sessions at CodeMash on these technologies. Many are using code hosting services to build systems that use all three of these technologies, but in the near future, youll see more explicit support for them in Helix TeamHub. Try Helix TeamHub For Free Manage your source code and build artifact repositories in one space for free when you sign up for the cloud version of Helix TeamHub, or register for the next live demo. Off Email sign up
2017-12-28Manage User Permissions to the Rest of Your Toolchain Directly From Helix TeamHub
Manage User Permissions to the Rest of Your Toolchain Directly From Helix TeamHub jbartlett@perf December 28, 2017 Continuous Integration DevOps We just wrapped up a webinar that formally introduced Helix TeamHub, our comprehensive code hosting and collaboration platform. The webinar focused on aspects of the tool that developers find helpful hence the webinars title: Why Developers Love Helix TeamHub. In addition to scaling Git and accommodating multiple repos and repository types, Helix TeamHub offers robust self-service project administration capabilities, which are highly coveted by users. Developers Need Resources and Access Projects are being created more frequently, new teams are forming, and developers commonly need access rights to more than one project with varying roles from one to the next. However, bandwidth to handle such seemingly trivial requests is limited, and so is patience waiting for them to be fulfilled. One day of delay in a project with five or 10 contributors can be quite costly. As a result, self-service administration has become a requirement, not a nice-to-have feature. Prior to code hosting platforms, one had to create a ticket to request a staffer in IT to perform these tasks and everything associated with setting up a new project, which could involve touching multiple systems. Code Hosting Fosters Self-Service Project Administration Thanks to code hosting tools, self-service project administration functionality allows a person with proper credentials to create a project with full administrator privileges. In addition to creating the necessary repositories and the project structure, the administrator can invite others to the project and set permissions based on roles for all of the various tools and systems. And, all of this configuration happens with a few clicks. Helix TeamHub lets developers perform most administrative tasks from a Quick Action menu.Beyond just allowing for the basic administration elements described above, Perforce has created several additional ways to bolster self-service project administration with Helix TeamHub Enterprise, our on-premises code hosting and collaboration solution. With Helix TeamHub, developers switch from using disparate, siloed tools, to a self-service platform that simplifies developer access to other important tools such as Jira or Jenkins. To accomplish this, Helix TeamHub Enterprise has implemented several great features that provide maximum flexibility: SSO with SAML 2.0: Support for SSO with SAML 2.0, which you can use to streamline access from your own tools or from an enterprise access control system. Password Authentication: Controls how users are registered and login to the system. This can either be via built-in password control or via LDAP (Lightweight Directory Access Protocol) integration. Helix TeamHub LDAP Sync: Keeps Helix TeamHub up to date with your corporate directory. Helix TeamHub LDAP Interface: Can actually host an LDAP directory and allow other tools to authenticate and provide user access based on the authority of Helix TeamHub-provided metadata. With LDAP, access to Helix TeamHub is granted or revoked via metadata maintained in enterprise-IT-owned and controlled systems. This lets you take care of common needs like adding and deleting employees. Helix TeamHub Enterprise as Authentication Provider! One of the most unique features of Helix TeamHub Enterprise LDAP capabilities is that you can use Helix TeamHub as an authentication provider. This is a really powerful feature as it reduces the administrative overhead by centralizing the management of other tools in the environment. For example, you can use Helix TeamHub Enterprise to gate access to Jira and Jenkins. Heres an example of a user entry. OpenLDAP may be used as a base configuration if the tool provides pre-configured settings. Helix TeamHub LDAP interface supports read-only access. Self-Service and DevOps In todays highly complex and fast-paced environment, code hosting platforms like Helix TeamHub offer developers highly sought after fine-grained administrator privileges. In addition to fostering autonomous development, project administration features like LDAP configuration grant development teams greater control over their entire toolchain, which is pivotal to achieving DevOps at scale. To learn more about the unique benefits you can achieve with Helix TeamHub Enterprise, watch our Webinar, Why Developers Love Helix TeamHub or register for the upcoming live demo. Off Email sign up Chuck Gehman Technical Marketing Engineer, Perforce Software Chuck is a Technical Marketing Engineer at Perforce. He has worked as a CTO, architect, developer, and product leader in startups and large enterprises. When he has spare time, he enjoys volunteering for technology education initiatives, attending Meetups, and writing.
2017-12-21Use of Analytics Leads to Helix Core Customer Improving Server Performance
Use of Analytics Leads to Helix Core Customer Improving Server Performance jbartlett@perf December 21, 2017 Reporting Version Control Analytics and continuous monitoring are becoming increasingly important strategies for DevOps teams. Monitoring version control system (VCS) server speed and other operational metrics is critically important in large installations, as it allows developers to uncover bottlenecks and performance issues. A use case from one of our larger Helix Core users underscores the importance of monitoring server performance. This team runs a massive server with 40 cores and a terabyte of memory to serve 100s of users and 100s of terabytes of data. The team noticed that users were experiencing slowdowns, even when a humble p4 fstat command was executed. They asked the Perforce professional services team to look into the matter. Fortunately, the DevOps team already had a range of monitoring tools in operation on this server. One of these tools is MY-NETDATA.IO, which provided a good overview of the state of the underlying server hardware and OS. This particular tool provides real-time analytics and has an interactive dashboard. When analyzing for performance issues, it often comes down to identifying bottleneck(s) and addressing them in order. In this case, the bottleneck turned out to be the CPU. This is unusual because Helix Core is not normally CPU-bound. Instead, we expect the server to be IO-bound in some way if it is shifting 100s of gigabytes of data. The customer is running on Linux and we suspected Transparent Huge Pages (THP), a feature the operating system offers to support processes with large memory requirements, to be the problem. A Helix Core server itself typically does not consume large amounts of memory; instead, it relies on the file system to cache as much of the accessed database pages and depot files as possible. Under high load, the server has to process 100s of requests a second, and that led to the operating system busily reclaiming memory, thus locking up the kernel. This was easily demonstrated by looking at the graph below: the blue area represents the system space (kernel) CPU usage, while the yellow area represents user space CPU usage. You can see the dramatic drop in system/kernel usage in this graph from the monitoring tool dashboard. This happened halfway through the time period shown, which was when the team disabled THP. Fortunately, this can be done without having to shut down the server or even Helix Core process(es). With system space usage thus reduced, more processing power is available for the Helix Core server itself, thereby improving throughput and preventing CPU utilization spikes. We are now working with the team to identify and address other potential bottlenecks, but this one quick configuration has already delivered significant performance improvements. Even though this isnt our first time writing about THP support on the blog, this scenario struck us as a compelling reinforcement for the importance of monitoring your server with analytics tools. With this newfound knowledge, we were quickly able to disable the THP feature on Linux to improve the performance of their Helix Core server. For more information on transparent huge page support in Linux, visit the Perforce Knowledge Base. Well be back soon (here and on the Perforce Knowledge Base) with more valuable information on how to improve performance, prevent bottlenecks, and make the best use of your Helix Core servers. Happy hacking! Sign Up For Helix Core For Free Sign up for your free, 30-day trial of Helix Core or register for our next live demo. Off Email sign up Sven Erik Knop Principal Solutions Engineer, Perforce Software Sven Erik is a Principal Solutions Engineer at Perforce Software. He works with sales, professional services, and marketing to promote, architect, and implement the best version management solutions for Perforce customers. When he is not working, he enjoys running, cycling and swimming, playing piano and the bass guitar, and spending time with his family.
2017-12-21Perforce Employees Bring Holiday Spirit to the Community
Perforce Employees Bring Holiday Spirit to the Community jbartlett@perf December 20, 2017 Community One step into the Perforce headquarters office and you quickly see that the holiday spirit is alive and well. Wreaths and decorations adorn the walls. Lights of every color line the cubicles. A lighted tree accents the common area. But Perforce is not just brightening the holidays for their fellow employees the company is also spreading their holiday spirit to those in need within the community. Anonymously Helping Three Local Families As a way to strengthen the community in which Perforce employees live and work, the company collaborated with Sponsor A Family MN, a nonprofit organization that matches families in need with individuals and businesses who anonymously purchase holidays gifts for them. Perforce employees purchased more than 75 gifts for three local families satisfying each familys holiday wish list. JoAnne Austin, who is on the Perforce Good Neighbor Committee, helped coordinate the gift drive and was impressed at the level of engagement by Perforce employees. I was so inspired by the level of participation, said Austin. Not only did employees get every item on the list, people went above and beyond by getting extra presents and even purchased group gifts for the families. Keeping Kids Warm Perforce employees also participated in a winter clothing drive sponsored by the Twin Cities Kids In Need Resource Center. Perforce made a sizable monetary donation in addition to contributing winter clothing items such as hats, gloves, and warm socks. An Obligation Says Perforce CEO Perforce leadership believes that the company should be more than just a leader in developing innovative IT solutions it should also be a positive influence within the community. This notion is reflected in one of the companys core values, which stresses the importance of continuously giving back to the community. Perforce carries out the value of corporate volunteerism through the Good Neighbor Committee, an employee-organized group which plans events that positively impact the community. In my 17-year tenure as CEO, I have always considered it our obligation to give back to the community, both locally and world-wide, said Perforce CEO Janet Dryer. It is our responsibility to help others who arent as fortunate as us. It not only helps you grow as a human being, it certainly makes a lot of people happy. As the company steadily grows their employee base at their corporate headquarters, which opened in 2016, they will continue to expand their corporate giving opportunities. About Sponsor A Family MN Sponsor A Family MN is a non-denominational nonprofit organization that matches families in need with sponsors who anonymously shop for them during the holidays. About Twin Cities Kids In Need Resource Center The Twin Cities Kids In Need Resource Center provides students most in need with free school supplies that make it possible for them to fully participate in classroom learning. Operating as a free store for teachers serving eligible area schools, the organization provides much needed supplies to their students for learning and excelling in the classroom. On Email sign up
2017-12-15December Cloud Update to Helix TeamHub Improves Code Quality
December Cloud Update to Helix TeamHub Improves Code Quality jbartlett@perf December 15, 2017 Developer Collaboration Repository Management The holidays are fast approaching, but we wanted to delight our Helix TeamHub users with another cloud update before we take a breath, enjoy a good meal with our near and dear, and think back on the year. The cloud update to Helix TeamHub consists of a few small enhancements that revolve around code review workflows. After all, this is one of the most essential parts of software development and code collaboration workflow. So, without further ado, lets get down to the details. Reset Code Review Approvals on Changes to Feature Branch There are times when we want an extremely tight grip on code reviews. You may want to trigger a new round of approvals before new changes to the feature branch can be merged. Thanks to the latest cloud update, this is now possible. Resetting code review approvals on changes to feature branchThe latest update to Helix TeamHub now allows you to configure code reviews to automatically reset the approvals when new changes are pushed to the feature branch under review. This extra quality assurance measure reduces the chance of last minute bugs and improves code quality because someone needs to approve the new changes in the feature branch before the merge. There are two different ways to configure this new functionality. The first option is to manually reset the approvals on changes to the feature branch for each respective code review. The second option is to set it as the default for a given repository, which enforces the setting for all reviews created for the respective repository. Enforce Reviewers The December cloud update now allows users to control who can assign reviewers and approve code changes. Enforcing reviewers is set from the repository settings, and when applied, does the following: Only administrators and master roles are able to set reviewers for code reviews. Only the reviewers can give an approval to the code review. Enforce reviewers is set from the repository settings.I have found that the Enforced Reviewers functionality works well when combined with default reviewers that automatically assign certain people as reviewers. When used in combination, you will benefit from greater automation and control over your code review and development workflow. Updated End User Documentation Besides rolling out new features, we also engaged in a comprehensive exercise to update the end user documentation. If there is additional information that you would like in the Helix TeamHub knowledge base, please let us know. Cancel Your Account From the Web UI Everyone loves Helix TeamHub, right? Unfortunately, there are some who after trying it out, find that it doesnt suit their needs. Thus, we have made cancelling your account as easy as possible. The update now includes a way for company administrators to cancel their Helix TeamHub account from the company settings. Cancel your account from the web UISmaller Enhancements and Bug Fixes In terms of smaller enhancements, Helix TeamHub now allows multi-word search terms to be used when linking issues and code reviews in markdown content. Also, a bug where the committer avatar was missing after navigating to a diff view in a certain order was fixed. Try Helix TeamHub for Free If you arent currently using Helix TeamHub, sign up for the free cloud version or register for the next live demo. On Email sign up Ilmari Kontulainen Chief Technology Officer, Perforce Software Ilmari Kontulainen is the Chief Technology Officer for Helix TeamHub. He has more than ten years of experience working in the software industry in both technical and business roles. When he is not working, he enjoys competing in triathlons and other endurance sports.
2017-12-12Whats New in Helix ALM 2017.3
Whats New in Helix ALM 2017.3 dborcherding December 12, 2017 Application Lifecycle Management Test Management New in Helix ALM 2017.3is a feature that will help improve the clarity of your tests, and some nice enhancements to the new REST API. Insert Test Variants in Test Case Fields and Steps For a while now, Helix ALM users have been able to run tests using different configurations. For example, you may need to run the same test on three different operating systems. Instead of writing and maintaining three test cases, you can write just one test case and use test variants to create a test run for each operating system. Its simple to do. Just add an Operating System test variant to your Helix ALM project with the operating systems you test as the values. When you generate test runs, you select the variant values to test. Helix ALM creates a test run for each selected variant value and includes identical information except for the value. Test variants for generating multiple test runs from one test case.In Helix ALM 2017.3, we made it even easier to use test variants to create more flexible test cases. You can now insert variant field codes in test case fields and steps from a menu. Field codes in the resulting test runs are replaced with the variant values selected when you generate test runs. For example, if you have an Operating System variant with a %Z_OSVARIANT% field code and the Windows value is used when generating test runs, the field code is replaced with Windows anywhere it is used in the test run. To add a variant field code in a test case, click the field or step, clickthe Insert Variant Field Code button, and choose the field code to insert. The following example shows a test case that uses an Operating System field code in both the Summary field and steps. Test case that contains variant field codes.When test runs are generated, Windows, macOS, and Linux are selected as the variants for the test. Notice how field code is replaced with the variant value in the resulting test runs.Learn more. Test runs generated for each variant.Add and Edit Issues With the REST API We introduced the REST API in Helix ALM 2017.2. In 2017.3, you can now use the API to add new issues to projects, edit existing issues, and search user fields to return a specific set of issues. Learn more. Were working on adding more functionality in upcoming Helix ALM releases, so we want to hear from you. We need your feedback to help us build a powerful, user-friendly API. ContactPerforce Supportif you have suggestions or questions. Upgrade to Helix ALM 2017.3 Ready to upgrade Helix ALM 2017.3? If you have a current support and maintenance plan,upgrades are free. If youre not already using Helix ALM,try it for free. On Email sign up
2017-11-28Integrating Helix ALM and Slack
Integrating Helix ALM and Slack dborcherding November 28, 2017 Application Lifecycle Management Integration Weve been using Slackat Perforce for some time. Personally, its my preferred form of communication. It lets me control how much noise I hear and, best of all, there is no spam. At this point, I prefer to get all my need-to-know information (web stats, network alerts, buildbot notices, even to-dos) via Slack. While Perforceproducts do not have a direct plugin on the Slack site, you can take advantageof both Slacks and Perforce's email integration to get them talking toeach other. Scenario For this example, lets say Im working on Project InSight and our team wants any new issue entered into Helix ALM to automaticallyshow up in aprivate Slack channel we have for this project. Set Up a Slack Email Integration For instructions on how to set up email integration inSlack,refer to thishelp article: https://get.slack.help/hc/en-us/articles/206819278-Sending-emails-to-Slack. In the following screenshot, you can seewhat my setup looks like. Any email to p8v3d7l4f1o4r0p6@perforce.slack.com will get pushed to theprivateproject-insightchannel. Set Up Helix ALMEmailNotifications First add a new user to your Helix ALM project, set that user to Local, and enterthe email address Slack provided. Next, addthe user toa security group that has access to all issues. In this example, I am adding them to the Business Analysts/Product Managerssecurity group. Now you need to configure anemail automation rule in Helix ALM. Go to Tools>Administration>Automation Rules. Create a rule that sendsan email to the Slack user, using the "Issue Added" email template, each time an issue is added to Helix ALM. That's it! Allnew issues will now automatically appear in theSlack project-insight channel. This is just one simple workflow, but the optionsare endless. One of Helix ALM's greatest strengths is all of itsworkflow options. With this email integration, you can easily postmessages to Slack at almost any point in your workflow. On Email sign up Nico Krger Technical Sales and Professional Services Manager (ALM), Nico Krger is a Technical Sales and Professional Services Manager for Helix ALM. He specializes in technical guidance and product development efficiency for global organizations. An expert in software development, he is dedicated to helping customers drive quality product strategy.
2017-11-21November Update to Helix TeamHub Cloud Improves Code Reviews and Developer Collaboration
November Update to Helix TeamHub Cloud Improves Code Reviews and Developer Collaboration jbartlett@perf November 21, 2017 Developer Collaboration As we approach the season of giving, we are pleased to give Helix TeamHub Cloud users an early present: improved code reviews and developer collaboration. These updates were automatically installed, so you dont have to worry about downloading a new version. (For Helix TeamHub Enterprise users, these changes will be part of the January 2018.1 release). Task Comments Inside Code Reviews When conducting code reviews, sometimes you want to ensure your comments have been addressed before the code is merged. With task comments, you no longer have to wonder whether your team members have implemented the fixes you requested. Simply mark a comment as a task that the author has to address before the changes can be merged. Comments marked as tasks are shown in the Tasks tab. This allows the reviewer to quickly see the tasks that need to be resolved before the changes can be approved. For the author, it shows what is still left to be fixed before the changes go forward. Mark comments as a task to be sure they get answered before the code changes go live.Its also possible to enforce that all of the tasks need to be marked as done before the changes can be merged. This will create another layer of feedback and approval cycle between the code changes being shared within the team and the changes going live in production. You can find open and resolved tasks easily from the Tasks tab.Webhooks for Code Review Events We are continuously working to streamline the integration between Helix TeamHub and the broader software development tool ecosystem. The integration capabilities just got a little broader with the enablement of webhooks for code review events. Similar to how you can add a webhook to push events, its now possible to trigger a webhook for code review events as well. Configure the webhook for code review events from the Hooks section inside a project.While this is a forward-looking feature and there are no ready-made hooks available yet, the possibilities are endless. For instance, by integrating with Slack, a webhook could be triggered every time a comment has been left on a code review. Threaded Comments for Code Reviews and Issues When a discussion contains multiple people and messages, it can be hard to grasp the context. To overcome that problem, Helix TeamHub now offers the functionality to have threaded conversations inside code reviews and issues. Using the threaded conversations is simple - just click the reply button and enter a comment to start the discussion thread. Click the reply button to start a thread from a comment.Combined Company Scope and Dashboard Although the simplicity of the user experience has always been a key differentiator for Helix TeamHub, we have received feedback about the ambiguity of different scopes within the web UI. Before this latest update, Helix TeamHub had three different scopes: Company Dashboard Project To improve ease of use, the company and dashboard scopes are now integrated into one unified dashboard scope. Combining the company and dashboard scopes simplifies the user experience.As a result of this enhancement, there are a few changes. The company statistics and links from the company scope now appear in the new dashboard scope. The following information from the company scope has been removed and will not be visible from the new dashboard scope: latest users and projects/repositories. This information is still available by going to the respective listing and sorting the information based on creation date. Smaller Enhancements and Bug Fixes In addition to the bigger things, we were able to include some smaller changes as well. The aforementioned ability to sort various listings based on their creation date or name is a good way to find what you are looking for. Outdated diff titles show reply counts so its easy to see if there are new comments related to fixed code changes. Additionally, wiki pages now display the latest modification date and the person who did the change. We also made the following bug fixes: File content is now updating when switching between branches. Approval counts are no longer displaying a negative number when more approvals are required. Various views that display commit messages are now escaping HTML tags inside commits. Using the @ character and URLS inside code blocks in Markdown content are now rendered correctly. Try Helix TeamHub for Free If you arent currently using Helix TeamHub Cloud, sign up for the free cloud version or register for the next live demo. Off Email sign up Ilmari Kontulainen Chief Technology Officer, Perforce Software Ilmari Kontulainen is the Chief Technology Officer for Helix TeamHub. He has more than ten years of experience working in the software industry in both technical and business roles. When he is not working, he enjoys competing in triathlons and other endurance sports.