Skip to content
This repository has been archived by the owner on Dec 21, 2024. It is now read-only.

Latest commit

 

History

History
813 lines (591 loc) · 74.4 KB

CHANGELOG.md

File metadata and controls

813 lines (591 loc) · 74.4 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

2.0.0-rc.6 (2024-10-03)

Features

  • add rivet backend generate-sdk command (#548) (b10140e)
  • add editor (#390) (101d476)
  • add process manager for game server & opengb dev server (#349) (e1d2369)
  • backend: add better godot module request logging (#514) (9d83741)
  • backend: add openapi gen command (#401) (08d106c)
  • backend: add project lock to prevent concurrent actions (#454) (056d232)
  • backend: allow specifying registry with "github" shorthand & add default local registry (#389) (6daed07)
  • backend: generate typescript sdk (#520) (daae06d)
  • backend: report alarm errors in actors (#527) (e072ac6)
  • cli: add rivet config data-path command to inspect internal data (#541) (5a80398)
  • scroll to currenlty selected module (#510) (c4b5646)
  • toolchain: add get-current-version and get-endpoint commands (#549) (294b466)
  • toolchain: dispatch backend config update events (#397) (4b5eee8)
  • toolchain: fetch current build in bootstrap data (#519) (2bf993a)
  • update favicon (#485) (38dcf9d)

Bug Fixes

  • actor: clear timeouts on memory actor on destroy (#407) (e047ffa)
  • add html5 example (#538) (04d293b)
  • backend-embed: force executable permissions on vendored packages (#482) (c6fa1ec)
  • backend: add compat for calling yarn on windows in build_artifacts.ts (#414) (cf3342d)
  • backend: add deno.jsonc to both generated output & local project (#452) (3d567b3)
  • backend: apply not getting ran (#366) (214df69)
  • backend: correct windows paths for esbuild nodejs polyfills (#436) (30831a2)
  • backend: correctly auto-generate local registry (#394) (3d271ae)
  • backend: correctly handle relative path from drizzle db config -> db migrations (#423) (d02038d)
  • backend: failing ProjectOpts.path type check with cli (#455) (03e2dca)
  • backend: fix Could not find package ID for importer (#464) (a98076d)
  • backend: fix apply migration file globs not working on windows (#532) (18bfd83)
  • backend: fix conflicting dev & deploy by running them in different contexts (#477) (4ebdc90)
  • backend: fix generated relative migrations path (#437) (6924340)
  • backend: fix incorrect status/stop commands (#420) (2ddd474)
  • backend: fix module.gen.ts import ordering to prevent "cannot access xxxx before initialization" error (#373) (df04fa3)
  • backend: fix reading stderr output in build script (#515) (0acc2a1)
  • backend: force posix paths for artifacts (#418) (3a75bd3)
  • backend: generate correct actor driver path (#362) (2050694)
  • backend: handle sigint and sigbreak correctly to run shutdown (#456) (1c02121)
  • backend: register missing create commands (#372) (8c59e76)
  • backend: remove use of locks on configManifestPath, configOutputManifestPath, and configShow (#466) (85a57c3)
  • backend: type using drizzle-orm@0.24 instead of 0.33 (#376) (c26d53c)
  • backend: use deep hash of backend for cache purging (#388) (21ff88f)
  • change docs link (#509) (2c35c7d)
  • cli: module list is now correct (#363) (30cebad)
  • deno-embed: build script (#424) (c2b347d)
  • deno-embed: fix aarch64 target name (#471) (65eee2f)
  • deno-embed: fix deno target on windows (#415) (e0890c7)
  • deno-embed: windows support (#378) (99f0ce8)
  • force lockfile to generate in data dir instead of project dir (#545) (da314bc)
  • re-enable cross platform builds (#551) (2a6316f)
  • replace rename -> copy in build script (#542) (b7c9689)
  • toolchain: add windows dep (#379) (a3da2e0)
  • toolchain: compilation error on linux (#525) (6673b93)
  • toolchain: explicitly handle utf8 error (#446) (c2c6b92)
  • toolchain: fix killing old pid & abort log handles for process manager (#523) (89d0469)
  • toolchain: fix odd compilation error for godot (#346) (88fb160)
  • toolchain: fix Postgres::start error on windows (#531) (056b4d3)
  • toolchain: fix task manager compilation for windows (#530) (e0d1325)
  • toolchain: fix zombie processes & term window popups on windows (#473) (4b63f78)
  • toolchain: force kill existing pid for process manager not stopped cleanly (#506) (24ff721)
  • toolchain: force kill full process tree in process manager (#507) (b685ff7)
  • toolchain: handle progress manager signals correctly on windows (#430) (f6fc52d)
  • toolchain: handle unix zombie processes correctly in process manager (#425) (4b5df8c)
  • toolchain: include backend dir relative to manifest dir (#356) (efa1964)
  • toolchain: only inject DATABASE_URL to backend if not already provided (#481) (6a6d790)
  • toolchain: prevent command popups on windows (#422) (c0850f5)
  • toolchain: read output & project manifests without depending on script (#478) (f1c14b2)
  • toolchain: remove unix import on windows targets (#484) (8123c0d)
  • toolchain: remove use of libproc on macos in favor of pkill (#536) (7582b7e)
  • toolchain: suppress window creation when running cmd on windows (#348) (29ba978)
  • toolchain: tail logs using cancel-safe line iter (#448) (7c5a5e7)
  • toolchain: update path to output manifest (#438) (5e84923)

Documentation

Code Refactoring

  • remove dependency on FONTAWESOME_PACKAGE_TOKEN (#447) (da3e6c7)

Continuous Integration

Chores

  • 🤫 (#504) (d086ad2)
  • add back hidden task command (#371) (cff8007)
  • add build_cross & release script (#543) (26606fe)
  • add docs to cli (#354) (41cbc0a)
  • add more info to readme (#555) (36d4541)
  • add new install instructions (#554) (b06f621)
  • allow non-existent local registry dirs (#395) (c8d6899)
  • auto-build backend artifacts in build.rs (#359) (3143ad9)
  • auto-generate sdk on build (#382) (fc21e59)
  • auto-pick editor port (#391) (265a2ad)
  • backend-embed: output deno logs (#393) (fecda97)
  • backend: add global opts to backend command wrappers (#406) (8f523bf)
  • backend: add message on migrate command (#364) (f1c34be)
  • backend: add postgres connection timeout (#474) (5b100aa)
  • backend: add releasing project (#458) (736d94c)
  • backend: allow sdk overriding (#387) (e7c8dc1)
  • backend: auto-generate deno.jsonc to modules directory (#462) (f2a0cd0)
  • backend: bump modules (#439) (7594640)
  • backend: cleanly handle errors in cli (#365) (3a895e8)
  • backend: connect all abort controllers to shutdown (#459) (d4b774c)
  • backend: cut embed size by ~75% (#544) (f90ffb6)
  • backend: default to strict schemas in tests (#408) (c740d61)
  • backend: fix unable to resolve cloudflare:workers dependency (#451) (ecadb0c)
  • backend: fmt (#534) (5b5fb26)
  • backend: remove .gitignore now that cache path is not src dir (#457) (b9b3d92)
  • backend: remove archived json in favor of reading from fs (#512) (c6dcb83)
  • backend: simplify cli task running (#476) (c1b27d5)
  • backend: skip logging progress for steps that take very little time (#461) (14c3858)
  • backend: template enum values in to command help (#435) (35a3d41)
  • backend: update default modules (#522) (96cb495)
  • backend: update modules (#409) (5c0981e)
  • backend: vendor dependencies (#450) (4c5fbd5)
  • bind clap commands to backend commands (#353) (5d3281a)
  • clean up build artifacts script (#358) (8cedb29)
  • clean up html5 demo (#550) (7dee61a)
  • deno-embed: embed deno in toolchain (#374) (2b4e24b)
  • deno-embed: support aarch toolchain (#469) (1f16bc6)
  • editor: replace opengb logo with rivet logo (#410) (7a87f0c)
  • embed backend source (#351) (ca8fd05)
  • ffi: update to latest task format (#381) (b24b82e)
  • fix relative migrations path on macOS with realDir (#440) (91ef488)
  • fix test command (#367) (b15e4b3)
  • force lf line endings from git (#417) (a8e0079)
  • merge backend in to toolchain (#350) (c398a2f)
  • migrate from global-error -> anyhow (#355) (1a972be)
  • move args to postitional for create commands (#370) (560260f)
  • move cache to global dir (#384) (6267235)
  • move output events to custom event handler fn (#343) (3c5acb0)
  • move task logic to cli (#345) (c014583)
  • postgers: add connectable status check (#421) (426677c)
  • postgres: cleanly handle unconnectable database (#419) (801c416)
  • prefix all env vars with RIVET_* (#392) (5cf04b3)
  • preserve generated files in sdk output (#547) (f65a267)
  • process-runner: fix warnings (#434) (e297d34)
  • process-supervisor-embed: bump cargo nightly version (#416) (5928592)
  • refactor opengb cli commands to take json input (#352) (774136f)
  • release 2.0.0-rc.6 (b1aabde)
  • remove required flags for repeated module args (#368) (751b957)
  • remove sdk gen task (#386) (ac0386e)
  • remove stty check since dev is now intended to be able to run without a tty (#396) (1d265b6)
  • remove uses of "opengb" (#383) (dae11fd)
  • rename backend meta.json -> project_manifest.json (#399) (43a0e93)
  • rename backend_source_path -> source_path (#360) (ef9724a)
  • rename backend.json -> rivet.json (#385) (a89f7fa)
  • rename manifest.json -> output_manifest.json (#398) (5735aa0)
  • simplify backend_source_path setting (#357) (b523dad)
  • switch from openssl -> rustls (#347) (d082651)
  • toolchain-ffi: prefix ffi with rivet_ for windows naming conflicts (#413) (da30e19)
  • toolchain: add ability to hook to existing process manager tasks & clean up backend port choosing (#375) (0cccf30)
  • toolchain: add mutex lock on meta file to prevent race conditions when writing (#404) (c259044)
  • toolchain: add project-specific meta.json files (#405) (c00eb72)
  • toolchain: expliciltly handle runner errors in process manager (#427) (89797ac)
  • toolchain: expose sdks in event (#453) (5a5f09d)
  • toolchain: fix build pipeline in ci (#442) (5144a5d)
  • toolchain: fix no backend output on windows (#433) (7599ba8)
  • toolchain: fix warnings (#479) (ffe05de)
  • toolchain: impl killing process tree on unix (#431) (29477a5)
  • toolchain: most postgres logic from backend to toolchain (#475) (fef96e2)
  • toolchain: prevent running postgres as root user to prevent broken state (#539) (43515ff)
  • toolchain: remove extra logging (#468) (c57befe)
  • toolchain: remove requirement to be signed in for toolchain tasks (#503) (ffff590)
  • toolchain: remove unused get_hub_link task (#465) (0c40acc)
  • toolchain: rename process supervisor -> process-runner (#426) (d2336b7)
  • toolchain: reorg project_manifest (#516) (acb109d)
  • toolchain: split up os-specific process manager code (#505) (b2c0388)
  • toolchain: update default dockerfile path to game_server.Dockerfile (#463) (27a4dfd)
  • toolchain: update project path name to include file name for easier reference (#540) (03af1d9)
  • toolchain: use merkle tree for backend hash (#513) (8ae5e86)
  • update godot sdk to rivet modules (#377) (2c0fe9e)
  • update html5 tutorial to use packages (#546) (7d2b711)
  • update modules (#537) (2db8a30)
  • update readme (#369) (9dc2da0)
  • update release please (44a8ea1)
  • update unity codegen to native deno (#403) (dc31592)
  • upgrade backend tasks to use new command interface (#361) (4615f7f)
  • use dynamic deno executable path (#402) (f1dc38d)
  • vendor deno dependencies (#449) (5f259ba)

2.0.0-rc.5 (2024-08-31)

Chores

2.0.0-rc.4 (2024-08-22)

Features

Bug Fixes

Chores

2.0.0-rc.3 (2024-08-12)

Bug Fixes

Continuous Integration

Chores

2.0.0-rc.2 (2024-08-10)

Continuous Integration

Chores

2.0.0-rc.1 (2024-08-09)

Features

Bug Fixes

Documentation

Code Refactoring

Continuous Integration

Chores

1.3.4 (2024-07-11)

Chores

1.3.3 (2024-07-10)

Features

  • add --skip-migrate flag to opengb deploy (#262) (6255e07)

Bug Fixes

Chores

1.3.2 (2024-06-13)

Features

Chores

1.3.1 (2024-06-10)

Continuous Integration

Chores

  • fmt sdk (#251) (28eade7)
  • opengb: migrate from backend.yaml -> backend.json (#253) (4b31887)
  • readme: add note about openssl when building from source (#234) (a9c1b29)

1.3.0 (2024-05-29)

Features

  • get lobby and logs links in sidekick (#235) (7c63efd)

Bug Fixes

  • prevent asking user for terminal permissions (#236) (a1a75d8)
  • read_generated_manifest fn name (#241) (72970c7)
  • reading byte-order marks on Windows (#238) (e177ad4)

Documentation

Continuous Integration

Chores

  • Bump the cargo group across 1 directory with 4 updates (#228) (a192e35)
  • main: release 1.2.0 (555fec1)

1.2.0 (2024-05-28)

Features

Bug Fixes

  • add concurrency constraint to generated github action (#226) (8a62d97)
  • backend: check opengb and deno installation using which crate (#237) (64b3489)
  • ci: update ci script to use json-compact instead of json (#224) (2f04ea3)
  • read_generated_manifest fn name (#241) (72970c7)
  • update sdks for opengb (#233) (7feb70b)
  • upload: increase upload buffer size (#229) (28d9d93)

Continuous Integration

Chores

[v1.1.0] - 2024-04-13

Added

  • rivet run and rivet exec are no longer experimental

Changed

  • Rename --rivet-servers to --servers and --this-machine to --dev for rivet run and rivet exec

Fixed

  • rivet exec does not respect --rivet-servers flag

[v1.0.2] - 2024-02-29

Changed

  • Progress bars will consolidate to 1 if there are more than 40 files being uploaded
  • Update SDKs

Fixed

  • cdn.build_env not being passed to cdn.build_cmd

[v1.0.1] - 2024-01-29

Changed

  • Improved progress indicators on file uploads

Fixed

  • Docker image UID & GID validation not getting ran
  • Lack of a newline printed by rivet token create causing EOL mark to appear on zsh shells

[v1.0.0] - 2024-01-23

[v1.0.0-rc.3] - 2024-01-19

Added

  • Shorthand API endpoints can now be passed without the scheme (e.g. api.mydomain.com or 127.0.0.1:8080)
  • rivet global-config read-project command
  • rivet global-config path command to get the path to the global config
  • --format now supports json-compact

Changed

  • --format json now defaults to pretty-printed JSON

Fixed

  • rivet unlink now works even if the credentials are invalid
  • Docker image UID & GID validation no longer disabled by default

[v1.0.0-rc.2] - 2024-01-13

Added

  • rivet exec command to run arbitrary commands with RIVET_API_ENDPOINT and RIVET_TOKEN environment variables
  • rivet run command to run scripts from the scripts portion of rivet.yaml with RIVET_API_ENDPOINT, RIVET_TOKEN, and RIVET_NAMESPACE environment variables
  • rivet deploy now can now specify the namespace inline (e.g. rivet deploy prod instead of rivet deploy -n prod)
  • matchmaker.docker.build_args to configure Docker build args
  • cdn.build_env to configure environment variables for building the site
  • RIVET_API_ENDPOINT and RIVET_NAMESPACE arg is passed to docker build by default
  • RIVET_TOKEN and RIVET_NAMESPACE now additionally passed to cdn.build_command

Changed

  • Reworked rivet init process to cleanly communicate next steps & unique links for the selected engine
  • Updated generated rivet.yaml on rivet init to be more concise and helpful & unique content for the selected engine
  • Update OCI bundle archival process to operate on TAR streams instead of using the host's file system to preserve ownership & permissions
  • [BREAKING] rivet deploy now requires a --no-namespace flag if no namespace is provided

Fixed

  • Overriding matchmaker.docker.image_id getting ignored
  • rivet config validate now uses --print flag instead of a positional argument
  • Validate Docker images do not run as GID 0

[v1.0.0-rc.1] - 2023-12-24

Added

  • Add x86_64-unknown-linux-musl artifact
  • Version names are now generated with incrementing indexes on the backend without race conditions
  • Warning if running unauthenticated commands as a sudo user
  • sidekick unlink subcommand to unlink the current project from the Rivet CLI
  • sidekick generate-config subcommand to generate a Rivet config file
  • sidekick get-namespace-dev-token and sidekick get-namespace-public-token subcommands to get a Rivet token for a namespace
  • sidekick get-bootstrap-data subcommand to get the initial data about the signed-in user
  • sidekick get-cli-version subcommand to get the version of the Rivet CLI
  • sidekick deploy to do the process of deploying a build to Rivet
  • ability for sidekick to open terminal in a new window for commands that need to be shown (e.g. sidekick deploy)
  • sidekick get-version subcommand to get the manage version URL in the hub
  • sidekick get-token subcommand to get a Rivet token for a user
  • sidekick check-login-state subcommand to see if a user is logged in through the CLI
  • sidekick wait-for-login subcommand to long-poll for a user to sign in
  • sidekick get-link subcommand to get a sign-in link for a user
  • hidden Sidekick subcommand to be used by external tools (e.g. engine plugins) to interact with the Rivet CLI

Changed

  • Cleaner unauthenticated error
  • Changed sidekick to a more modular architecture
  • Changed error handling in CLI to use Result from main repo instead of anyhow
  • Unix install script can now take the environment variable BIN_DIR to specify the installation directory, preventing the need for sudo in certain cases
  • Rivet CLI now references the rivet-cli-api from the Rivet main repo rather than storing its own copy
  • Update cargo-dist to 0.6.2

Fixed

  • Custom engines no longer get prompted to select engine when running rivet init for the second time
  • Windows compilation no longer fails with nix dependency
  • --telemetry-disabled no longer requires explicit true
  • Collect system metrics using sysinfo::System instead of uname command for compatability with Windows
  • CDN URL on deploy complete now pulls dynamic DNS from bootstrap API
  • CDN URL on deploy complete is no longer displayed if CDN is not enabled for the game

[v0.4.0] - 2023-12-20

Added

  • Auto-generate GitHub Actions with rivet ci generate github
  • Development token cache to make rivet token create development run faster
  • Shorthand -n for --namespace flag in rivet token create development
  • rivet deploy validates config before building & uploading resources
  • rivet unlink command to remove authentication token
  • Pretty-printed errors instead of default debug format
  • Error reporting to Sentry

Changed

  • Removed engine prompt if Rivet config already exists
  • [BREAKING] No longer automatically creates/updates .env file in favor of using rivet token create development
  • Global flags (--api-endpoint, --token, and --disable-telemetry) can now be used in subcommands (e.g. rivet init --token foobar instead of rivet --token foobar init)
  • Moved project metadata to global configuration file
  • Removed .rivet from auto-generated .gitignore
  • rivet namespace create can be called without specifying --version
  • [BREAKING] Change TELEMETRY_DISABLED env var to RIVET_TELEMETRY_DISABLED
  • Remove trailing line break from rivet token create development
  • Rename rivet site subcommands to rivet cdn (alias still supported)
  • Rename rivet image subcommands to rivet docker (alias still supported)
  • Rename dashboard subcommands to view (alias still supported)
  • Move rivet version deploy to rivet deploy
  • Move rivet version config-validate to rivet config validate
  • Move RIVET_CONCURRENT_UPLOADS env var to CLI flag on appropriate commands (env var still works)
  • Streamline rivet init experience
  • Add rivet token create public command

Fixed

  • Fix matchmaker.game_modes.*.docker.image_id falling back to matchmaker.docker.image_id
  • Install script Now installs non-prerelease GitHub releases

[v0.3.0] - 2023-12-10

Added

  • Install script (Unix) Configure installation directory by passing $BIN_DIR
  • Install script (Unix) Warning if $BIN_DIR is not in $PATH

Changed

  • Auto-generated & recommended config is now a rivet.yaml file
  • Default version names are now generated as YYYY.MM (X) format (where X is an incrementing index)
  • Merged .rivet/cloud_token and .rivet/config.toml in to unified internal .rivet/config.yaml config file
  • [BREAKING] Removed support for file formats that are not YAML, TOML, or JSON in order to simplify maintaining forward compatibility
  • [BREAKING] Throw error if both .yaml and .yml config exist

Fixed

  • Install script (Unix) Installing ARM64 jq binary on ARM-based Macs
  • Install script (Unix) Automatically create $BIN_DIR if doesn't exist, specifically on macOS Sonoma which does not provide a /usr/local/bin by default

[v0.2.0] - 2023-12-1

Added

  • Support for building OCI bundles
  • Support for LZ4 compression of builds
  • [BREAKING] Expose RIVET_API_ENDPOINT to cdn.build_command to help automate deploying to multiple clusters
  • [BREAKING] Unset RIVET_TOKEN to cdn.build_command in order to ensure the cloud token isn't accidentally baked in a build
  • image build-push command to automatically build & push an image
  • site build-push command to automatially build and push a site
  • E2E cross-platform tests in GitHub Actions

Changed

  • [BREAKING] Support new single-origin API endpoint (configured with RIVET_API_ENDPOINT environment variable or --api-endpoint flag)
  • [BREAKING] Rename RIVET_CLOUD_TOKEN environment variable to RIVET_TOKEN
  • [BREAKING] Rename --cloud-token flag to --token
  • [BREAKING] Removed RIVET_API_CLOUD_URL in favor of RIVET_API_ENDPOINT
  • [BREAKING] Updated custom games config schema
  • [BREAKING] Removed domain map from turnstile configuration, replaced with site_key and secret_key
  • Added telemetry beacon for fatal errors. Opt out with --telemetry-disabled or TELEMETRY_DISABLED=1
  • Added internal config to store api endpoint and telemetry options
  • Implemented multipart uploads for builds and sites, disable multipart uploads with _RIVET_UPLOAD_DISABLE_MULTIPART

[v0.1.4] - 2023-12-9

Added

  • Darwin ARM release artifact

Changed

  • Update cargo-dist to 0.5.0

[v0.1.3] - 2023-12-3

Changed

  • Replace Smithy-generated API library with OpenAPI-generated library in order to fix invalid certificate timestamp: UnknownLog error

[v0.1.2] - 2023-08-26

Changed

  • Added custom games + lobby state + external verification

[v0.1.1] - 2023-07-17

Changed

  • rivet deploy now gracefully falls back to the native build method if Docker Buildx is not installed

[v0.1.0] - 2023-07-17

Added

  • Unreal helper in rivet init
  • Installer for the Unreal Engine plugin with rivet unreal install-plugin or rivet init --unreal

Changed

  • Renamed rivet.version.toml to rivet.toml. All changes are backwards compatible.
  • Renamed rivet publish command to rivet deploy since this is the more commonly used alias
  • rivet token create dev now prints token in plain text

Fixed

  • Broken links to old docs
  • Docker builder now catches missing builder errors correctly for older Docker versions

[v0.0.51] - 2023-04-26

Fixed

  • Docker builder now catches missing builder errors correctly for older Docker versions

Changed

  • Remove PORT, RIVET_LOBBY_TOKEN, and RIVET_PUBLIC_TOKEN from generated .env file
  • Document development token in .env

[v0.0.50] - 2023-04-18

Changed

  • Description, homepage, and repository to Cargo.toml

Fixed

  • Incorrect package version

[v0.0.49] - 2023-04-18

Added

  • Experimental build configuration flag _RIVET_DOCKER_BUILD_METHOD can be set to buildx or native

Changed

  • Default Docker build method is now Buildx, even if the native platform is x86
  • Update dependency: rivet-api
  • Upgrade dependency: tokio 1.27
  • Removed unnecessary feature flags from tokio