---
author: "Sérgio Cipriano"
date: ""
paging: "%d / %d"
---

##### INTRODUCING DH-MAKE-VIM
<br/>

Tool inspired by dh-make-golang and gophian that automatically creates Debian packages for Vim and Neovim plugins.

---

# WHO AM I
<br/>

- Brazilian.
<br/>
- A vim/neovim user for about 8 years.
<br/>
- Debian Developer (_cipriano@debian.org_).
<br/>
- Mentor on the Debian Brazil community.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.


---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.
<br/>
- The bug fixes and new features are mixed together making it harder to update.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.
<br/>
- The bug fixes and new features are mixed together making it harder to update.
<br/>
- Plugins sometimes expect Neovim versions that are not available on Debian.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.
<br/>
- The bug fixes and new features are mixed together making it harder to update.
<br/>
- Plugins sometimes expect Neovim versions that are not available on Debian.
<br/>
- I already need to do this work every time I update my plugins or Neovim.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.
<br/>
- The bug fixes and new features are mixed together making it harder to update.
<br/>
- Plugins sometimes expect Neovim versions that are not available on Debian.
<br/>
- I already need to do this work every time I update my plugins or Neovim.
<br/>
- Packaging formalizes the process and makes the benefits available to everyone.

---

# WHY PACKAGE VIM PLUGINS?
<br/>

- Take some of the maintenance burden off users.
<br/>
- Many Neovim plugins don't have formal releases.
<br/>
- The bug fixes and new features are mixed together making it harder to update.
<br/>
- Plugins sometimes expect Neovim versions that are not available on Debian.
<br/>
- I already need to do this work every time I update my plugins or Neovim.
<br/>
- Packaging formalizes the process and makes the benefits available to everyone.
<br/>
- Autopkgtest can help us test alongside the version of Neovim available in the archive.

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

- dh_make

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Similarity between packages

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Similarity between packages
<br/>
- Repeated manual verifications

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Similarity between packages
<br/>
- Repeated manual verifications
<br/>
- Abcense of releases

---

# WHY I WORKED ON DH-MAKE-VIM?
<br/>

- dh_make
<br/>
- Similarity between packages
<br/>
- Repeated manual verifications
<br/>
- Abcense of releases
<br/>
- It was fun.

---

# FEATURES
<br/>

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.
<br/>
2. Check for an ITP/RFP, tell you about it.

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.
<br/>
2. Check for an ITP/RFP, tell you about it.
<br/>
3. Check for an existing Salsa repo with the name of the source package.

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.
<br/>
2. Check for an ITP/RFP, tell you about it.
<br/>
3. Check for an existing Salsa repo with the name of the source package.
<br/>
4. Generate all the required files and only them.

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.
<br/>
2. Check for an ITP/RFP, tell you about it.
<br/>
3. Check for an existing Salsa repo with the name of the source package.
<br/>
4. Generate all the required files and only them.
<br/>
5. Opinionated, but customizable.

---

# FEATURES
<br/>

1. Check if the software has already been packaged for Debian,
   and whether it's in unstable, experimental or in the NEW queue.
<br/>
2. Check for an ITP/RFP, tell you about it.
<br/>
3. Check for an existing Salsa repo with the name of the source package.
<br/>
4. Generate all the required files and only them.
<br/>
5. Opinionated, but customizable.
- Choose between using a git commit as the package version or tags.

---

# DEMO
<br/>

Create a package using the default options:

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

---

# DEMO 2
<br/>

Create a package without releases:

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

---

# DEMO 3
<br/>

Packaging a plugin with a custom source name:

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

---

# DEMO 4
<br/>

Example of a warning message for RFP bug:

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

---

# DEMO 5
<br/>

Example of a warning message for ITP bug:

```
$ dh-make-vim make https://github.com/kevinhwang91/nvim-ufo
```

---

# ALL AVAILABLE OPTIONS
<br/>

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

---

# PACKAGES THAT WERE MADE USING DH-MAKE-VIM
<br/>

- neovim-alpha
- neovim-bufferline
- neovim-which-key
- neovim-toggleterm
- neovim-tokyonight

---

# NEXT STEPS
<br/>

---

# NEXT STEPS
<br/>

- Write more tests.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.
<br/>
- Write a manpage for dh-make-vim.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.
<br/>
- Write a manpage for dh-make-vim.
<br/>
- Add autocomplete.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.
<br/>
- Write a manpage for dh-make-vim.
<br/>
- Add autocomplete.
<br/>
- Add new custom options.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.
<br/>
- Write a manpage for dh-make-vim.
<br/>
- Add autocomplete.
<br/>
- Add new custom options.
<br/>
- Add support for colorscheme plugins.

---

# NEXT STEPS
<br/>

- Write more tests.
<br/>
- Add option to choose a license.
<br/>
- Write a manpage for dh-make-vim.
<br/>
- Add autocomplete.
<br/>
- Add new custom options.
<br/>
- Add support for colorscheme plugins.
<br/>
- Add more commands?
