---
author: ""
date: ""
paging: "%d / %d"
---

##### CONHEÇA O DH-MAKE-VIM
<br/>

Ferramenta para auxiliar desenvolvedores no empacotamento de
Plugins do Vim/Neovim para o Debian.

---

# QUEM SOU EU
<br/>

- Uso vim/neovim faz mais ou menos 8 anos
<br/>
- Engenheiro de Software pela UnB
<br/>
- Desenvolvedor na Magalu Cloud
<br/>
- Debian Developer

_cipriano@debian.org_

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar
<br/>
- Correções e funcionalidades sendo distribuídas em conjunto

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar
<br/>
- Correções e funcionalidades sendo distribuídas em conjunto
<br/>
- Plugins que exigem versões mais recentes do Neovim do que a fornecida pelo Debian

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar
<br/>
- Correções e funcionalidades sendo distribuídas em conjunto
<br/>
- Plugins que exigem versões mais recentes do Neovim do que a fornecida pelo Debian
<br/>
- Eu já faço esse trabalho sempre que preciso atualizar os plugins ou o próprio Neovim

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar
<br/>
- Correções e funcionalidades sendo distribuídas em conjunto
<br/>
- Plugins que exigem versões mais recentes do Neovim do que a fornecida pelo Debian
<br/>
- Eu já faço esse trabalho sempre que preciso atualizar os plugins ou o próprio Neovim
<br/>
- No empacotamento, podemos testar com a versão do Neovim distribuída no Debian

---

# POR QUÊ EMPACOTAR PLUGINS DO VIM?
<br/>

- Aliviar o trabalho de manutenção dos usuários
<br/>
- Ausência de releases, nem sempre é óbvio quando é seguro atualizar
<br/>
- Correções e funcionalidades sendo distribuídas em conjunto
<br/>
- Plugins que exigem versões mais recentes do Neovim do que a fornecida pelo Debian
<br/>
- Eu já faço esse trabalho sempre que preciso atualizar os plugins ou o próprio Neovim
<br/>
- No empacotamento, podemos testar com a versão do Neovim distribuída no Debian
<br/>
- Empacotar formaliza o processo e torna os benefícios disponíveis para todos.

---

# POR QUÊ IMPLEMENTAR O DH-MAKE-VIM?
<br/>

- dh_make

---

# POR QUÊ IMPLEMENTAR O DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Semelhança entre os plugins

---

# POR QUÊ IMPLEMENTAR O DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Semelhança entre os plugins
<br/>
- Verificações repetidas

---

# POR QUÊ IMPLEMENTAR O DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Semelhança entre os plugins
<br/>
- Verificações repetidas
<br/>
- Falta de releases

---

# FUNCIONALIDADES
<br/>

1. Verificação se o plugin já está no Debian

---

# FUNCIONALIDADES
<br/>

1. Verificação se o plugin já está no Debian
<br/>
2. Geração de todos os arquivos necessários

---

# FUNCIONALIDADES
<br/>

1. Verificação se o plugin já está no Debian
<br/>
2. Geração de todos os arquivos necessários
<br/>
3. Configuração predefinida, mas com a liberdade de alterá-la.

---

# DEMONSTRAÇÃO
<br/>

Empacotar o plugin which-key utilizando defaults:

```
$ dh-make-vim make https://github.com/folke/which-key.nvim
```

---

# DEMONSTRAÇÃO 2
<br/>

Empacotar o plugin which-key sem utilizar as releases:

```
$ dh-make-vim make https://github.com/folke/which-key.nvim --no-watch-tag
```

---

# DEMONSTRAÇÃO 3
<br/>

Empacotar um plugin que tem um nome fora do comum:

```
$ dh-make-vim make https://github.com/kevinhwang91/promise-async.git --source-name promise-async
```

---

# DEMONSTRAÇÃO 4
<br/>

Exemplo de mensagem de erro:

```
$ dh-make-vim make https://github.com/sindrets/diffview.nvim
```

---

# CUSTOMIZAÇÕES DISPONÍVEIS
<br/>

```
$ dh-make-vim make --help 
```

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa
<br/>
- Adicionar opção para escolher licença

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa
<br/>
- Adicionar opção para escolher licença
<br/>
- Escrever ou gerar manpages

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa
<br/>
- Adicionar opção para escolher licença
<br/>
- Escrever ou gerar manpages
<br/>
- Ajustar autocomplete

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa
<br/>
- Adicionar opção para escolher licença
<br/>
- Escrever ou gerar manpages
<br/>
- Ajustar autocomplete
<br/>
- Implementar a opção upstream-version do make

---

# PRÓXIMOS PASSOS
<br/>

- Terminar de escrever os testes
<br/>
- Implementar mais comandos
<br/>
    - Atualização de versão
    - Criação de repositório no salsa
<br/>
- Adicionar opção para escolher licença
<br/>
- Escrever ou gerar manpages
<br/>
- Ajustar autocomplete
<br/>
- Implementar novas customizações
<br/>
- Tratar outros tipos de plugin, como colorscheme

