## About The Pull Request
Turns out the version we are using has a memory segmentation issue that
has been fixed in later versions.
https://github.com/oven-sh/bun/issues/23240
For server ops: remember to update your PreCompile.sh
## Why It's Good For The Game
Improved stability, probably fixes some CI flakiness
## Changelog
🆑
server: updates bun version to 1.3.5, and adds automated validation for
tgs
/🆑
## About The Pull Request
by changing the `mv` commands in the `PreCompile.sh` preset for rust-g
and dreamluau to `cp -f`, we can avoid having to re-link the so files
every compile if nothing has changed, meaning that this step is
practically instant if the rust-g and compiler versions were the same as
last time.
tested downstream and this does not seem to cause any issues in
production
## Why It's Good For The Game
Improves compile times.
## Changelog
no player-facing changes
## About The Pull Request
Move the line to install `unzip` from `PreCompile.sh` to
`InstallDeps.sh` so it only runs if you're actually missing unzip, and
gives a warning that you'll need to install it manually if it fails to
passwordless sudo install it
## Why It's Good For The Game

Deployments are now failing if your TGS system user isn't root because
it's trying to install this every time with no sudo, `InstallDeps.sh` is
a more appropriate place for it
## Changelog
🆑
server: TGS deployments should no longer fail to install unzip
/🆑
## About The Pull Request
Swaps out node & yarn in favor of [bun](https://bun.sh/)

sub tasks
- [x] add bun setup script
- [x] fix tgui-dev-server (bun glob is different)
- [x] set juke to run bun
- [x] remove all yarn stuff
- [x] convert all tests from vitest to bun
- [x] fight with CI/tgs
## Why It's Good For The Game
Yarn has served us over the years as our package manager but the method
it bundles dependencies has lead to issues and setbacks, notably needing
to wait on rspack support, but more recently in trying to switch to
biome
1. I can add in packages that do not need these workarounds, like god
intended
2. We won't need to [keep around
sdks](https://yarnpkg.com/getting-started/editor-sdks) which rely on
yarn to even publish
3. We're not committing the yarn cache or .pnp file, which kind of
defeats the purpose
4. Native typescript support and testing
5. Because it'd be cool
## Caveats
Rspack was throwing errors on TGS while doing this. I needed to switch
back to webpack/swc, which seems to work flawlessly. It was too tiring
for anyone involved to debug and this was the simplest route. It adds a
completely negligible amount of time to build. It might even resolve
some issues elsewhere.
Making this switch extends that very first setup time! I'm working on
cutting it down, but as of right now, it takes about 80 seconds just for
TGUI to download all the packages. Afterwards, it's the same.
## Changelog
Updates tgs/precompile.sh hook to match what is deployed on campbell.
rust-lang/cargo#12654 has set a policy of setting this to be the latest
version-2, which kills any kind of signal this could have ever had.
cargo's subcrates like `home` are used in almost any complex rust
package, so this basically sets the tone for all packages and all crates
published after October 8th.
A min compiler version should be based on an actual need to use a
specific compiler version because of specific features that version has
or bugs that version doesn't have. This is signal. Setting to some
evergreen value as a matter of course is not signal, its noise.
I will not subject myself nor our downstreams to such nonsense.
## About The Pull Request
You can read more about what's introduced in the last four versions
here:
https://github.com/tgstation/rust-g/releases
The immediate effects for us are as follows:
Closes#76549Closes#76514Closes#76502Closes#76490Closes#76398Closes#76798Closes#76921Closes#76934Closes#76950
the updates to install rust_g.sh were to cut down on the copypasta code
and prevent desyncs.
🆑
code: The currently operating rust-g version on a live server is posted
to places like the runtime.log, in the same place where the revision
information and any applicable test merges already were.
/🆑
- Make names version independent
- Version .yml file (Will I write the code to ever use it, who tf
knows?)
- Add WatchdogLaunch.sh to .yml
- Remove defunct PreSynchronize script.
- Cargo isn't needed in WatchdogLaunch
- Why are we running apt outside of the if?
- grep was only needed for the LinuxOneShot (old tool)
- Bring common code into one file
TODO:
- [x] Test this shit
- Added a test app, ran locally, verified the scripts work, added it to
CI
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>