pinexq.toml can state a function’s deployment resources explicitly with cpu, memory and disk as Kubernetes quantities (cpu = "500m", memory = "16Gi", disk = "100Gi"), as an alternative to resource_preset (#79). Setting both, only some of the three, or a value that is not a whole number of millicores, MiB or GiB is a configuration error. A deployment table without either now uses the Medium preset; before, it had to name resource_preset. See the README.
pinexq ps show displays the deployment’s cpu_millicores, memory_mib and disk_gib next to resource_preset, which is empty for resources that match no preset.
Changed
Requires pinexq-client 2.6.1 or later (JMA API 11.1).
A function without deployment resources in pinexq.toml is deployed with Medium’s values as explicit resources (cpu = "1", memory = "4Gi", disk = "10Gi") instead of the Medium preset. The resources are the same.
Deprecated
resource_preset in pinexq.toml is deprecated and will be removed in a future release; state cpu, memory and disk instead. pinexq deploy warns for each function that uses a preset and prints its replacement, e.g. resource_preset "Large" is deprecated, state cpu = "3", memory = "14Gi", disk = "70Gi" instead. Presets keep working until then.
A Global config at ~/.config/pinexq/config.toml (honouring XDG_CONFIG_HOME) holds named Profiles, each pairing an endpoint with an API key, and names a default_profile. Select one with pinexq --profile NAME or PINEXQ_PROFILE. Flags and environment variables still win; a selected Profile overrides a Project’s pinexq.toml, the default Profile does not (ADR-0007). Applies to the Resource commands, deploy, and register. See the README.
Changed
pinexq deploy and pinexq register report their progress as a list of steps under a pinexq banner. A spinner and a running timer show what is in progress; then each step turns into a ✓ line with what was done, the details in muted text (the image size, the functions found, the pushed image’s digest, the CPU, memory, disk and replicas each function was configured with), and the time it took, aligned on the right. Each function gets a block of its own, and the run ends with a DONE badge and a pinexq ps show <name>@<version> line per deployed function. Docker commands, image IDs and raw push status lines are printed only with --verbose, and the push shows one progress bar for the image instead of one per layer. In CI, where there is no terminal, only the outcome lines are printed.
A failure is marked ✗ on the step it happened in, followed by the details and a FAILED badge with the reason.
A --function that names no function in the image is now an error that lists the functions the image has, raised before the linux/amd64 build or any push. Before, the name was ignored.
Fixed
A failed docker build shows Docker’s error summary from the end of the build log instead of only Docker build failed with return code 1. --verbose still prints the whole log.
With --verbose, the build log no longer loses bracketed text such as the [stage-1 3/6] step labels, and the push stream no longer loses the bracketed repository name.
Errors reading pinexq.toml or pyproject.toml were printed with raw markup ([bold red]pinexq:[/bold red]) and could lose bracketed parts of the message. They now go to stderr, formatted.
The image size warning is printed once, for the image that is pushed, instead of once per build.
A deploy without an endpoint says so instead of failing with 'NoneType' object has no attribute 'replace'.
pinexq.toml can state a function’s idle_timeout under [deployment] or [function.<name>.deployment]: how many seconds a job pod waits without a job before it stops, 1 to 3600 (#87). Without it, the platform’s default of 60 seconds applies. Needs a JMA that accepts the idle timeout (pinexq/job-management#232). See the README.
pinexq ps show displays the deployment’s idle_timeout_seconds, empty when the platform default applies.