Exploring Altium Designer's Project Releaser
What is the Altium Product Releaser?
The Project Releaser is a single-click automation of manufacturing output generation built on top of Altium Designer® ’s Output Job functionality to render complete release packages to a file folder structure, zip file or Altium Vault®/ Altium NEXUS® managed server.
If you were unable to attend the August 9th live Project Releaser webinar, you can view the video above or the presentation slides at your convenience. If you prefer, you can review the summary below for the session highlights.
Once the Project Releaser is initiated, if Output Job files are not included in the project, the user can elect to have default OutJob files created. Next, the Releaser notifies the user of the need to save any unsaved changed files before proceeding. For VCS or / managed projects, the Releaser also requires committing any uncommitted changes before proceeding.
If any validation checks fail (i.e. ERC, DRC or footprint comparison) , the user will be notified of the failure and the release process will terminate. Any variants in the project are detected, and their outputs are packaged in individually named folders. Once release data generation is complete, the user is provided with a single panel for reviewing all outputs in their respective viewers to provide an extra level of QA before packing the complete release package in its final form. While Altium provides a default structure for project release built on extensive customer research, the Releaser is completely configurable by the user.
By leveraging the portable nature of Output Job files along with Project Templates, a consistent, single-click Project Releaser based process can be rapidly deployed across groups, teams and organizations.
Key Webinar Highlights
I briefly discussed some of the primary release process goals that support first pass manufacturing success and other downstream product development objectives. Then, I provided an overview of Altium ’s Project Releaser, followed by a demonstration, summary and Q&A session (listed below).
Key Release Process Goals
When it’s time to release your project, it’s essential to assure that all required design aspects such as assembly, BOM and related documentation are conveyed accurately, completely and consistently. Some key release process goals include:
- Convey all aspects (including variants) of the design
- Provide consistent data output from validated input
- Make it simple - minimally impact designers
- Support maintainability and post-release engineering
- Be rapidly deployable across teams
The alternative to regularly using a simple, but formal release process is to risk expensive manufacturing re-spins, time-consuming rework or defects that can make it into the field.
Overview of Key Product Releaser Capabilities
- Easy, one-click release package generation
- Detects design variants and packages each in a unique folder
- Automatic validation of design inputs before release generation
- Supports all Altium project types - unmanaged, VCS, /
- Flexible output options - folder structure, ZIP or / managed project
- Rapidly deployable - attributes stored in OutJob and project templates
The Altium Project Releaser is a simple, single-click solution to a very important element of the product development process. It helps designers minimize the tedium that is typically part of the release process, while assuring that releases are consistent, complete and repeatable. The result is additional time for more important design activities leading to greater designer efficiency. The formal process embraced by the Releaser can be rapidly deployed and supports first pass manufacturing success by helping to ensure that incorrect data is not forwarded to processes downstream from design. For information on how to start using the Altium Project Release today, Board Design Release and Working with the Project Releaser documentation at Altium.com is a great starting point.
Questions and Answers
Q: What is the difference between the Project Packager and the Project Releaser?
A: The Project Releaser is a single-click method to generate a release package by orchestrating validation checks, output generators and more. In contrast, the Project Packager copies selected project files into a ZIP file as a means to take a snapshot of the project. While this ZIP file can include outputs that have been generated, the Project Packager is primarily a means to condense desired project files into a single ZIP file.
Q: Can I send a release package generated by the Project Releaser into SVN?
A: Yes, you can release the project to a local folder and commit the project manually.
Q: Is the Project Releaser flexible enough to ZIP Fabrication and Assembly data separately?
A: Project Releaser packs all released data to a folder structure that is organized into fabrication and assembly subfolders. To generate fabrication and assembly zip files separately, currently, it would be necessary to manually ZIP the respective folder.
Q: How is the Project Releaser option saved? is it part of the project file, or a separate file that can be managed and updated separately?
A: The Project Releaser configuration is stored in the project file.
Q: Can revisions be managed in the Project Releaser?
A: Yes, fully streamlined revision managed release capability is included when using / managed projects. With unmanaged projects, you can manage revisions of release packages by packing the release to a local folder and committing to VCS manually.
Q: Can you make the Output Job files you used during the demonstration available?
Q: Where can I get more documentation on using the Project Releaser with and managed projects?
Q: We are already using Output Job files, so is releaser more or less a front end for these files?
A: It is much more than a front end. The Output Job file is a more manual and error prone approach to generating the release content. In order to generate a release package, the user needs to open each Output Job file and click on each output container’s “Generate content” or “Generate and publish” link. If applicable, they need to do the same for each variant.
Project Releaser can generate the data defined by multiple Output Job files. It provides one-click validation of design data input and generation of all outputs into a well organized release package. This is a much more simple and reliable approach.
Q: I tend to have different Output Job files for different board types (number of layers, flex, rigid). Do I need seperate Project Releaser configurations?
A: Not necessarily. However, the Output Job files associated with different layer counts and technologies such as flex will likely be different. The preferred approach in this situation would be to collect your existing Output Job files into project templates for each type of implementation technology you are using. Once these project templates are established, new projects will inherit the release characteristics of the template and you will be good to go.
Q: When the project has variants, how do you give a different part number for each variant using Project Releaser?
A: There are a number of ways to do this and it depends on your requirements. At the file level, one method is to define a part number parameter (i.e. VarPartNum = 272-00-3475) in each variant, and reference this parameter name in the appropriate output containers of the assembly Output Job files. When the Project Release generates the data for a specific variant, the respective VarPartNum parameter text will be inserted into the file name of the generated files.
At the Folder level, you can simply rename the assembly target folder(s) with the part number of the assembly (i.e. ‘ASSY_272-00-3475’) in the first step of the Project Releaser. When the release is packed, you will have a folder with the name you define as the top level folder for all assembly related data for each variant in your design. You can also use both approaches for release.
Q: How do you deal with project by project settings in Output Job files, such as, layers, drawings, Gerber units, etc.?
A: Portable in nature, Output Jobs can be re-used between designs by copying the .OutJob file from one project to the next one, then resetting the data source as required. In some cases it may be necessary to adjust the Gerber layer configuration if the layer stackup is different between projects. For additional information on Output Job data sources, please see the “Adding Outputs to an OutJob” section of this Altium online documentation.
Q: Does Altium Project Releaser require /?
A: No, while releasing to a / managed server provides additional enterprise-level capability, Project Releaser can be used with any Altium PCB project type and can package release data into a local or networked folder structure or ZIP file.
Q: You mentioned that my release process can become part of a project template. How do I create project templates?
A: Project templates are a powerful way to leverage uniform project starting points across your team or organization. Layer stackups, board outlines, project settings, Output Job files, Project Releaser configurations and more can be inherited by a new project upon creation. Check out this whitepaper Enhancing Your Design Efficiency with Project Templates for additional information.