Skip to content

Support the way to ignore Go compatibility matrix validation #5075

@sivchari

Description

@sivchari

Currently, I use Go nightly which means that Go is built from source. Here is the version which I use.

go version

go version go1.26-devel_7c8166d02d Tue Sep 30 07:38:03 2025 -0700 darwin/arm64

And then, Thought I attempted to use https://github.com/sago35/tinygo.vim/tree/main to study TinyGo, tinygo.vim threw an error that Go version is not supported since the version is in compatibility matrix.

tinygo info -json -target wioterminal
requires go version 1.19 through 1.25, got go1.26
TinyGo is a Go compiler for small places.
version: 0.39.0
usage: tinygo <command> [arguments]
commands:
                build:          compile packages and dependencies
                run:            compile and run immediately
                test:           test packages
                flash:          compile and flash to the device
                gdb:            run/flash and immediately enter GDB
                lldb:           run/flash and immediately enter LLDB
                monitor:        open communication port
                ports:          list available serial ports
                env:            list environment variables used during build
                list:           run go list using the TinyGo root
                clean:          empty cache directory (/Users/takuma.shibuya/Library/Caches/tinygo)
                targets:        list targets
                info:           show info for specified target
                version:        show version
                help:           print this help text
flags:
  -baudrate int
        baudrate of serial monitor (default 115200)
  -buildmode string
        build mode to use (default, c-shared, wasi-legacy)
  -cpuprofile string
        cpuprofile output
  -gc string
        garbage collector to use (none, leaking, conservative, custom, precise, boehm)
  -internal-dumpssa
        dump internal Go SSA
  -internal-nodwarf
        internal flag, use -no-debug instead
  -internal-printir
        print LLVM IR
  -internal-verifyir
        run extra verification steps on LLVM IR
  -interp-timeout duration
        interp optimization pass timeout (default 3m0s)
  -json
        print output in JSON format
  -ldflags string
        Go link tool compatible ldflags
  -llvm-features string
        comma separated LLVM features to enable
  -monitor
        enable serial monitor
  -no-debug
        strip debug information
  -nobounds
        do not emit bounds checks
  -ocd-commands string
        OpenOCD commands, overriding target spec (can specify multiple separated by commas)
  -ocd-output
        print OCD daemon output during debug
  -opt string
        optimization level: 0, 1, 2, s, z (default "z")
  -p int
        the number of build jobs that can run in parallel (default 16)
  -panic string
        panic strategy (print, trap) (default "print")
  -port string
        flash port (can specify multiple candidates separated by commas)
  -print-allocs string
        regular expression of functions for which heap allocations should be printed
  -print-stacks
        print stack sizes of goroutines
  -programmer string
        which hardware programmer to use
  -scheduler string
        which scheduler to use (none, tasks, cores, threads, asyncify)
  -serial string
        which serial output to use (none, uart, usb, rtt)
  -size string
        print sizes (none, short, full, html)                                                               -stack-size value
        goroutine stack size (if unknown at compile time)
  -tags value
        a space-separated list of extra build tags
  -target string
        chip/board name or JSON target specification file
  -timeout duration
        the length of time to retry locating the MSD volume to be used for flashing (default 20s)
  -work
        print the name of the temporary build directory and do not delete this directory on exit
  -x    Print commands

for more details, see https://tinygo.org/docs/reference/usage/

I know you're keeping the rule to support range of Go version, but I want the way to use TinyGo. So I propose the new flag to ignore the version.
If it's accepted, I think it's okay that you don't support the bug because it's not supported version you needed. What do you think ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestnext-releaseWill be part of next release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions