Skip to content

Commit

Permalink
vimPlugins: Automatic rename deprecations
Browse files Browse the repository at this point in the history
When an updated redirect results in a package name change, not just an
owner change, throw an error to warn users the package names has
changed.
  • Loading branch information
ryneeverett committed Mar 27, 2020
1 parent b886ad9 commit 7cc024b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
15 changes: 6 additions & 9 deletions pkgs/misc/vim-plugins/aliases.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,12 @@ let
(checkInPkgs n alias)))
aliases;

deprecateName = oldName: newName:
throw "${oldName} was renamed to ${newName}. Please update to ${newName}.";
in
deprecations = lib.mapAttrs (old: new:
throw "${old} was renamed to ${new}. Please update to ${new}."
) (builtins.fromJSON (builtins.readFile ./deprecated.json));

mapAliases {
in
mapAliases ({
airline = vim-airline;
alternative = a-vim; # backwards compat, added 2014-10-21
bats = bats-vim;
Expand Down Expand Up @@ -71,7 +72,6 @@ mapAliases {
ghcmod = ghcmod-vim;
goyo = goyo-vim;
Gist = vim-gist;
gist-vim = deprecateName "vim-gist" "gist-vim"; # backwards compat, added 2020-3-22
gitgutter = vim-gitgutter;
gundo = gundo-vim;
Gundo = gundo-vim; # backwards compat, added 2015-10-03
Expand Down Expand Up @@ -129,17 +129,14 @@ mapAliases {
unite = unite-vim;
UltiSnips = ultisnips;
vim-addon-vim2nix = vim2nix;
vim-jade = deprecateName "vim-pug" "vim-jade"; # backwards compat, added 2020-3-22
vimproc = vimproc-vim;
vimshell = vimshell-vim;
vinegar = vim-vinegar;
vundle = deprecateName "Vundle-vim" "vundle"; # backwards compat, added 2020-3-22
watchdogs = vim-watchdogs;
WebAPI = webapi-vim;
wombat256 = wombat256-vim; # backwards compat, added 2015-7-8
yankring = YankRing-vim;
Yankring = YankRing-vim;
youcompleteme = deprecateName "YouCompleteMe" "youcompleteme"; # backwards compat, added 2020-3-22
xterm-color-table = xterm-color-table-vim;
zeavim = zeavim-vim;
}
} // deprecations)
6 changes: 6 additions & 0 deletions pkgs/misc/vim-plugins/deprecated.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"gist-vim": "vim-gist",
"vim-jade": "vim-pug",
"vundle": "Vundle.vim",
"youcompleteme": "YouCompleteMe"
}
23 changes: 15 additions & 8 deletions pkgs/misc/vim-plugins/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
ROOT = Path(__file__).parent
DEFAULT_IN = ROOT.joinpath("vim-plugin-names")
DEFAULT_OUT = ROOT.joinpath("generated.nix")
DEPRECATED = ROOT.joinpath("deprecated.json")

import time
from functools import wraps
Expand Down Expand Up @@ -130,9 +131,6 @@ def check_for_redirect(self, url: str, req: http.client.HTTPResponse):
new_plugin = plugin_line.format(owner=new_owner, name=new_name)
self.redirect[old_plugin] = new_plugin

if new_name != self.name:
print(f"Plugin Name Changed: {self.name} -> {new_name}")

def prefetch_git(self, ref: str) -> str:
data = subprocess.check_output(
["nix-prefetch-git", "--fetch-submodules", self.url(""), ref]
Expand Down Expand Up @@ -421,20 +419,29 @@ def rewrite_input(input_file: Path, output_file: Path, redirects: dict):

if redirects:
lines = [redirects.get(line, line) for line in lines]

with open(DEPRECATED, "r") as f:
deprecations = json.load(f)
for old, new in redirects.items():
old_name = old.split("/")[1].split(" ")[0].strip("\n")
new_name = new.split("/")[1].split(" ")[0].strip("\n")
if old_name != new_name:
deprecations[old_name] = new_name
with open(DEPRECATED, "w") as f:
json.dump(deprecations, f, indent=4, sort_keys=True)

print(
f"""\
Redirects have been detected and {input_file} has been updated. Please take the
following steps:
1. Go ahead and commit just the updated expressions as you intended to do:
git add {output_file}
git commit -m "vimPlugins: Update"
2. If any of the plugin names were changed, throw an error in aliases.nix:
<oldName> = deprecateName "<oldName>" "<newName>"; # backwards compat, added YYYY-MM-DD
3. Run this script again so these changes will be reflected in the
2. Run this script again so these changes will be reflected in the
generated expressions:
./update.py
4. Commit {input_file} along with aliases and generated expressions:
git add {output_file} {input_file} aliases.nix
3. Commit {input_file} along with deprecations and generated expressions:
git add {output_file} {input_file} {DEPRECATED}
git commit -m "vimPlugins: Update redirects"
"""
)
Expand Down

0 comments on commit 7cc024b

Please sign in to comment.