ScriptsGuia

Versões do runtime

O Waiso roda a versão estável mais recente de cada linguagem e mantém a anterior ao lado, então uma atualização nunca quebra um script de surpresa. Um script acompanha a versão mais recente até você fixá-lo; quando sai uma versão nova, cada script passa por um ensaio nela — a última execução boa repetida com as mesmas entradas — e só muda se a repetição der certo com o mesmo formato de resultado.

7 min de leituraAntes: Escrevendo códigoAbrir no Waiso
O que você vai aprender
  • Saber em que versões cada linguagem roda
  • Acompanhar a mais recente ou fixar um script pelo selo do editor
  • Entender um ensaio e mudar um script para uma versão nova
  • Ver a versão de cada script pela aba Workers

A mais recente e a anterior, lado a lado

LinguagemRuntimeMais recenteAnterior
PythonCPython3.15 (3.15.0)3.14 (3.14.8)
TypeScript, JavaScriptBun1.4 (1.4.3)1.3 (1.3.14)
C, C++gcc / g++14— (só a mais recente)

Um script registra uma versão minor (3.14, 1.3) ou nada, que quer dizer “acompanhar a mais recente”. As versões oferecidas são as que todos os workers online têm, então o seletor nunca oferece uma versão que algum worker não conseguiria rodar. C e C++ sempre compilam com o gcc mais recente e não registram nada.

report.py
1import yaml2 3def main(title: str = "Daily report"):4    rows = [{"city": "Recife", "orders": 2}]5    return {"title": title, "yaml": yaml.safe_dump(rows)}6 7 8 9 
Python 3.15LSP
Versão da linguagem
Python 3.15 mais recenteAcompanha cada nova versão estável.
Python 3.14 anteriorFica na 3.14 até você mudar.
O selo diz a versão em que o script roda; o menu dele oferece a mais recente e a anterior.
which_runtime.py
import platform


def main():
    return {"runtime": "python", "version": platform.python_version()}
Saída esperadaSucessoA variante Python num script que acompanha a mais recente; TypeScript mostra <code>1.4.3</code>, C <code>14.x</code>
{
  "runtime": "python",
  "version": "3.15.0"
}

Acompanhe a mais recente ou fixe

  1. Abra o menu de versão

    Clique no selo do motor no rodapé do código (Alterar a versão da linguagem). O menu Versão da linguagem tem duas opções.

  2. Escolha a anterior para fixar

    Python 3.14 · anterior — Fica na 3.14 até você mudar. O script fica fixado: nenhum ensaio vai mudá-lo.

  3. Escolha a mais recente para acompanhar

    Python 3.15 · mais recente — Acompanha cada nova versão estável. Saindo de uma versão anterior fixada, isso passa antes por um ensaio (Muda depois que um ensaio passar.).

O ensaio

Um ensaio repete a última execução bem-sucedida do script — o mesmo código, as mesmas entradas — na versão nova. Ele passa quando a execução dá certo e o resultado tem o mesmo formato no primeiro nível: o mesmo tipo de valor e, para um objeto, as mesmas chaves. Aí o script muda — e, se estava publicado, o código publicado é registrado de novo como uma nova versão publicada no runtime novo, com os pacotes que o ensaio instalou. Senão, ele fica onde estava, e a falha diz o motivo (The output’s keys changed (missing total).).

  • Automático: quando sai uma versão mais nova, cada script que acompanha a mais recente é ensaiado em segundo plano, alguns por vez.
  • À mão: um script atrasado mostra 3.15 disponível no selo e um botão Mover para Python 3.15 — Executa o script na 3.15 com as entradas da última execução bem-sucedida. Ele só muda se o resultado for o mesmo.
  • Um ensaio que falhou não é repetido sozinho, e uma versão que você fixou nunca é mudada.
O que o selo dizSignificado
Ensaiando no Python 3.15…A repetição está rodando
Movido para Python 3.15.Passou; o script agora roda na 3.15
Continua no Python 3.14 — o ensaio falhou.Com o erro e Abrir a execução do ensaio
Nada para repetir — execute o script com sucesso uma vez antes.Ainda não há execução boa

Pacotes Python ainda sem build

Na versão mais nova do Python, um script não fixado instala só pacotes pré-compilados (wheels), nunca uma compilação longa a partir do código-fonte. Quando um pacote ainda não tem build para o Python mais novo, o script roda sozinho no anterior e avisa — no selo e no painel Dependências: Rodando no Python 3.14 — numpy ainda não tem build para 3.15. Quando o pacote lançar um, Mover para Python 3.15 faz o ensaio.

Todos os scripts de uma vez: a aba Workers

A aba Workers da página de projetos tem a seção Versões das linguagens — Os scripts passam para a versão mais nova depois que um ensaio passa. Para Python e Bun ela mostra quantos scripts estão na Mais nova e na Anterior, e uma lista pesquisável com as colunas Script, Versão (com a marca fixada), Último ensaio (Na fila, Executando, Passou, Falhou, Ignorado) e Erro.

  • Ensaiar todos os atrasados põe na fila um ensaio para cada script ainda na versão anterior.
  • Ensaiar de novo numa linha ensaia um script outra vez — o jeito de repetir um ensaio que falhou depois de corrigir o script.
  • C e C++ não aparecem: rodam só no gcc mais recente.

Limites

  • Só duas versões por linguagem são oferecidas: a mais recente e a minor anterior. Uma versão mais antiga não está disponível.
  • Mudar a versão exige acesso de edição ao script.
  • Um ensaio compara o formato do resultado, não os valores: um script cuja saída depende da data ou dos dados pode passar com valores diferentes.