Repository navigation
#273 #248/test the consumer install path and the shipped env in CI - #402
Merged
Merged
Conversation
…fter
update_fixs.{ps1,sh} gain --zip (install a local build zip) and --list
(the picker's releases). release.yml installs each platform's fresh zip
with them before publish, and the published channel after it, checking
the result with check_fixs_install.{ps1,sh}.
A .sha256 the release lists is now required; only releases that list
none install unverified.
…n it Windows runner: the spec's vc14/vs2015 runtimes are win-64 only.
yunlishao
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two CI gaps. Each has already let a broken release through with CI green.
#273: nothing ran the consumer install path
#238 changed the packaging, the installer wasn't updated to match, and the first to notice was a user running
--update-fixs. Since #272 every app on a channel runsscripts/update_fixs.{ps1,sh}, so a broken installer breaks all of them at once.The installers can't install from a local file, so a test before publishing had nothing to run. They now take:
--zip <path>/-Zip: install a build zip already on disk instead of downloading one. Everything after the download runs unchanged: unpack, native runtime fetch, version marker. Behaviour without the flag is unchanged.--list/-List: print the releases the picker would offer, then exit.release.ymlthen checks the install at two points:build-publish(Windows),linux-bundle(focal)--zip. A zip that can't install never reaches the channel: the Windows step sits ahead of the publish step, andlinux-publishneedslinux-bundle.install-check-windows,install-check-linuxjobs--listequals the releases that carry afixs-build-*.zip, compared against jq's reading of the API.Both points check the result with
scripts/check_fixs_install.{ps1,sh}:TrafficLayeris present.Test-LibsumoLoadableon Windows,lddwith noLD_LIBRARY_PATHon Linux.FIXS_VERSION.txtcarries the tag, with no BOM.The after-publish check can't prevent a bad release, only make it visible. Prevention comes from the before-publish check.
Checksum rule. #396 (#204) started publishing
.sha256files. A.sha256that the release lists is now required: if it can't be fetched, or doesn't match, the install fails. A release that lists none was published before #204 and still installs, with a warning, as before. This closes the gap for new releases without breaking installs of the pinned old ones.Build gate.
scripts/update_fixs.*was on the build-skip list, so a PR touching only the installer ran nothing. It's off the list now, because the build is what installs the fresh zip with it.#248: nothing built the env from
environment.ymlNew
python-env.yml: create the env from the spec alone, importcarla_env_setup.CHECKED_MODULES, byte-compileCarla/andCommonLib/, addcarla==0.9.15asensure_carla()does, and runtests/Python/unit. It has no path filter on purpose:release.ymlskips Python-only PRs, and those are the PRs this workflow is for.vs2015_runtime/vc14_runtime, which conda-forge publishes for win-64 only (conda search --platform linux-64: no match), so the spec does not resolve on Linux.environment.ymlproblem nobody knows about yet doesn't block every PR.Related Issues
Closes #273
Closes #248
Environment
environment.yml)fixs-native-deps)Checklist
environment.ymlAdditional Notes
Verified locally (Windows 11, against the live releases)
update_fixs.ps1, andupdate_fixs.shunder Git Bash, where it selects the Windows assets:--zipwith the published v0.9.1-alpha zip.sha256)checksum OKon both zip and libsumo; check passes--listfixs-native-deps,Binaries-*, v0.6.0, v0.7.0; equals the jq readingEach negative control fails for its own reason:
TrafficLayer.exeremovedTrafficLayer.exe is missinglists … .sha256 but it could not be fetchedchecksum mismatch, and noFIXS_VERSION.txtis written--listcompared against all releases.pywith a syntax error underCarla/Not verified yet
check_fixs_install.shand the Linux installs. They need a Linux runner (ldd), so this PR's ownlinux-bundlerun is their first run.workflow_dispatchwithpublish=trueon this branch would not exercise them either: the branch has no channel, so nothing publishes and they skip. Their first run is the first push todev_v0.9.1after merge. The before-publish checks, which are the ones that block a bad release, did run and pass on this PR.setup-minicondawith Miniforge against a spec that listsdefaults. Locally I used Miniconda. This PR'spython-envrun is the test.Out of scope, found on the way
environment.yml's trailing comment saysensure_carla()also installs eclipse-sumo/traci/sumolib. It doesn't: only the no-conda fallback does (carla_env_setup.py:776). This belongs to [BUG] Shipped environment.yml does not produce a working co-sim env (carla wheel path + missing/unpinned SUMO clients) #221.conda env create -f environment.yml.Carla/run_cosim.py:1605and:1641have invalid escape sequences ("virenv\mainvircarla.py",f"apps\{app_id}\\"). Today they are aDeprecationWarning; from Python 3.12 they are aSyntaxWarning.