We've compiled a handy list of the some of the key terms you should be aware of in the world of Salesforce release management, development, and DevOps.

  • Apex is a programming language designed to let you add and interact with data in Salesforce, and tailored to give organizations more flexibility in their customization of the Salesforce platform. It allows developers to create custom functions and logic in their orgs. This allows them to extend the core functions provided by Salesforce and build their own custom applications to meet the needs of their business.
  • An Application Programming Interface (API) allows two pieces of software to talk to each other and share information. For example, Gearset uses an API to download metadata from Salesforce - the metadata API.
  • Branches provide independent working environments for developers where new features can be built and tested in isolation from other development work. Branches are part of the everyday development process with version control. Branches allow developers to work in parallel, review other’s work, and control when changes are released for testing.
  • A Command Line Interface (CLI) is a text-based tool used to view and manage computer files. To use Ant or Salesforce DX to deploy changes to orgs, you need to use a CLI.
  • Commits are collections of changes which a developer adds to a branch to record their development progress. As a developer works, the version control system automatically tracks changes they make to files. When a portion of the feature is complete, the developer submits a collection of changes, accompanied by an informative description, as a commit to their branch.
  • Merging is the process of integrating changes from one branch to another, including into master. Merging is typically done when a feature is ready for user testing in Salesforce orgs, and usually involves code review by other members of the development team.
  • Metadata. The structure of a Salesforce org is encoded in “The Metadata”. When a user makes changes through the Salesforce Setup menu or adds a new Apex class, they're altering the metadata.
  • Repositories are the containers version control systems use to store files and track changes against them. Repositories also provide a mechanism for teams to share changes, review each other's work, and resolve conflicts. Repositories are based around a central master store of files, with a number of branches containing new features in development.
  • Scratch orgs are short-lived Salesforce orgs that were introduced as part of Salesforce DX. They can be created in a few seconds and are automatically deleted after a short time.
  • Pull requests / merge requests are initiated when a developer wants to merge a branch. They provide a quality and compliance gating process before new changes are integrated into the main code base or released to Salesforce environments. All changes can be easily compared, and code reviewed and commented on by peers. The final approval and merge is completed by someone other than the developer who worked on the changes. The terminology for this process varies from version control provider to version control provider, but the concept is the same.
  • Version control / source control systems provide a mechanism for tracking changes to files. For software projects such as Salesforce, this almost always means representing configuration changes as text files (Apex / XML) and tracking changes to those text files over time. The terms version control and source control are often used interchangeably.
  • XML is the language that Salesforce uses to represent org metadata and custom code.
Did this answer your question?