Closed marcelosecate closed 4 years ago
Hoje não existe.
Está na trilha de desenvolver esta funcionalidade? Poder configurar somente mais novos e/ou ver quais atualizados no log de saída?
Precisa ser feito, mais hoje não esta com prioridade.
@killerall Qual é a tratativa padrão do plugin? Aplicar como Somente atualizados ou Todos os fontes?
Outra dúvida que tenho diz respeito sobre a forma de aplicação do patch. Como o plugin exige apenas o caminho da pasta do Smartclient e a existência do executável appre.exe o mesmo deve utilizar o mesmo método de compilação e aplicação de patches que o DevStudio, correto?
Acontece que já tive problemas com alguns patches liberados pela TOTVS onde aplicando pelo DevStudio o mesmo não funcionava. Depois de algumas horas tentando desvendar o problema resolvi aplicar pelo TDS para testar e, não para minha surpresa, funcionou! Desde então utilizo apenas o TDS para aplicação de patches.
Você tem alguma informação a respeito deste meu relato?
Hoje meu ambiente de desenvolvimento se baseia no Sublime Text 3 com uma build que utiliza o TDS Linha de Comando (tdscli) para compilação de fontes. Entretanto na aplicação de patches e realização de debugs uso o próprio TDS, apesar do primeiro também ser suportado pelo tdscli.
Como estou migrando para o VS Code por trabalhar com desenvolvimento web gostaria de utilizá-lo também para o ADVPL, ainda mais devido ao mesmo não necessitar do TDS instalado para compilação e debug.
@tembra Ele atualiza sempre Todos os fontes.
O DEVStudio foi descontinuado até onde sei, e os appsrv novos não permitem a conexão entre ele e Devstudio. O suporte do Advpl no vscode escrevi do zero, utilizando a api do appsrv disponível para compilar, debugar e aplicar e gerar path.
@killerall IMHO, acredito que a opção default deveria ser "Somente os atualizados" para não gerar maiores problemas.
O DevStudio ainda conecta com o último AppServer disponibilizado para download no site da TOTVS. Mas realmente é muito provável que esta compatibilidade deixe de existir com o lançamento do AppServer Lobo-Guará, afinal ele pode ser considerado um divisor de águas e a TOTVS já vem avisando a algum tempo que tiraria esta comunicação, inclusive com mensagens durante a abertura do DevStudio.
Como você citou ali em cima que não está na lista de prioridades esta funcionalidade, pensei em contribuir para o projeto enviando um PR. Entretanto verifiquei que você utiliza um Bridge o qual não possui o código fonte no projeto. Neste caso o Bridge deve suportar esta opção.
Para obter todos os fontes do RPO você utiliza o argumento --getMap
no Bridge. Este argumento é apenas do tipo true/false ou está pronto para receber um valor, como por exemplo, quais funções quero obter os dados do RPO?
A ideia seria executar o --patchInfo
seguido do --getMap
, onde neste último buscaria apenas pelos fontes retornados no primeiro. Então faria a comparação se existirem fontes mais novos no RPO e deixando o usuário realizar a escolha através do prompt. No final o Bridge teria que ser modificado para suportar um novo argumento como --patchApplyAll
de uso conjunto com o --patchApply
. Se este argumento for passado, atualiza todos os fontes, caso contrário somente os atualizados.
Talvez desta forma iria requerer uma mudança mínima no Bridge. Mas o ideal é que toda esta tratativa seja feita diretamente no Bridge, pois assim não haveria perda de tempo executando o encadeamento de comandos (Node > Bridge > AppServer > Bridge > Node) várias vezes, uma para cada argumento acima relatado.
Você pretende disponibilizar o código-fonte do Bridge ou de nada adiantaria uma vez que não temos conhecimento da API de comunicação do AppServer ?
@tembra O desenvolvimento da extensão nunca teve a intenção de substitur como um todo o TDS, concordo que para aplicação de path em ambiente de produção seria mais correro mesmo somente os atualizados. Porem como o foco sempre foi o desenvolvedor aqui, e não o administrador do sistema, eu tomei esse rumo. Sobre contribuir nesse ponto em especifico, acho que não é necessario fazer toda essa volta, para implementar isso. Principalmente no bridge. A parte mais trabalhosa é configurar tudo isso na extensão em typescript mesmo, dando opção de cada coisa. (Caso queira-se fazer igual ao TDS, ao aplicar e der divergencia). Se tiver interesse em fazer a parte em ts, posso ver como alterar o bridge. []s
@killerall Entendo, compreendo e concordo com o objetivo. 😄
Entretanto sempre "nas pontas" os desenvolvedores são os administradores também hehehe.
Como você disse, e eu também citei na minha resposta, se podermos mudar o Bridge fica bem mais tranquilo fazer o TS se adaptar a ele.
Dito isto, posso fazer sim a mudança no TS. Basta você modificar o Bridge para tal ação.
Segue abaixo minha sugestão:
advpl.patchApplyType
com os valores possíveis all
e newest
.--patchApplyType=
com um dos valores possíveis (all
/newest
) conforme escolha do usuário.Resumindo, o Bridge irá forçar a aplicação do patch da forma escolhida, seja devido a configuração do advpl.patchApplyType
no ambiente ou devido ao argumento --patchApplyType=
ter sido passado a ele diretamente. Caso contrário ele deverá fazer a análise das divergências e, se encontrar, retorná-las.
Me diga o que acha deste processo.
Bom dia, apesar deste assunte ser um pouco antigo, gostaria de colocar a minha dúvida:
Hoje, na aplicação das patches, só aplica os fontes mais atuais?
Grato.
Bom dia, Não, ele continua aplicando todos os fontes.
@killerall se você conseguir mudar o Bridge para retornar a lista de divergências, e também para aceitar o parâmetro --patchApplyType
conforme descrito acima, eu faço as modificações no TS.
Alguma previsão para este?
Por enquanto não.
Implementado e liberado na versão 0.14.2
Qual a configuração, para que na aplicação do patch reconhecer apenas fontes novos ou atualizados?