Package definition is introduced with FlexDeploy 5.0, where user can define package with list of files which can used during build request or with release definition. Package details can change during development life cycle as necessary. Users can continue to build ad-hoc packages i.e. without any name as before.

Packages are uniquely defined at partial deployment project, hence you can have package with same name in two different projects if necessary. Package list can be accessed from Packages button or green packages tab.

Project Packages tab and Packages button on Project Activity screen are only available when Package Build Type is set to "Packages Only" or "Both".

Execute Project permissions is needed for package create and edit. Users can create or update package from build request form also, hence this approach is taken for package security. Users will configure permission can also edit packages. 

Package list will display all configured packages for project. On page load the filters will be defaulted to show only "Active" packages created 3 months ago or after by the logged in user. In the example below those filters are removed to show all packages. 

Notice the "Latest Version" will provide a link to the latest build version for the given package. On the other hand, the columns between "Latest Version" and "Created On" are dynamic columns representing the latest deployment version to each environment for that given package. Every environment associated to this projects deployment instance(s) will display a column with the environment display name as its column header. These dynamic columns are sorted by the sort order defined in Topology → Environment. Clicking on these links for latest version or deployment version will navigate to the corresponding project workflow execution details.

Partial Deploy Projects of type 'Salesforce' have the following extra data columns for Salesforce DX packages and Unit Testing:

  • Package Path
  • Version Syntax
  • Test Level
  • Tests

Following actions are available for package list screen.

ActionNotes
CreateCreate new package.
Edit / ViewClick on package name to edit or view package details.
DeleteDelete selected package. Executions for the package will not be deleted. If package is configured in Release, delete is not allowed.
BuildSubmit build request for selected package. Package details (files) will be used to initialize build request form.
DeploySubmit deploy request for selected package. Latest version for package will be selected by default. If package is not yet built, deploy button will be disabled.

When user clicks on package name or Create button, package details screen shows up as show below.

Package Type

The package type can be defined as User Managed or Dynamic. User Managed packages refers to a packages where the user manages the content and the sort order. In contrast, for dynamic packages the content and sort order are managed dynamically base on an include path and/or exclude path.  The include/exclude paths are regular expressions matching the project file path to determine which project files should be included or excluded from the package. More than one include or exclude path can be defined by adding that new path on the next line. Note that when new files are populated from Project Files tab all dynamic packages are updated accordingly. This can be a big productivity gain when the contents of the package can be derived according to some rules. By default, new packages are set to User Managed type, as well as for Salesforce DX packages created from the SFDX.json file.

Below is an example of a dynamic package that includes all files from within the "java" folder of the project.

Examples

IncludeExcludeDescription
/java/.*xml
Include all XML files within the java folder
/forms/.*fmb/forms/.*EXT.fmbInclude all fmb files except those whose filenames end with EXT

The following actions are available for edit package screen.

ActionNotes
BuildSubmit build request for selected package. Package details (files) will be used to initialize build request form.
DeploySubmit deploy request for selected package. Latest version for package will be selected by default. If package is not yet built, deploy button will be disabled.
ApplySave changes and stay on package details screen.
SaveSave changes and go back to previous screen.
BackGo back to previous screen without saving any changes.
DeleteDelete selected file from package.
Add File(s)1

User can either type in partial file path and click Add File(s) to add all matching files or click Add File without entering anything in Search Files to Add input, Add File(s) popup will show up where user can search, select and add files.

Added files are appended to existing file list.

Add File(s) from Change Logs1User can add files from Change Logs by searching and clicking a revision. Each revision has a list of changed files which are appended to the existing files list. The list of revisions is populated from the configured SCM and selected stream.
Select - All1Select all files.
Select - None1Select no files.
Select - Invert1Select files that are currently selected and vice versa.
Selected Files - Remove1Remove selected files from package.
Sort All1Sort added files as per sequence definition done on Project Files screen.
File Drag and Drop1Drag and drop one file at a time. Dragged file is inserted before the file when it is dropped.
Top1Move selected file to top of list.
Bottom1Move selected file to bottom on list.

1 - Applicable only for User Managed packages

When user clicks on Add File(s) from Change Logs button, the search and select file revision screen is displayed, as show below.

Packages with a status of "Completed" or "InActive" can not be built or deployed. Once a package becomes "Completed" then it can no longer be edited. Also packages that are a part of an active release can not be set to "Completed" or "InActive".