The requirements to setup, develop, and build this project are listed below.
.NET SDK 7.0 or newer
- https://dotnet.microsoft.com/en-us/download/dotnet/8.0
- See
global.json
file for specific SDK requirements
- Node.js 20.10.0 or newer
- NVM for Windows to manage multiple installed versions of Node.js
- See
engines
in the solutionpackage.json
for specific version requirements
- VS Code
- Visual Studio
- Rider
SQL Express 2022 (v16.0):
- MS SQL Server Management Studio
- Azure Data Studio
- You need access to valid localhost key for XbyK and for K13 (as they are not part of shipped databases).
- Build whole solution.
Project uses Continuous integration (CI) with initial data.
Initialize database with script Init-Project.ps1
in scripts folder. It performs these steps:
- Unzip database backups in /database folder (if not already unzipped)
- Restore DB from backups
- Wait for inserting license keys to both databases.
- Turn off CI
- Applying last supported hotfix to XbK database.
- Turn on CI
- CI Restore for XbK databse.
You can do these steps manually.
PS ...\xperience-by-kentico-ecommerce> cd .\scripts\
PS ...\xperience-by-kentico-ecommerce\scripts> .\Init-Project.ps1
...
...
"Database Kentico13_DancingGoat restored from backup yyyy_mm_dd_Kentico13_DancingGoat.bak"
...
...
"Database XByK_DancingGoat_K13Ecommerce restored from backup yyyy_mm_dd_XByK_DancingGoat_K13Ecommerce.bak"
"Import license key to imported DBs, then press any key to continue..."
Import license key for K13 (via SQL editor), you may need to edit some of values based on your license key. Replace K13_LICENSE_KEY
with valid license key for K13 and K13_EXPIRATION
with date of expiration of your license key in form of mm/dd/yyyy
:
INSERT INTO [dbo].[CMS_LicenseKey] VALUES ('localhost', 'K13_LICENSE_KEY', 'X', 'K13_EXPIRATION', 1);
Import license key for XbK. Replace XBK_LICENSE_KEY
with valid license key for XbK:
UPDATE CMS_SettingsKey SET KeyValue='XBK_LICENSE_KEY' WHERE KeyName='CMSLicenseKey'
In Init-Project
script press any key to continue:
...
...
"CI restore for Enabled=False"
Updating database...
Executing SQL migration scripts...
Executing code migration scripts...
Successfully updated database to x.x.x version.
"Updated DB to latest hotfix"
...
...
"CI restore for Enabled=True"
...
....
Restoring objects...
...
...
Optimizing file repository...
Restore operation successfully finished.
"CI files processed"
PS ...\xperience-by-kentico-ecommerce\scripts>
After git pull
run script Reset-DatabaseConsistency.ps1
. You can also run it for reverting unwanted changes in database (but you have to revert beforehand all .xml file in examples\DancingGoat-K13Ecommerce\App_Data\CIRepository
folder)
It perform these steps:
- Turn off CI
- Applying last supported hotfix to XbK database.
- Turn on CI
- CI Restore for XbK databse.
PS ...\xperience-by-kentico-ecommerce> cd .\scripts\
PS ...\xperience-by-kentico-ecommerce\scripts> .\Reset-DatabaseConsistency.ps1
...
...
"CI restore for Enabled=False"
...
...
Updating database...
Executing SQL migration scripts...
Executing code migration scripts...
Successfully updated database to x.x.x version.
"Updated DB to latest hotfix"
...
...
"CI restore for Enabled=True"
...
...
Restoring objects...
...
...
Optimizing file repository...
Restore operation successfully finished.
"CI files processed"
PS ...\xperience-by-kentico-ecommerce\scripts>
To run the Sample app Admin customization in development mode, add the following to your User Secrets for the application.
"CMSAdminClientModuleSettings": {
"kentico-xperience-integrations-repotemplate": {
"Mode": "Proxy",
"Port": 3009
}
}
-
Create a new branch with one of the following prefixes
feat/
- for new functionalityrefactor/
- for restructuring of existing featuresfix/
- for bugfixes
-
Run
dotnet format
against thesrc/Kentico.Xperience.RepoTemplate
projectuse
dotnet: format
VS Code task. -
Commit changes, with a commit message preferably following the Conventional Commits convention.
-
Once ready, create a PR on GitHub. The PR will need to have all comments resolved and all tests passing before it will be merged.
- The PR should have a helpful description of the scope of changes being contributed.
- Include screenshots or video to reflect UX or UI updates
- Indicate if new settings need to be applied when the changes are merged - locally or in other environments