Top
Top
LibraryEASYProcess Installation/UpgradeSCM
How SCM Works
SCM Setup

How SCM Works

SCM is a system that can be set up configuring the EASYProcess environments you wish to be a part of the promotion path. Each environment must be open during set up and changes will be made to each in order to link them together. SCM is entirely maintained by the configuration variables and records saved to specific SCM tables in the database.

Configuration Variables

The configuration variables define the relationship between environments and point to the servers they are on and the ports to connect to them. This is also used when promoting. The entities are auto-built in the next environment. This needs the IPs and ports to target the next environments for building.

Application

Once linked via configuration variables in each environment, SCM is managed within EASYProcess Enterprise Manager (EEM). SCM is not its own application and can only be viewed through EEM. This EEM Application is responsible for maintaining each installation of EASYProcess on the server and it can also allow you to manage its relationship with other EASYProcess environments through SCM. From here you can promote sources/projects, reassign to the available developers, or undo the checkout to return to the version from PD in every environment.

Database Records

Each time a project or source is promoted, it is recorded in that environments database. This allows each environment to keep track of the sources currently existing in it. With PD at the end of the promotion path, PD’s records are more complete since it must know where all sources.

Below are the tables used:

EP_SCM_Projects: Stores projects

EP_SCM_Project_Entities: Stores the sources within the projects

EP_SCM_Revisions: Stores past revisions information (project, application version, created on/updated on dates

EP_SCM_Revision_Sources: Stores the sources within each revision

EntityCMSStatus: Stores the status of sources. The records from this table in PD is used to display the records in EEM and has much of the information displayed: EntityId (ProcessId/Webpage/WebpartId), Checked out by, Checked out on, Project. This also stores where in the promotion path the source exists in columns like CurrentLocation, LastLocation, NextLocation.

CMSDevelopers: Stores the available developers to work on projects


SCM Setup

Note: This is only for EASYProcess 4.8.4165.0 and Up.

Quick Note for upgrade:

If you already have SCM (Formerly CM, CMS) setup, make sure you quickly go through following point for quick setup:

  • In each application, create a new ‘Default’ instance under version and assign a value for Major version, Minor Version and Build. If this is new application, use Major =1, Minor =1, Build =1. If EASYCommerce using Major = 4, Minor =8, Build = 10.
  • In PD application, go to EntityManagement/EntityNextNumber then find ‘EP_SCM_Revison’ and set NextNumber = 1.

Environments Needed for SCM

To set up SCM, you need following environments ready:

  • Repository: This is normally the same as production environment. However, you can set up a separate environment as the repository environment. This will be discussed later in this document.
  • Development (DV): This is your development environment where sources will be copied from Repository.
  • Quality Assurance (QA): This is normally for the users to perform their UAT.

Configuration Variable Changes

In order to set up SCM, Configuration variables need to be defined in all environments of SCM. These Configuration variables will be defined in your Application and not in its associated Base.

In this example, EASYCommerce is the name of the application, so this is the one we want to open. Each application has a corresponding Base application as well, but this should not be opened or edited. The EASYCommerce application is where you would develop to make changes. Base allows you do that and use EASYProcess.

Configuration: SCMApplication

Once you have all three environments ready:

  • Go to DV and create a new instance “Repository” inside configuration SCMApplication. Inside that configuration, instance setup variables as below:
  • ConnectionString: Copy connection string for repository application Configuration/Database/AppData.
  • DbType : MSSQL.
  • Go to QA, and repeat as in DV above.
  • Go to Repository (PD) and repeat as in DV above.
  • You must use name ‘Repository’ as it is.

Set up additional SCMApplication Instances in Repository/PD application:

  • Create a new configuration instance SCMApplication/DV in repository/PD application and copy connection string and db type from DV environment.
  • Create a new configuration instance SCMApplication/QA in repository/PD application and copy connection string and db type from QA environment.
  • You must use name ‘DV’ as it is. QA and other environments can be named differently.

Configuration: SCM

This should only be done in the repository environment. Go to the repository environment, then create a new instance under SCM named Default and set up the following variables:

  • EnforceSourceControl :True (If this is turned off, the entire SCM system will be disabled)
  • AllowDeveloperCheckIn: True
  • AllowDevelopment: False
  • EnforceProjectSelection: False (Set it True if client requires it)
  • EnforceSourcePromoterList: False (Set it True if client requires it)
  • There is a promoter list in the database. If set to True, can only promote if in list
  • EnforePromoteListForRepositoryOnly: False (Set it True if client requires it)
  • SourcePath: DV/QA/Repository. DV and Repository must be named as it is. QA and other middle path can be named differently.
  • SourcePathLegacy: Env_DV/Env_QA/Env_PD(Example: eCommerce_DV/eCommerce_QA/eCommerce_PD This is only needed to convert record from old CMS to new SCM. Environment names should be the exact environment names you have and in the same order as in SourcePath)

Configuration: Version

EASYProcess now supports versioning of an application. Major version, Minor Version and Builds must be entered in Version/Default configuration of each (DV,QA,PD) applications.  

If this is an existing application install, such as EASYCommerce, these values will be there already.

You should increase it as you seem necessary as your application evolves. Revision should not be increased manually, as it is explained below.

Whenever you do a promote to PD, Major/Minor version, Build and Revision will be automatically copied from PD to QA and DV so that they are at same version.  

Revisions

If this is an existing application install, such as EASYCommerce, this value will be there already.

Revision will use the next number from entity ‘EP_SCM_Revision.’ For new applications, you should set up a startup number for revision in EntityNextNumber table ( Type = EP_SCM_Revision, NextNumber =1). It is recommended that you start your revision from 1. If you do not setup this record manually, revision will start from ‘10000100.’

Whenever you commit a source to PD, you will be assigned a new revision number against that promotion, which will snapshot all the sources that were promoted as part of that project.

From the revision screen, you can then get the source for that revision, compare changes, etc. This is helpful in undoing a change or going back to old revision for a source.

Projects

With SCM projects, you can put multiple sources inside a project. You are always working in a project. More than one person can work inside a project. When you do a checkout or create a new source, you will be asked to choose an existing project or create a new project. When you do a promotion, every source as part of the project will be promoted together. When you commit a source to PD, a new revision number will be created for every source in that project.

Converting 4.8.1 and older EntityCMSStatus records

Table EntityCMSStatus stores entity SCM status. It needs to be upgraded to support new SCM architecture. Make sure you have setup SourcePathLegacy in previous step. Then go to Tools/UpgradePrograms/Upgrade Patches : UpgradeCMEntities. and click Apply. It should convert all EntityCMSStatus records and prompt you with the number of records updated.

Setting up Repository separate from PD

With 4.8.2, you can have an environment separate from PD. In a more secure setting, you can use this to make sure a developer has no access to PD environment. They will checkout their source from Repository environment, and admins will be responsible for promoting it to PD.

  • New source path will be: DV/QA/PD/Repository
  • You will need to add a new instance PD in SCMApplication configuration on repository application and setup connection string and db type based on PD.

Setting up TR

Some customers require another environment between QA and PD(repository) as TR (Training environment). To set up TR in SCM:

  • New source path will be: DV/QA/TR/Repository
  • You will need to add a new instance TR in SCMApplication configuration on repository application and setup connection string and db type based on TR environment.


Powered by EASYProcess (© 2019 K-Rise Systems, Inc).