tizen-tool is a small CLI for building, re-signing, and installing Tizen web packages through a Dockerized Tizen Studio environment
Project description
Tizen tool
tizen-tool is a small CLI for building, re-signing, and installing Tizen web packages
through a Dockerized Tizen Studio environment.
It provides:
- a reproducible Tizen Studio setup inside Docker
build,resign, andinstallcommands- strict configuration loading from CLI arguments and
.env - installer checksum verification
- Docker image reuse keyed by the tool version, required packages, and bundled Docker resources
The project is intentionally small. It is designed to remain predictable, easy to audit, and simple to run from a single working directory.
What it does
- Builds a
.wgtpackage from a Tizen web app directory - Re-signs an existing
.wgtpackage with a configured profile - Installs a
.wgtpackage on a TV oversdb - Builds and reuses a local Docker image with Tizen Studio and the required Tizen packages
Typical workflow:
- Configure
.env - Build or re-sign a package
- Install it on a TV
Requirements
- Python 3.10 or newer
- Docker with Linux image support
- uv
- a valid Tizen signing profile directory containing
profiles.xml
The default local development version is Python 3.14, as defined in
.python-version. CI also runs on Python 3.14.
Installation
Install as a tool
uv tool install tizen-tool
You can also use pipx:
pipx install tizen-tool
Local development
make install_deps
Configuration
The tool reads .env from the current working directory. CLI arguments override .env values.
| Name | Required | Description |
|---|---|---|
TIZEN_VERSION |
Yes | Tizen Studio version used to resolve the installer URL. |
REQUIRED_PACKAGES |
Yes | JSON array of Tizen package IDs installed into the Docker image. |
TIZEN_INSTALLER_SHA256 |
Yes | Expected SHA-256 checksum for the installer binary. |
PROFILES_DIR |
Build / resign | Directory containing profiles.xml. Relative paths are resolved from the current working directory. |
PROFILE |
Build / resign | Signing profile name from profiles.xml. |
TV_IP |
Install | TV address or serial. Accepted forms: host, host:port, IPv4, or [IPv6]:port. |
BUILD_SRC_DIR or SRC_DIR |
Build fallback | Source directory for the app when not passed on the CLI. |
BUILDIGNORE_FILE or BUILD_IGNORE_FILE |
Build fallback | Optional gitignore-style exclude file for the build copy step. |
BUILD_REBUILD, INSTALL_REBUILD, RESIGN_REBUILD, or REBUILD |
No | Forces Docker image rebuilding for the corresponding command. |
INSTALL_PACKAGE_FILE or PACKAGE_FILE |
Install fallback | .wgt package path used when not passed on the CLI. |
RESIGN_PACKAGE_FILE or PACKAGE_FILE |
Resign fallback | .wgt package path used when not passed on the CLI. |
See .env.example for a complete example.
Commands
Build a package:
tizen-tool build /path/to/app
Build with explicit package overrides:
tizen-tool build /path/to/app \
--required-package TV-Samsung_Public_6.0 \
--required-package TV-Samsung_Wearable_6.0
Re-sign a package:
tizen-tool resign /path/to/app.wgt
Install a package on the configured TV:
tizen-tool install /path/to/app.wgt
Override the TV target from the CLI:
tizen-tool install /path/to/app.wgt --tv-ip 192.168.1.100
Force rebuilding the Docker image:
tizen-tool build /path/to/app --rebuild
You can also run the package directly from a checkout:
uv run tizen-tool --help
Outputs and runtime behavior
buildcopies the app into a temporary directory, runstizen build-web, and writes the final.wgttodist/inside the source directoryresignwrites the new package toresigned/next to the source packageinstallmounts the package directory read-only and installs by package name oversdb- temporary files are stored under
.tizen-tool/tmp/in the current working directory - the Docker image is reused unless its identifying labels no longer match the requested configuration
During image build, the installer helper tries both known Tizen installer URL patterns and stops at the first successful match.
Development
Useful commands:
make install_deps
make lint
make check_types
make check
make check_deps_updates
make check_deps_vuln
make build
The development toolchain uses:
rufftyprekpysentry-rsbandit
Run the full local check suite:
make check
Release
Create a release from the main branch with a clean working tree:
make release V=0.1.0
The release target:
- installs dependencies
- runs the local checks
- builds distributions
- updates the version if
Vdiffers from the current project version - commits and pushes the version bump when needed
- creates and pushes the annotated tag
v<V>
GitHub Actions publishes tagged releases to PyPI from
.github/workflows/ci.yml.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tizen_tool-0.1.0.tar.gz.
File metadata
- Download URL: tizen_tool-0.1.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04e9860ff2685b91b4648bf578b8a0ce148db735f57d50737e64c8509824ea25
|
|
| MD5 |
7fb89988c1d6bd11f2fbfaa7330f6fd8
|
|
| BLAKE2b-256 |
5cd8b541d612b91ec9a2b840a2724a817003c9df2e62d247670ac5ab1fa95d00
|
Provenance
The following attestation bundles were made for tizen_tool-0.1.0.tar.gz:
Publisher:
ci.yml on hu553in/tizen-tool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tizen_tool-0.1.0.tar.gz -
Subject digest:
04e9860ff2685b91b4648bf578b8a0ce148db735f57d50737e64c8509824ea25 - Sigstore transparency entry: 1154466525
- Sigstore integration time:
-
Permalink:
hu553in/tizen-tool@bf45650a7070bffc8e4477ffbf0947ebb124518f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hu553in
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@bf45650a7070bffc8e4477ffbf0947ebb124518f -
Trigger Event:
push
-
Statement type:
File details
Details for the file tizen_tool-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tizen_tool-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caf2059a5547cf8fbc951163a5486f948006bef2b350cee7dd580a88fce826bd
|
|
| MD5 |
dcac49bf8759efcaddffa564e37fc0f1
|
|
| BLAKE2b-256 |
529023d2256896787c24d661ba181b01971e7eed23f132c5154e810b4da807e4
|
Provenance
The following attestation bundles were made for tizen_tool-0.1.0-py3-none-any.whl:
Publisher:
ci.yml on hu553in/tizen-tool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tizen_tool-0.1.0-py3-none-any.whl -
Subject digest:
caf2059a5547cf8fbc951163a5486f948006bef2b350cee7dd580a88fce826bd - Sigstore transparency entry: 1154466527
- Sigstore integration time:
-
Permalink:
hu553in/tizen-tool@bf45650a7070bffc8e4477ffbf0947ebb124518f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hu553in
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@bf45650a7070bffc8e4477ffbf0947ebb124518f -
Trigger Event:
push
-
Statement type: