Skip to main content

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

CI

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, and install commands
  • 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 .wgt package from a Tizen web app directory
  • Re-signs an existing .wgt package with a configured profile
  • Installs a .wgt package on a TV over sdb
  • Builds and reuses a local Docker image with Tizen Studio and the required Tizen packages

Typical workflow:

  1. Configure .env
  2. Build or re-sign a package
  3. 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

  • build copies the app into a temporary directory, runs tizen build-web, and writes the final .wgt to dist/ inside the source directory
  • resign writes the new package to resigned/ next to the source package
  • install mounts the package directory read-only and installs by package name over sdb
  • 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:

  • ruff
  • ty
  • prek
  • pysentry-rs
  • bandit

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 V differs 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

tizen_tool-0.1.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tizen_tool-0.1.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

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

Hashes for tizen_tool-0.1.0.tar.gz
Algorithm Hash digest
SHA256 04e9860ff2685b91b4648bf578b8a0ce148db735f57d50737e64c8509824ea25
MD5 7fb89988c1d6bd11f2fbfaa7330f6fd8
BLAKE2b-256 5cd8b541d612b91ec9a2b840a2724a817003c9df2e62d247670ac5ab1fa95d00

See more details on using hashes here.

Provenance

The following attestation bundles were made for tizen_tool-0.1.0.tar.gz:

Publisher: ci.yml on hu553in/tizen-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tizen_tool-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 caf2059a5547cf8fbc951163a5486f948006bef2b350cee7dd580a88fce826bd
MD5 dcac49bf8759efcaddffa564e37fc0f1
BLAKE2b-256 529023d2256896787c24d661ba181b01971e7eed23f132c5154e810b4da807e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tizen_tool-0.1.0-py3-none-any.whl:

Publisher: ci.yml on hu553in/tizen-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page