Skip to content

A tool to help you control performance, energy, fan and comfort settings on TUXEDO laptops.

License

Notifications You must be signed in to change notification settings

kfocus/kfocus-control-center

 
 

Repository files navigation

Kubuntu Focus Control Center

Overview

This is a fork of the TUXEDO Control Center which has been created by the team at TUXEDO Computers GmbH. This repository is the source for patching the upstream, and is not intended for new feature development. Instead we intend to contribute PRs there to minimize feature divergence and to give back to all those who contributed to the TUXEDO Control Center.

PLease see the TUXEDO Control Center Repository for further details.

WorkFlows

Workflow: Prepare Git Branches

# Desired Branches as shown below
# <ticketID>_<date>-release-<description>  <= Mainline feature branch
# <ticketID>_<date>-brand-<description>    <= Brand feature branch
# brand   <= origin/brand      Our branded release branch
# master  <= upstream/master   Upstream master  - do NOT edit
# release <= upstream/release  Upstream release - do NOT edit

# Setup, default branch is 'brand'
git clone [email protected]:kfocus/kfocus-control-center.git
git fetch -a --prune --all

# Add master and release branches from upstream
git checkout -b master
git branch --set-upstream-to=upsteam/master
git pull

git checkout -b release
git branch --set-upstream-to=upsteam/master
git pull

Workflow: Develop New Feature for Upstream

New features are based off the release or master branch. At the time of this writing (2022-04-09), the release branch was ahead of the master branch, and so we use this as the source.

  1. Pull upstream release branch as source of new feature branch.
git fetch -a --prune --all
git checkout release && git pull
git difftool upstream/release # Should show nothing
git checkout -b <ticketID>_<date>-release-<description>
  1. Work on branch (Appendix A)
  2. Update translations (Appendix B)
  3. Create PR with upstream on Github.

Workflow: Rebrand Upstream for Deployment

The 'brand' branch is based off the release branch. The steps below are required to rebrand the product successfully.

  1. Pull upstream release branch as a basis to create a new feature branch.
git fetch -a --prune --all
git checkout release && git pull
git difftool upstream/release # Should show nothing
  1. Create copy of brand branch to merge release into
git fetch -a --prune --all
git checkout brand && git pull
git checkout -b <ticketID>_<date>-brand-<description>

# Merge release changes into this branch
git merge release

# Compare to existing brand to see changes
git difftool origin/brand
  1. Work on branch (Appendix A)
  2. Update translations (Appendix B)
  3. Merge into a test branch before merging into brand
git fetch -a --prune --all
git checkout brand && git pull
git checkout -b test
git merge <brand-update-branch>

# Compare to origin brand to see changes
git difftool origin/brand

# Test function here
  1. If test works, delete test branch and merge into 'brand'
git fetch -a --prune --all
git checkout brand && git pull
git brand -D test
git merge <brand-update-branch>

# Compare to existing brand to see changes
git difftool origin/brand

# Test function here, and then push
git push
  1. Create patch See this link:
# See this file for exact steps employed
bin/make-brand-release-patch

# This will output a file named 
# `brand-<last-8-hash>_release-<last-8-hash>_<YYYY-mm-dd>.patch`
  1. Test apply patch
git fetch -a --prune --all;
git checkout release && git pull;
git checkout -b 
git apply <patch-file-from-above>
  1. Deliver the patch to packaging for deployment

Appendix A: Work on Branch

Useful commands to run development.

npm install
npm run build
bin/deployctl stop
bin/deployctl start
npm run start

Add context menu and inspect for development Set electron to dev mode: set ELECTRON_IS_DEV=1 && electron ...

Appendix B: Create Translation

# Setup
npm run lang-gen # Generates lang.xlf file, below
cd src/ng-app/assets/locale
cp lang.en.xlf lang.tgt.xlf

# Copy over new strings and IDs, add or del new targets as needed
meld lang.xlf lang.tgt.xlf 

# Test
cp lang.tgt.xlf lang.en.xlf
cd ../../..
npm run build
npm run start

# If product does not work as expected, revert
# git checkout src/ng-app/assets/locale/lang.en.xlf

# Repeat with German if needed

About

A tool to help you control performance, energy, fan and comfort settings on TUXEDO laptops.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 60.8%
  • HTML 15.7%
  • CSS 10.7%
  • SCSS 6.9%
  • C++ 3.9%
  • Shell 1.0%
  • Other 1.0%