|TorizonCore Builder 3.4.0 minor release|
| TCB-247||New Feature||As a user, I want to learn how to set the name and version when pushing OSTree commits to Torizon OTA||Low|
Description: TorizonCore Builder is capable of setting OSTree name and version when pushing commits to the Torizon Platform Services.
This task documents how you can use this feature.
| TCB-51||New Feature||As a user, I want to be aware about and free to use my own canonical Docker Compose files||Low|
Description: For the offline-updates MVP - and also as a best practice - a canonical Docker Compose file is required. It is a Docker Compose file that does not have comments or blank lines, and instead of tags, it uses SHA hashes for the versions of all containers. The purpose is to ensure the version of all packages for your application will be ensured, or in other words, locked.
Due to this, we are introducing the concept of a docker-compose.lock.yaml file, that is the canonical version of a regular docker-compose.yaml file.
In this task, we have introduced this feature along with documentation explaining how to use it, and why it is important.
|TorizonCore Builder 3.3.0 minor release|
| TCB-53||New Feature||As a developer, I want all of the OSTree targets that are part of a takeout image to be in a single OSTree local repo||Low|
Description: As preparation for the secure offline updates MVP, we want to structure TorizonCore Builder in a way that a single USB stick/SD Card can hold OSTree updates for multiple targets (for example, different SoMs). Instead of keeping one OSTree repo for each target in the removable media, we set a single OSTree repo for all targets.
|TorizonCore Builder 3.2.0 minor release|
| TCB-132||New Feature||As a user, I want to be able to customize the non-initramfs splash screen||Low|
Description: TorizonCore has two splash screens: one that shows when booting, and another that shows on reboot or shutdown.
It was reported that the reboot/shutdown splash was not being updated by TorizonCore Builder. This ticket address it and makes sure that both splash screens are updated.
| TCB-236||Fixed||TorizonCore Builder: --storage-directory argument does not seem to work well||Low|
Description: Make it possible to set the storage directory in the setup script, and change the --storage-directory parameter to be hidden (it will be deprecated later).
| TCB-144||New Feature||As a user, I want to be able to change the SSH port used by TorizonCore Builder for device connection||Low|
Description: Create a --remote-port parameter to make it possible to set the SSH port TorizonCore Builder will use to connect to devices running TorizonCore.
| TCB-200||Fixed||TorizonCore builder does not update tezi image metadata on a deploy command||Low|
Description: When running the `deploy` command, an image compatible with Toradex Easy Installer is created. Some metadata contained in image.json, such as the image size, are not updated by TorizonCore builder, and it uses the same values as the input image.
| TCB-133||New Feature||As a user, I want to locally provision an Easy Installer image via an HTTP server, so I don't have to use a USB stick||Low|
Description: In TorizonCore Builder, the deploy and combine commands are responsible to generate Easy Installer images.
To be able to install them using the LAN in an easy way, we have introduced the `images serve` command, that brings up a local Easy Installer image server.
|TorizonCore Builder 3.1.2 patch release|
| TCB-221||Fixed||TorizonCore Builder is failing to push docker-compose files to Torizon OTA||Low|
Description: After recent changes in the backend, TorizonCore Builder is failing when we try to push docker-compose files to OTA.
|TorizonCore Builder 3.1.1 patch release|
| TCB-222||Fixed||TorizonCore Builder does not apply the Splash Screen on an image when an external kernel module build is also included||Low|
Description: When building a Custom Image of TorizonCore with external kernel modules and a splash screen, the splash screen does not show on the device display. When the external kernel module is not included the splash screen shows on the display.
| TCB-217||Fixed||TorizonCore Builder: Isolate fails when using --changes-directory with symlinks||Low|
Description: There is an issue when using the isolate command when there are symlinks to be isolated and using the --changes-directory argument.
| TCB-86||New Feature||As a user, I want to be able to use TorizonCore Builder to generate takeout images for offline updates||Low|
Description: The command `images takeout` is introduced to the TorizonCore 3.x series, as part of the preparation for the secure offline updates MVP. The command is still unstable, features and syntax may change without further notice in the near future.
| TCB-75||New Feature||As a developer, I want a license and open-source related files in the project's source code||Low|
Description: TorizonCore Builder has been open sourced and is available on https://github.com/toradex/torizoncore-builder.
As part of the process, we have added a license file and related files.
| TCB-61||New Feature||Improve the error message requiring an unpack image in TorizonCore Builder||Low|
Description: Improve the error messages on TorizonCore Builder when "unpack" hasn't been run yet.
|TorizonCore Builder 3.1.0 minor release|
| TCB-166||New Feature||As a user, I want to automatically complete commands and parameters in TorizonCore Builder||Low|
Description: Command-line developers are used to pressing `Tab` to autocomplete commands. We are introducing such a feature for TorizonCore Builder as well.
| TCB-227||Fixed||TorizonCore Builder: "splash" directory in storage is not cleared by images command||Low|
Description: The `images` command has an option to clear the storage directories. It does not clear the /splash directory, though. This ticket aims to fix it.
| TCB-176||New Feature||As a developer, I want to check OSTree repository integrity before pushing a new TorizonCore image to Torizon OTA||Low|
Description: Change garage-push to check OSTree object's integrity before pushing to TreeHub.
| TCB-67||New Feature||As a user, I want to be able to isolate/union files containing especial characters||Low|
Description: TorizonCore Builder should be able to handle (isolate, union) files with special characters (e.g. "hello'world.txt).
| TCB-117||New Feature||As a user, I want files created by torizoncore-builder to belong to user and not to root||Low|
Description: TorizonCore Builder runs inside a container, and by default it creates files owned by root. This is a bit annoying since we sometimes want to edit or erase some files with our user in the development PC. We investigate and implement a way to make files belong to the user and not root.
| TCB-162||New Feature||As a user, I want to use TorizonCore Builder to push container updates to TorizonCore OTA, so I don't need the web frontend and can use offline keys||Low|
Description: Add feature in TorizonCore Builder to push container updates (docker-compose files) to TorizonCore OTA.
| TCB-160||New Feature||Improve TorizonCore Builder device connection parameters||Low|
Description: For the commands that require device connection, make --remote-username and --remote-password parameters optional.
|TorizonCore Builder 3.0.0 major release|
| TCB-59||New Feature||As a developer, I want to show a message in the TorizonCore Builder set up script to warn users about files in the working directory||Low|
Description: TorizonCore Builder can only see files inside the working directory, but users often change directories outside of their working directory or reference file paths outside of it. To improve that, let's add a message in the setup script
| TCB-215||Fixed||Torizoncore builder union command fails with enabled systemd services.||Low|
Description: Torizoncore builder union command fails with enabled systemd services.
Workaround: Disable the systemd service before running the "isolate" command. This will require you to manually enable it after deployment.
| TCB-77||New Feature||Improvements in the TorizonCore Builder CLI||Low|
Description: Several improvements in the command line interface in TorizonCore Builder:
- Move --bundle-directory parameter from the top-level torizoncore-builder command to the "batch", "bundle" and "combine" subcommand.
- Remove --image-directory and --output-directory from the combine command (make them positional arguments).
- Check if the given image input directory for the "combine" command contains a valid Easy Installer image.
| TCB-223||Fixed||TorizonCore Builder's union command doesn't work with symlinks||Low|
Description: If you have a symlink in the changes directory that points to a file using the full path, TorizonCore Builder’s union command fails.
| TCB-141||New Feature||As a developer, I want to review and refactor TorizonCore Builder bundle's command||Low|
Description: Bug fixes and improvements to the bundle command:
- Solve race-condition when starting Docker-in-Docker instance that caused torizoncore-builder to fail with connection errors sometimes;
- Run container responsible for tarball generation in detached mode to avoid another race condition where torizoncore-builder failed during tarball compression;
- Allow the use of a Docker volume as a working directory (this should be more portable and work with WSL);
- Make the certificates directory temporary to avoid polluting the working directory with a certs/ directory;
- Show progress similarly as done by docker pull;
- Change command-line interface to make it more consistent with the other commands.
| TCB-238||Fixed||TorizonCore Builder: "bundle" fails with insecure http registry||Low|
Description: The bundle command doesn't work when trying to fetch images from their insecure local HTTP registry.
| TCB-163||New Feature||Improve the user interface of the TorizonCore Builder union command||Low|
Description: The interface of the union command was simplified to make it easier to
- the --extra-changes-directory switch was removed and its functionality moved to --changes-directory;
- the switch --union-branch no longer exists either - the branch name is now a positional parameter;
|TorizonCore Builder 2.6.1 patch release|
| TCB-138||New Feature||As a user, I want TorizonCore Builder to return an error if I try to compile a device tree using an overlay||Low|
Description: TorizonCore Builder should return an error if users try to apply a device tree using a device tree overlay.
|TorizonCore Builder 2.6.0 minor release|
| TCB-212||Fixed||torizoncore-builder leaves temporary files in the working directory||Low|
Description: When uncompressing a local image, TorizonCore Builder leaves behind the uncompressed directory, even though it isn't used anymore. In this ticket we clean up the uncompressed directory.
| TCB-90||New Feature||As a user, I want TorizonCore Builder to customize the TEZI image metadata even when not bundling containers in it||Low|
Description: TorizonCore Builder should be able to customize a Toradex Easy Installer Image (by setting its name, description, license file, and release notes) even when not trying to bundle container images in it.
| TCB-71||New Feature||As a user, I want to set permissions on files, so I can keep credentials when committing changes to OSTree||Low|
Description: TorizonCore Builder should be able to save and restore credentials when isolating files from the device and union-ing files to another TorizonCore image.
| TCB-165||New Feature||As a user, I want to store image customizations in a configuration file, so I can better manage the changes and incrementally rebuild the image||Low|
Description: Introduce TorizonCore Builder "build" command to build a customized image based on a configuration file.
|TorizonCore Builder 2.5.4 patch release|
| TCB-225||Fixed||Bundle command in TorizonCore Builder sometimes creates an incorrect tar file||Low|
Description: There's an issue with the bundle sub-command where the the tar file output that gets created is inconsistent. The proper expected name that should be created is docker-storage.tar.xz, yet sometimes a docker-storage.tar is created instead.
|TorizonCore Builder 2.5.3 patch release|
| TCB-240||Fixed||TorizonCore Builder union fails if changes directory is in a sub-directory||Low|
Description: The `union` command applies changes to an image. It currently only works if the changes are kept in a directory directly under the TorizonCore Builder directory. Sub-directories such as "samples/changes" does not work.
| TCB-226||Fixed||Isolate command doesn't capture the mandatory password change for the torizon user||Low|
Description: Upon the first login, it is mandatory to change the password. This modification is not captured by TorizonCore Builder's isolate command.
| TCB-194||Fixed||torizoncore-builder: Bundle fails if trying to access a private registry that is not dockerhub||Low|
Description: So far, only Docker Hub is supported by TorizonCore Builder. We will add a `--registry` flag or something similar to the `bundle` command, so users can pass any registry for login.
| TCB-231||Fixed||TorizonCore Builder isolate issue with NetworkManager connections with spaces in names||Low|
Description: The isolate command fails because of spaces in the name of files.
| TCB-229||Fixed||TorizonCore Builder is not able to build and apply some device tree overlays||Low|
Description: Some device tree overlays from Toradex's overlays repository fail to build.
|TorizonCore Builder 2.5.2 patch release|
| TCB-237||Fixed||TorizonCore Builder cannot fetch branch toradex_5.4-2.3.x-imx from device trees repository||Low|
Description: TorizonCore Builder cannot fetch the new NXP BSP branch (toradex_5.4-2.3.x-imx) from device trees repository.
| TCB-219||Fixed||Some services fail to start after deploying a new OSTree image with TorizonCore Builder||Low|
Description: After deploying an OSTree image with custom files using TorizonCore Builder, some services fail to start.
| TCB-201||Fixed||TorizonCore Builder: Bundle commands fails when used on Windows in a WSL 2 distro||Low|
Description: If you attempt to bundle a container with TorizonCore Builder on Windows from WSL 2, it fails.
|TorizonCore Builder 2.5.1 patch release|
| TCB-54||New Feature||As a user, I want to run TorizonCore Builder on Windows, so I don't have to install/learn Linux||Low|
Description: TorizonCore Builder already runs in a containerized environment. In this task, we document how to set it up on Windows and add tests on Windows to our release tests.
|TorizonCore Builder 2.5.0 minor release|
| TCB-218||Fixed||TorizonCore Builder container image size is too big||Low|
Description: With the introduction of the `kernel build_module` command, the size of TorizonCore Builder increased by a factor of ~10x, due to the download of a duplicated toolchain. This commit addresses this issue and also removes the toolchain from TorizonCore Builder, leaving the download only to those users who need to execute the `kernel build_module` command. This approach increases the time for the first run of the command, while leaving TorizonCore Builder much smaller by default.
| TCB-197||Fixed||Cannot Export tcb-env-setup.sh with Zsh||Low|
Description: Make TorizonCore Builder set up script work with other shells like ksh and zsh.
| TCB-202||Fixed||TorizonCore Builder Not Listing All Compatible Overlays||Low|
Description: TorizonCore Builder seems to not be listing all compatible overlays for some machines, like Apalis iMX8.
| TCB-70||New Feature||As a user, I want TorizonCore Builder to build my own kernel modules, so I don't need to learn OpenEmbedded to do that||Low|
Description: Add the build_module command in TorizonCore Builder to build and add to the image out-of-tree kernel modules.
| TCB-69||New Feature||As a user, I want to use TorizonCore Builder to set custom kernel arguments, so I can generate customized images with my own kernel arguments||Low|
Description: Make it possible to set custom kernel arguments using TorizonCore Builder.
|TorizonCore Builder 2.4.0 minor release|
| TCB-135||New Feature||As a user, I want to run just one command to deploy an overlay in the device, so it is easier and less error-prone||Low|
Description: Create 'dto deploy' command in TorizonCore Builder to automatically deploy a device tree overlay in the device.
|TorizonCore Builder 2.3.0 minor release|
| TCB-49||New Feature||As a user, I want TorizonCore Builder to automatically download and unpack TorizonCore images, so I don't need to||Low|
Description: Add 'images download/unpack' commands in TorizonCore Builder to automatically download Tezi images from Artifactory (based on the version running on a device) and unpack for further customizations.
| TCB-55||New Feature||Support mDNS on hosts with multiple network interfaces||Low|
Description: It seems that currently mDNS only works on the primary network interface. Hosts with multiple network interfaces are quite common, especially in more restrictive corporate networks, where development needs to happen on a separate network. It can also be relevant if WiFi and Ethernet is used alongside.
|TorizonCore Builder 2.2.0 minor release|
| TCB-161||New Feature||As a user, I want to know when a new version of TorizonCore Builder is available, so I can update it as soon as possible to leverage new commands and features||Low|
Description: Create a shell script to automate environment configuration and warn the user when a new TorizonCore Builder version is available.
| TCB-57||New Feature||Add the ability in TorizonCore Builder to "bundle" containers stored in private registries||Low|
Description: Currently, there is a limitation with the "bundle" command of TorizonCore Builder. If any of the container images specified in the provided docker-compose.yml are stored in private registries the "docker pull" will fail, causing the entire command to error out.
| TCB-168||New Feature||As a user, I want to see a link to the web documentation in the help option, so I have quick access to more information about the tool||Low|
Description: To increase awareness about the TorizonCore Builder documentation, we add a hyperlink to it at the end of the `--help`.
| TCB-214||Fixed||Torizoncore-builder: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deployment||Low|
Description: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deployment.
| TCB-233||Fixed||TorizonCore Builder dt deploy fails if hostname is used instead of IP address||Low|
Description: If you execute `torizoncore-builder deploy dt_changes` and pass the board hostname as parameter for `--remote-host` instead of the board IP, for example `apalis-imx8-06543292.local`, it does not work.
Workaround: It has been fixed in TorizonCore Builder 2.2.0. Use this version of the tool.
|TorizonCore Builder 2.1.2 patch release|
| TCB-235||Fixed||Internet connection stops working after applying overlay with TorizonCore-Builder||Low|
Description: After applying some device tree overlays with TorizonCore Builder, the internet connection stops working.
|TorizonCore Builder 2.1.1 patch release|
| TCB-105||New Feature||Refactor device tree commands and adapt them to use overlays.txt||Low|
Description: Refactor device tree commands and adapt them to use overlays.txt.
|TorizonCore Builder 2.1.0 minor release|
| TCB-220||Fixed||TorizonCore Builder is generating Easy Installer images that don't boot||Low|
Description: TorizonCore Builder is generating Easy Installer images that don't boot.
| TCB-199||Fixed||TorizonCore Builder is creating an Easy Installer image with incorrect permissions||Low|
Description: After using TorizonCore Builder to customize an Easy Installer image with a device tree overlay applied, the generated Easy Installer image has incorrect permissions in the /home/torizon directory.
|TorizonCore Builder 2.0.1 patch release|
| TCB-193||Fixed||TorizonCore Builder splash command does not work using --storage-directory||Low|
Description: TorizonCore Builder splash command does not work using --storage-directory.
|TorizonCore Builder 2.0.0 major release|
| TCB-101||New Feature||Move torizoncore-builder container to Bullseye||Low|
Description: Update the TorizonCore Builder container to Debian Bullseye.
|TorizonCore Builder 1.3.1 minor release|
| TCB-123||New Feature||Allow to specifiy Easy Installer feed for evaluation container build command||Low|
Description: To allow TorizonCore Builder batch command (only available on the 1.x series) to use any Easy Installer feed, and not only the internal Toradex one, we added the parameter `--tezi-feed-url`.
|TorizonCore Builder 1.x.y series releases up to 1.2.1|
| TCB-242||Fixed||Torizoncore-builder: invalid compose file after bundle command||Low|
Description: Torizoncore Builder generates an invalid compose file after bundle command.
| TCB-78||New Feature||Add product IDs to evaluation containers||Low|
Description: Add a property called TORADEX_PRODUCT_IDS to the TorizonCore images with pre-provisioned containers.
| TCB-203||Fixed||docker-compose file missing MACHINE variable||Low|
Description: When TorizonCore Builder replaces the tags in docker-compose file with concrete sha256 hashes, it drops the MACHINE variable.
| TCB-148||New Feature||Investigate how to improve TorizonCore Builder usability||Low|
Description: In this ticket we make some UX-based improvements
- Show list of available device tree overlays automatically if none specified. Improve console visible messages in general.
- Use sensible default include paths for device tree includes.
- Improve dt subcommand description to be a bit more descriptive.
- Currently --devicetree specifies a binary or source device tree depending on the exact subcommand. This might lead to confusion. Use --devicetree for device tree binaries exclusively and --devicetree-source when a source file is required.
- Write a clear error message if the "devicetree" file is not present.
| TCB-106||New Feature||Create "dt list-overlays" sub-command to list available/compatible device tree overlays||Low|
Description: We want to create the "dt list-overlays" (or similar name) sub-command to list available (and compatible with the module) device tree overlays.
| TCB-109||New Feature||Create "dt checkout" command to checkout a branch from the device tree overlays repositories||Low|
Description: Create the "dt checkout" sub-command to checkout a branch from the device tree overlays repositories, to improve customers UX as they will not need to manually find the repository, correct branch, compatible version.
| TCB-48||New Feature||Doc: How to use TorizonCore Builder to apply device trees||Low|
Description: Create documentation on how to use TorizonCore Builder to apply device trees
| TCB-107||New Feature||Show currently applied device tree overlays||Low|
Description: Add an option in TorizonCore Builder so the customer can see the device tree overlays applied to the current device tree.
| TCB-111||New Feature||Add additional metadata to OTA targets.json||Low|
Description: Add additional metadata to OTA targets.json.
| TCB-108||New Feature||Implement deploy to device||Low|
Description: TorizonCore Builder command to deploy a OSTree reference directly onto a target device.
| TCB-40||New Feature||Implement splash sub-command||Low|
Description: Add feature in TorizonCore Builder to set a splash screen image.
| TCB-216||Fixed||TorizonCore Builder isolate does not work with mDNS host names||Low|
Description: TorizonCore Builder should work with mDNS host names
| TCB-121||New Feature||Push OSTree repository to OTA||Low|
Description: Add the push command to torizoncore-builder tool to upload changes in an OSTree repository to Torizon OTA.
| TCB-211||Fixed||TorizonCore Builder not working with a Docker-compose with environment variables||Low|
Description: Trying to run torizoncore-builder bundle with a Docker-compose that has an environment variable gives an error.
| TCB-13||New Feature||TorizonCore Builder tool||Low|
Description: TorizonCore Builder is a tool that helps to integrate Docker containers and user's customization in a production image.
| TCB-152||New Feature||Support custom EULA when preprovisioning containers||Low|
Description: Some containers such as our base containers with Vivante binary drivers need the customer to accept an EULA. We should support adding an EULA to the Tezi image as part of the pre-provisioning process (in torizoncore-builder).
| TCB-228||Fixed||torizoncore-builder error on Windows using cmd||Low|
Description: torizoncore-builder does not work on Windows using cmd
| TCB-208||Known Issue||TorizonCore Builder: bundled container executed with net=host permission fails with error "SIOCSIFFLAGS: Operation not permitted"||Low|
Description: As reported in our community, with TorizonCore Builder, If you bundle a container that requires host network permissions (--cap-add NET_ADMIN and --network host), the container will fail upon execution with the error "SIOCSIFFLAGS: Operation not permitted".
If you remove the bundled container and manually pull it from Docker Hub, then try to run it again, the same error will not happen.
Workaround: If possible for your use case, make the network configuration changes directly on the host and capture changes with TorizonCore Builder.
| TCB-205||Known Issue||TorizonCore Builder: "images serve" command not working on Windows||Low|
Description: The TorizonCore Builder "images serve" command was added to TorizonCore Builder on version 3.2.0. It is not working on Windows machines yet.
Workaround: Take the output image from TorizonCore Builder and use an SD Card/USB stick to install it to a Toradex SoM.
|TorizonCore Builder next release|
| TCB-249||Known Issue||Serving OSTree repos with TorizonCore Builder fails when external repository directory is specified||Medium|
Description: When passing the switch --ostree-repo-directory to the ostree serve command, for example "torizoncore-builder ostree serve --ostree-repo-directory ostree_repo/", the tool throws an error:
"UnboundLocalError: local variable 'storage_dir' referenced before assignment"
| TCB-85||Feature Request||As a user, I want the "deploy" command to automatically find and use a free SSH port||Low|
Description: The TorizonCore Builder "deploy" command uses the hardcoded port 8080 to deploy customization to a board. Sometimes this port is not free for some reason and the command fails.
We will improve the logic and let TorizonCore Builder find and use a random free port for the deployment. We also provide an option for you to specify a port you'd like to use.
| TCB-177||Feature Request||As a developer, I want to redesign our CI to generate TorizonCore images with pre-provisioned containers||Low|
Description: While this change is mostly benefitial for internal Toradex use, it may be the base for a future TorizonCore Builder CI/CD example.