5. Publicar release
Objetivo: entender e validar que o aluno só vê o que foi publicado.
Pré-requisito: fluxo 4 concluído.
Minor ou major — a plataforma decide quanta liberdade você tem
O diálogo de publicação abre com a lista de mudanças desde a última release, agrupada pela atividade ou seção que mudou, cada uma expansível. Abaixo dela, os dois tipos de publicação — e o que cada um significa para quem já está fazendo o curso:
| Publish as Minor | Publish as New Version (major) | |
|---|---|---|
| Versão | v1.0 → v1.1 | v1.x → v2.0 |
| Alunos existentes | recebem as mudanças | ficam na versão em que estão |
| Novas matrículas | recebem as mudanças | recebem a versão nova |
| Notas | opcional | opcional |
Quando o Minor é permitido, ele vem marcado como Recommended e pré-selecionado:

É esse o sentido da divisão. Um minor edita o curso debaixo dos pés de quem está no meio dele; um major deixa essa gente em paz e abre uma trilha nova.
Quando o minor é tirado de você
A escolha nem sempre é sua. O backend classifica cada mudança como severidade Low, Medium ou High, e uma única mudança High desabilita o Minor — a opção fica cinza com “High-impact changes require a new version” e o major aparece marcado como Required.

Severidade High quer dizer: essa mudança pode invalidar progresso que um aluno já fez.
| Categoria | Mudanças que forçam versão nova |
|---|---|
| Configurações do curso | completion settings, certificate settings, recurrence settings |
| Estrutura | estrutura do outline alterada, atividade removida, lista de atividades substituída |
| Questões | questões adicionadas, removidas ou modificadas num quiz ou survey |
| Nota | evaluation settings, regra de aprovação, quem entrega |
| Prazos | prazo alterado, política de atraso alterada |
| Blocos | blocos removidos de uma atividade |
| Primeira publicação | não existe versão anterior para ser minor em relação a |
Todo o resto — bloco novo, texto editado, atividade nova, módulo renomeado — fica em Low ou Medium e mantém o Minor disponível. Os dois prints acima são do mesmo curso: um bloco de texto editado, depois uma atividade removida.
A gaveta de versões
O ícone de ramo no cabeçalho do workspace abre o Course Releases — as versões publicadas, da mais nova para a mais antiga. A atual aparece como um cartão: versão, selo ACTIVE, data em que foi congelada, quem publicou, e quantos alunos estão matriculados nela. Um link View all releases abre a página completa.

Essa contagem de matriculados é o número para ler antes de publicar. Ela diz quantas pessoas um publish minor afetaria, e quantas um major deixaria para trás na versão antiga.
Cada linha de release tem três ações:
| Ação | O que faz |
|---|---|
| View | abre o conteúdo daquela release em somente leitura — o curso exatamente como os alunos daquela versão veem |
| Duplicate | cria um curso novo semeado a partir daquela release, sem tocar neste. É também assim que se volta a uma major anterior |
| Archive | aposenta a release. Oferecida na ativa, e recusada enquanto ainda houver matrícula dependendo dela |
Abrir uma release mostra também a lista de mudanças dela — o que entrou naquela versão, separado do histórico de mudanças do rascunho.
Histórico de mudanças
O relógio no cabeçalho do workspace abre o Change History — todo save que o curso já teve, do mais novo para o mais antigo, agrupado por dia.

Cada linha nomeia o que mudou (“Block added”, “‘New item’ added”), quando, e quem fez, e expande para o detalhe. Dois caminhos de volta:
| Ação | Onde | O que faz |
|---|---|---|
| Undo | só na entrada mais nova | descarta a mudança mais recente e reaplica o estado anterior |
| Reverter para este ponto | qualquer entrada mais antiga | rebobina o curso até aquele snapshot e descarta tudo que é mais novo |
Reverter pede confirmação, e é mão única — não existe refazer.
O histórico não alcança antes da última major
O revert não reaplica o curso desde o começo. Ele parte do conteúdo da release major atual e reaplica só as mudanças feitas depois daquela publicação, até o ponto que você escolheu.
Ou seja, a janela alcançável é: tudo desde a última publicação major, e nada antes dela. A linha do tempo continua listando entradas mais antigas — elas são o registro do que aconteceu — mas reverter para uma delas te leva ao conteúdo da release atual, não àquele estado antigo. É o desenho, não é perda de dado.
Um curso nunca publicado não tem essa fronteira: todo o histórico dele é alcançável, porque não existe release de onde partir.
Para voltar a uma major anterior, não use o histórico — duplique a partir daquela release na gaveta de versões acima.
Reverter restaura conteúdo, não identidade
É a parte que parece bug e não é. Um revert restaura o conteúdo do curso: atividades e seus blocos, o outline, os recursos, o tipo e as configurações release-pinned.
Ele deixa de propósito os campos course-wide exatamente como estão:
| Revertido | Intocado |
|---|---|
| Atividades, blocos, outline, recursos | Título, descrição, imagem de capa |
| Tipo do curso | Categoria, autores |
| Configurações release-pinned — progressão, conclusão, certificado, CRC | Slug, agenda e recorrência, registration key, reference code |
É a mesma divisão course-wide do diálogo de configurações: esses campos valem ao vivo para todo mundo, então um revert não pode puxar eles para trás.
A interface não avisa nada disso. Sem alerta, sem texto no diálogo — o comportamento é intencional mas silencioso, então quem encontra pela primeira vez lê como revert parcial. Não é.
Passos
- Antes de publicar, abra o preview do curso.
- Publique a primeira release. Ela tem que ser major — não há do que ser minor.
- Edite um texto numa lição. Abra o Publish: Minor disponível e Recommended.
- Cancele. Agora remova uma atividade. Abra o Publish de novo: Minor travado, major Required.
- Publique como major e veja a versão pular para o próximo número inteiro.
- Abra a gaveta de versões e confira que a release nova está ACTIVE.
- Abra o Change History, desfaça a entrada mais nova, depois reverta para um ponto anterior.
O que verificar
- A lista de mudanças bate com o que você realmente mudou — sem entrada fantasma, sem falta.
- Edição de baixo impacto mantém o Minor ligado; a de alto impacto desabilita, sempre.
- A severidade é decidida pela mudança em si, não por quantas mudanças existem.
- Depois de um publish minor, um aluno já matriculado vê a mudança; depois de um major, esse mesmo aluno não vê.
- Os números de versão avançam certo: minor sobe o segundo número, major sobe o primeiro e zera o segundo.
- O selo ACTIVE fica em exatamente uma release, e a contagem de matriculados dela bate com a lista de matrículas.
- View renderiza a release em somente leitura; Duplicate produz um curso separado; Archive é recusada enquanto ainda houver aluno naquela release.
- Undo é oferecido só na entrada mais nova do histórico.
- Reverter para um ponto depois da última major cai exatamente ali; antes dela cai no conteúdo da release atual — é esperado.
- Depois do revert, título, capa, categoria, autores e slug seguem inalterados.
- As release notes são opcionais nos dois tipos — mas não espere vê-las em lugar nenhum depois; é uma lacuna conhecida, não é bug seu.
Onde costuma quebrar
- Um diff mostrando mudança que você não fez, ou escondendo a que você fez.
- Minor continuar disponível depois de uma mudança de alto impacto — essa vale reportar alto.
- Publicar duas vezes seguidas e criar release duplicada.
- O selo de status do curso divergindo da release real.