Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

No ExclusiveJoinTask builder class — defaultExclusiveJoinTask field unreachable

Aberta
#429 0 comentários 0 reações 0 responsáveis Ver no GitHub

@abhinavrastogi2627 já está trabalhando nisso.

Desde 5/10/2026.

  • #515 de @abhinavrastogi2627 — aberto

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
68/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
python

Direção de pesquisa

Localize os pontos de entrada existentes de JoinTask e TaskInterface e, em seguida, inspecione como eles criam um WorkflowTask e atribuem TaskType. Adicione cobertura para construir uma tarefa EXCLUSIVE_JOIN com join_on e default_exclusive_join_task; considera-se concluído quando o SDK puder serializar esses campos e o workflow resultante for executado corretamente para uma ramificação SWITCH sem correspondência.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug

Summary

Tested against: Conductor OSS 3.32.0-rc.9

TaskType.EXCLUSIVE_JOIN exists in the SDK enum but there is no ExclusiveJoinTask
builder class. More critically, the defaultExclusiveJoinTask field (which tells
the server which task to use when no SWITCH branch ran) cannot be set through any
SDK path.

Details

JoinTask always produces TaskType.JOIN, not TaskType.EXCLUSIVE_JOIN. There
is no way to build an EXCLUSIVE_JOIN task using SDK classes alone.

EXCLUSIVE_JOIN is designed for SWITCH branches (where exactly one branch executes).
Without defaultExclusiveJoinTask set, EXCLUSIVE_JOIN workflows with a branch that
doesn't match will stall.

Suggested fix

class ExclusiveJoinTask(TaskInterface):
    def __init__(self, task_ref_name: str, join_on: List[str],
                 default_exclusive_join_task: Optional[List[str]] = None):
        super().__init__(task_ref_name, TaskType.EXCLUSIVE_JOIN)
        self._join_on = join_on
        self._default = default_exclusive_join_task or []

    def to_workflow_task(self) -> WorkflowTask:
        wf = super().to_workflow_task()
        wf.join_on = self._join_on
        wf.default_exclusive_join_task = self._default
        return wf

Verified against

Conductor server 3.32.0-rc.9. EXCLUSIVE_JOIN runs correctly when built via
raw WorkflowTask with the correct fields set. The gap is purely in the SDK —
no builder class exists.

Linguagem predominante
Python
Estrelas
104
Forks
45
Merge médio
4d 18h
PRs com merge (30d)
3

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de conductor-oss/python-sdk

Todas as issues de conductor-oss/python-sdk

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.