Skip to content

Releases: algorandfoundation/puya

v5.8.0-rc.2

09 Mar 10:01

Choose a tag to compare

v5.8.0-rc.2 Pre-release
Pre-release

v5.8.0-rc.2 (2026-03-09)

Fix

  • use args in event signature string if present for arc-56 events (9acec46)

v5.8.0-rc.1

06 Mar 19:04

Choose a tag to compare

v5.8.0-rc.1 Pre-release
Pre-release

v5.8.0-rc.1 (2026-03-06)

Feature

  • include ARC-56 in puya service compile response (a736ee0)

  • allow eliminating round-trips like arc4.uint32 -> uint64 -> arc4.uint32 (74886e4)

  • optimise round-trip encoding of arc4 UIntN via BigUInt (a5abef4)

  • add arguments to logicsig (frontend changes) (d92856d)

    • remove safeguard from the LogicSignature AWST root node and add validate_encoding flag
    • ToCodeVisitor changes to print args
    • ModuleASTConverter changes to process validation in decorator
    • change to stubs to support args. and validation
  • add logged_assert and logged_err functions (e9dece6)

    • add functions to stubs (util namespace)
    • add log_error field to AssertExpression AWST node
    • add arc65_error function builders - add the proper ebs to the type registry
    • backend changes (IR) to support the logged error compilation path - ToCodeVisitor changes to show logged errors
  • expand box optimisations to support dynamic array pops and concat (8478b0a)

  • add new box arc4 puya lib subroutines (2c43b6a)

  • allow native Structs in arc4.emit() (ef91d05)

Fix

  • prevent events without name being added to arc56.json (38e2756)

  • prevent round-trip of arc4 UIntN where N>64 via native UInt64 from being eliminated (98ed648)

  • prevent negative source locations (cbae07b)

  • handle reference cycles which include a TYPE_CHECKING component in the correct order (8fdcf27)

  • add visitation of block body statements (f2a58d1)

Documentation

  • update docstring of size_of stating only static size types work (acf3544)

v5.7.1

23 Jan 05:00

Choose a tag to compare

v5.7.1 (2026-01-23)

Fix

  • update puyapy stubs version (f3c73a5)

v5.7.0

23 Jan 03:39

Choose a tag to compare

v5.7.0 (2026-01-23)

Added

  • A new compiler flag, -treat-warnings-as-errors or -Werror, which causes compilation to fail
    if any warnings are emitted (disabled by default).

  • Added itxn.abi_call method that returns an application call inner transaction, which can be staged as part of a dynamic group via the .stage() method.

Changed

  • Binary operations involving booleans now allow UInt64 and BigUInt on
    their complementary side.

Fixed

  • Source locations for function references now use the location of their reference instead of the
    location for their definition. This also allows these locations to have the correct source file
    attached to them.

  • Removed language server output from console.

v5.7.0-rc.1

22 Jan 20:52

Choose a tag to compare

v5.7.0-rc.1 Pre-release
Pre-release

v5.7.0-rc.1 (2026-01-22)

Feature

  • add new itxn.abi_call method to allow calls to ABI method be part of dynamic itxn group (995c7da)

  • add a treat-warnings-as-errors flag (830c1eb)

    • changes to LoggingContext to support a -werror flag

    • adding treat_warnings_as_errors flag option to puyapy and puya options

    • add flag awareness to active logging context in puya main

    • add flag to service mode _compile and explicit set to False in analyse

    add -Werror alias

    address PR comments

    cleanup comments and warning code no longer needed

Fix

  • removes pytype caching of generic types, this ensures error messages raised during WType construction are logged with the correct source location (abdc4df)

    This change does not have an observable impact on performance.

  • do not register user defined transaction types as builtins (698dcb3)

  • don't emit language server edits in console output (70d3bcf)

  • make literal not iterable error message consistent across Python versions (90623da)

Documentation

v5.6.0

23 Dec 04:21

Choose a tag to compare

v5.6.0 (2025-12-23)

Added

  • .stage() method in inner transaction classes and algopy.itxn.submit_staged function to support submitting a dynamic number of inner transactions in a group

  • Improved code generation for box operations.

Changed

  • mypy is no longer a vendored dependency, allowing use of the compiled version of mypy, which
    speeds up Python parsing times by 400-500%.

Fixed

  • Fixed index and slice operations on boxes containing FixedBytes larger than 4k to not throw box_get produced a too big byte-array error.

v5.5.0

28 Nov 04:53

Choose a tag to compare

v5.5.0 (2025-11-28)

Added

  • Added algopy.public decorator as an alias of algopy.arc4.abimethod.

  • Added an optional error-message parameter for algopy.op.err

  • Added algopy.FixedBytes that represents a bytes type with a fixed size.

  • Safety checks to ensure explicit user asserts and error conditions are preserved through optimization passes and not inadvertently eliminated or modified.

Changed

  • @subroutine decorator is now optional on private contract methods.

  • Improved code generation with bytes of known size.

Fixed

  • Fixed a critical error introduced by networkx 3.6.

Security

  • Add section on ABI type validation
  • Add SECURITY.md

v5.4.0

27 Oct 09:15

Choose a tag to compare

v5.4.0 (2025-10-27)

Added

  • Add validation for ABI method names to match ARC-4 specification (^[_A-Za-z][A-Za-z0-9_]*$).

  • Added support for configuration of language server log level and debounce interval.

v5.3.2

20 Oct 09:52

Choose a tag to compare

v5.3.2 (2025-10-20)

Fixed

  • Fixed incorrect validation for dynamic structs ending with a bool.

v5.3.1

20 Oct 04:18

Choose a tag to compare

v5.3.1 (2025-10-20)

Fix

  • correct typo in --validate-abi-return CLI option (a194faa)