A new version of State Tool has just been released providing a number of “quality of life” improvements. To update to the latest version, run the following command:
state update
Full list of changes follows:
Added
- On Linux we will now automatically detect the most appropriate platform based on the system glibc version.
- This only applies if your project has multiple linux platforms defined.
- If you were using the
runtime.preferred.glibcconfig option it will still be respected, but you likely won’t need it anymore.
- We now show failed builds when running
state artifacts. You can still instrument the artifacts that did not fail.
Changed
- We no longer support running shell-builtins through
state exec, instead we require that the executable passed in exists on the system. Running shell-builtins was never the intended behavior, but was a side-effect. You can still access shell built-ins by running it through a shell, eg.state exec -- cmd /C "where python3". - Our installers now give slightly better indication that a download is happening, avoiding confusion about the process hanging.
- We will now produce an error if you have an invalid
ifconditional in your activestate.yaml. Previously these conditionals were simply assumed to befalse. - We will now inform you there is nothing new to commit when running
state commitwith no changes to commit. - The
LOCALandREMOTEtargets forstate resetare now case-insensitive. - You can now
state checkouta project without a language defined in its configuration.- Note making changes to such a project in the State Tool is not yet fully supported.
- When the State Tool encounters an unexpected internal we now relay this internal error to the user. Previously you only received a generic “execute failed” error, which is far less helpful than an internal error.
- Running
state pullwill now fail if the configured commit does not belong to the configured project.- This is a corrupted state that the user can encounter by manually editing their activestate.yaml (eg. by resolving a git conflict).
Fixed
- Updates would retry and eventually timeout if it took longer than 30 seconds to download.
- On Windows, arguments were not always escaped properly when using commands like
state exec, or runtime executors. - Sometimes row/column text was not aligned properly.
- Build progress and an empty build log would sometimes be produced when the build was already done.
- The “Platforms” command group was shown twice on
state --help, one of these should have been the “Authors” group. - When running
state artifactswith the--commitflag; it was not respected when--namespacewas also supplied. - Running
state publishwith a customEDITORenvironment variable would not respect the configured editor. - Sometimes
state pullwould produce conflicts when there shouldn’t have been any. - Our service process now has a longer timeout window, eliminating state-svc errors when the system is under heavy load and the service hasn’t started yet (eg. when booting up).
- We no longer show redundant bullets for each change under
state history. - Running
state publish --editwill no longer require you to supply a file (eg. you just want to change the description).
Security
- Addressed several CVEs, packages in question have been updated to more recent appropriate versions.