-
Notifications
You must be signed in to change notification settings - Fork 21
Developer Tips
To add tracing to all requests you should write in browser console:
localStorage.enable_tracing_for_all_requests = "true"It will add X-Want-Trace: 1 header to all requests. Tracing data will be in Traceresponse response header
Instruction if you don't want to merge common release from the main branch, but want to make a hotfix to a current tag.
Possible scenario: you have a big release with many changes in the main branch, but you want to make a new tag and npm package with some little fix.
- Select a tag you want to add hotfix to:
git checkout v6.30.0
- Create new branch from this tag. Name the branch with following pattern:
hotfix/<tag-name>, otherwise release-please workflow won't see your branch
git checkout -b hotfix/v6.30.0
- Cherry pick needed commits from the main branch or create new commits. Name new commits according to conventional commits so they appear in the hotfix changelog
- Create commit with correct release tag in
release-please-config.json. Name release tag with following pattern:<tag-name>-hotfix.<hotfix-number>
{
// Some general settings
"packages": {
".": {
"release-as": "6.30.0-hotfix.1" // The string you need to add
}
}
}
- Push branch to origin. Release PR will be created automatically
- Merge release PR, new tag and npm package version will be created
Workflow: https://github.com/ydb-platform/ydb/blob/main/.github/workflows/embedded_ui_refresh.yaml
- Go to ydb-platform/ydb
- Go to Actions tab and select
Embedded UI Refreshworkflow - Click run workflow button
- Fill ydb branch and UI release tag
- Run workflow, it will create update PR
- Request review from
ui-backendteam - Merge PR when it is approved
Release branches are protected and sometimes you cannot update them with GitHub action.
- Create release in ydb-ui (hotfix or normal release)
- Create ydb fork
- Fetch release branch
- Create some file like
update.shwith script below in ydb root - Write needed version to
TAGvariable in file - Run file with
bash update.sh - Push changes
- Create PR
update.sh file
TAG="v14.1.0-hotfix.1"
ASSET_DIR="monitoring"
START_POINTER="# GENERATED MONITORING RESOURCES START"
END_POINTER="# GENERATED MONITORING RESOURCES END"
WORKING_DIR="./ydb/core/viewer"
# Clone, checkout to needed tag, create new branch
git clone https://github.com/ydb-platform/ydb-embedded-ui.git
cd ydb-embedded-ui/
git checkout $TAG
# Install deps and build
npm ci
npm run build:embedded:archive
# Return to ydb main dir
cd ..
# Prepare files
cp ./ydb-embedded-ui/embedded-ui.zip .
unzip embedded-ui.zip
# Setup dirs, move files
rm -rf $WORKING_DIR/$ASSET_DIR
mkdir $WORKING_DIR/$ASSET_DIR
mv -vf embedded-ui/* $WORKING_DIR/$ASSET_DIR
cd $WORKING_DIR
# List of files in the target directory.
NEW_RESOURCES=$(find $ASSET_DIR -type f | sort)
# Current indentation of the start pointer line.
INDENTATION=$(grep -e "$START_POINTER" ya.make | perl -lane 's/^(\s+)(.*)+$/$1/e; print')
# Replacing resources list between start and end pointers with saving the current indentation.
perl -0777 -pi -e "s/\s+$START_POINTER.*$END_POINTER/
$INDENTATION$START_POINTER
${INDENTATION}RESOURCE(
$(echo "$NEW_RESOURCES" | perl -e "while (<>) {chomp; print \"$INDENTATION \$_ \$_\\n\";}" | sed -E 's/\//\\\//g')
$INDENTATION)
$INDENTATION$END_POINTER/s" ya.make
# Commit files
cd -
git add ./ydb/core/viewer/*
git commit -m "build: refresh Embedded UI $TAG"
# Cleanup
rm -rf ydb-embedded-ui
rm embedded-ui.zip
Process is mostly similar to Manual UI refresh in YDB.
Build EM UI files with command npm run build:em:archive, copy archive to ydb-em directory root.
Run script bellow, checkout to desired branch and commit changes.
ASSET_DIR="ui"
START_POINTER="# GENERATED UI RESOURCES START"
END_POINTER="# GENERATED UI RESOURCES END"
WORKING_DIR="./ydb/ydb/meta/content"
# Prepare files
unzip embedded-ui.zip
# Setup dirs, move files
rm -rf $WORKING_DIR/$ASSET_DIR
mkdir $WORKING_DIR/$ASSET_DIR
mv -vf embedded-ui/* $WORKING_DIR/$ASSET_DIR
cd $WORKING_DIR
# List of files in the target directory.
NEW_RESOURCES=$(find $ASSET_DIR -type f | sort)
# Indentation from the start pointer line
INDENTATION=$(grep -e "$START_POINTER" ya.make | perl -lane 'print $1 if /^(\s+)/')
# Replacing resources list between start and end pointers. Each line: indent path /content/path
perl -0777 -pi -e "s/\s+$START_POINTER.*$END_POINTER/
${INDENTATION}$START_POINTER
$(echo "$NEW_RESOURCES" | perl -e "while (<>) {chomp; print \"${INDENTATION}\$_ /content/\$_\\n\";}" | sed -E 's/\//\\\//g')
${INDENTATION}$END_POINTER/s" ya.make
# Stage files
cd -
git add $WORKING_DIR
# # Cleanup
rm -rf ydb-embedded-ui
If you have running ydb, you can check version in Embedded UI in Settings -> About
To check UI version inside some ydb tag without running ydb, look at the last UI update commit.
- Go to https://github.com/ydb-platform/ydb/tree/main/ydb/core/viewer/monitoring
- Select ydb release branch
- Check UI version in the last update commit, it will be named in format
build: refresh Embedded UI (vN.N.N)