- Include all files in copy paths
- Fix warnings on Elixir v1.19
- Clean up code_sync artifacts in extract_dir
- Clean up parent tmp code_sync artifacts on pool shutdown
- Add basic rate limiting retries to the FlyBackend to abide by Fly's rate limits of 1 request per second, with 3 requests per second burst.
- Add basic retries for
no capacityerrors in the FlyBackend
- Add
copy_appsoption tocode_syncto copy all apps in the code path, which is set to true whenstart_appsis true. - Support
copy_pathsfor arbitrary paths unrelated to beams apps for copying arbitrary files on boot to the runner.
copy_paths: truehas been deprecated in favor ofstart_apps: true, to copy all apps and start them. You can also passcopy_paths: trueto copy all apps without starting them. Nowcopy_pathsis reserved for copying arbitrary paths unrelated to beams apps.
- Fix idle shutdown running before code sync, causing long code syncs to shut runners down prematurely
- Fix
:compressto:code_syncraise invalid option error
- Support
:compressoption tocode_syncto control compression of:copy_pathsand:sync_beams.
- Fix beam files not being copied on first sync
- Forward
:boot_timeoutto backend options
- Optimize concurrent runner booting
- Copy sym links in
:copy_pathsand:sync_beams - Fix function error caused by anonymous functions in
:copy_pathsand:sync_beams
- Use OTP 27's
:jsonif available - Introduce
FLAME.Trackableprotocol for tracking resources - Introduce
FLAME.track_resources/3to recursively track resources on a given node
- For backend implementations, the
FLAME.Parentencoded format has changed to include more information about the parent and child. SeeFLAME.Parentmoduledoc for more information.
- Add
:code_syncpool configuration for syncing beam files and code paths to flames
- Support
link: falseonFLAME.call/3,FLAME.cast/3, andFLAME.place_child/3for opt-in allowance of long-running FLAME operations (up to:shutdown_timeout) regardless of what happens to the caller process or caller node.
- Add ability to configure custom metadata for launch FlyBackend machine
- Fix
FLAME.cast/2defaulting to boot timeout for executions
- Fix
FLAME.cast/2allowing more than allowed max_concurrency operations - Explicitly prefer local region in
FlyBackend
- Fix Pool supervisor name collisions
- Fix error on concurrent calls when runners are pending
- Fix references to incorrectly named FLAME_PARENT export
- Allow passing fly guest options to configure cpus, cpu_kind, gpu_kind, and memory_mb
Public release 🔥