vim-flavor 2.2.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +12 -0
- data/.github/workflows/ci.yml +35 -0
- data/.ruby-version +1 -0
- data/README.md +126 -45
- data/Rakefile +11 -0
- data/config/cucumber.yml +1 -0
- data/features/.nav +2 -1
- data/features/backward_compatibilities/flavorfile.feature +166 -0
- data/features/backward_compatibilities/lockfile.feature +22 -0
- data/features/branches/changing_tracking_branches.feature +0 -3
- data/features/branches/detect_incompatible_declarations.feature +0 -2
- data/features/branches/install.feature +0 -2
- data/features/branches/update.feature +0 -1
- data/features/caching/deployment.feature +1 -0
- data/features/flavorfile/README.md +1 -1
- data/features/flavorfile/comments.feature +0 -1
- data/features/flavorfile/groups.feature +0 -3
- data/features/flavorfile/repository_name.feature +0 -3
- data/features/flavorfile/version_constraint.feature +3 -7
- data/features/install_vim_flavor.md +6 -12
- data/features/news.md +72 -0
- data/features/philosophy.md +4 -4
- data/features/resolve_dependencies/README.md +4 -3
- data/features/resolve_dependencies/basics.feature +0 -4
- data/features/resolve_dependencies/upgrade_outdated_dependencies.feature +0 -2
- data/features/resolve_dependencies/version_conflict.feature +0 -2
- data/features/step_definitions/cli_steps.rb +6 -1
- data/features/step_definitions/dependency_steps.rb +2 -1
- data/features/step_definitions/directory_steps.rb +1 -1
- data/features/step_definitions/file_steps.rb +2 -2
- data/features/step_definitions/flavor_steps.rb +25 -9
- data/features/step_definitions/flavorfile_steps.rb +10 -1
- data/features/step_definitions/lockfile_steps.rb +14 -5
- data/features/support/env.rb +22 -12
- data/features/testing_vim_plugins/README.md +7 -6
- data/features/testing_vim_plugins/dependencies.feature +2 -3
- data/features/testing_vim_plugins/failures.feature +3 -3
- data/features/testing_vim_plugins/specifying_test_scripts.feature +3 -3
- data/features/testing_vim_plugins/typical_usage.feature +30 -7
- data/features/typical_usage/README.md +7 -7
- data/features/typical_usage/deploy_to_arbitrary_place.feature +0 -1
- data/features/typical_usage/install_vim_plugins.feature +0 -1
- data/features/typical_usage/uninstall_vim_plugins.feature +0 -1
- data/features/typical_usage/update_vim_plugins.feature +0 -3
- data/features/uninstall_vim_flavor.md +3 -4
- data/features/version_lock.feature +0 -1
- data/features/version_tag_format.feature +0 -4
- data/lib/vim-flavor/cli.rb +2 -2
- data/lib/vim-flavor/console.rb +22 -0
- data/lib/vim-flavor/facade.rb +18 -49
- data/lib/vim-flavor/flavor.rb +2 -2
- data/lib/vim-flavor/flavorfile.rb +24 -1
- data/lib/vim-flavor/lockfile.rb +15 -0
- data/lib/vim-flavor/shellutility.rb +2 -1
- data/lib/vim-flavor/stringextension.rb +3 -11
- data/lib/vim-flavor/version.rb +1 -1
- data/lib/vim-flavor.rb +1 -1
- data/spec/branchversion_spec.rb +4 -4
- data/spec/stringextension_spec.rb +31 -0
- data/vim-flavor.gemspec +8 -5
- metadata +69 -26
- data/.travis.yml +0 -7
- data/features/step_definitions/bootstrap_script_steps.rb +0 -6
- data/spec/facade_spec.rb +0 -57
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4b56f0299185327f581b7620d37b424150e44c4fbf9b644818f9a58430569116
|
4
|
+
data.tar.gz: a49bde472dcd149d79a41f4e260467cc8eb1da9865308536610667a00e50e598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9babe8f14a01142a406f0e686c9a1b67ec7bae7418db50320af0ad55c348382b34e7b2a91dd9bfb5b7aa83486f403979a1cb45f3271a9b06365fe592d055605
|
7
|
+
data.tar.gz: 3a6f954a798748573d82de17b50b7fa0a6d11621f62231005a00699e3dd8fdb65d12d474a731153822b2b40e35d51e5398b39f1610555e21e3ea7cab4508c75a
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
3
|
+
# Please see the documentation for all configuration options:
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
5
|
+
|
6
|
+
version: 2
|
7
|
+
updates:
|
8
|
+
- package-ecosystem: "bundler" # See documentation for possible values
|
9
|
+
directory: "/" # Location of package manifests
|
10
|
+
schedule:
|
11
|
+
interval: "weekly"
|
12
|
+
versioning-strategy: increase
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
schedule:
|
9
|
+
- cron: 0 0 * * *
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v2
|
16
|
+
with:
|
17
|
+
fetch-depth: 0 # t/blame.vim requires all commits.
|
18
|
+
- name: Set up Ruby
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
22
|
+
- name: Set up Vim
|
23
|
+
uses: thinca/action-setup-vim@v1
|
24
|
+
with:
|
25
|
+
vim_version: ${{ github.event_name == 'schedule' && 'head' || 'v8.2.3446' }}
|
26
|
+
vim_type: vim
|
27
|
+
download: never # For some reason 'available' doesn't build from source as a fallback.
|
28
|
+
- name: Set up Git
|
29
|
+
run: |
|
30
|
+
git config --global user.email 'ci@example.com'
|
31
|
+
git config --global user.name 'CI'
|
32
|
+
git config --global init.defaultBranch 'master'
|
33
|
+
git submodule update --init
|
34
|
+
- name: Run tests
|
35
|
+
run: rake ci
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.2
|
data/README.md
CHANGED
@@ -1,76 +1,157 @@
|
|
1
1
|
# vim-flavor, a tool to manage your favorite Vim plugins
|
2
2
|
|
3
|
-
[![
|
4
|
-
[![
|
3
|
+
[![CI](https://github.com/kana/vim-flavor/actions/workflows/ci.yml/badge.svg)](https://github.com/kana/vim-flavor/actions/workflows/ci.yml)
|
4
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/97414d95fb6d19c7fb72/maintainability)](https://codeclimate.com/github/kana/vim-flavor/maintainability)
|
5
5
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
# Getting started
|
10
10
|
|
11
|
-
|
11
|
+
## Create `Flavorfile`
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
# * vim-flavor fetches git://github.com/$USER/$REPO.git
|
16
|
-
# if the argument is written in '$USER/$REPO' format.
|
17
|
-
# * kana/vim-textobj-indent requires kana/vim-textobj-user.
|
18
|
-
# Such dependencies are automatically installed
|
19
|
-
# if the flavored plugin declares its dependencies with VimFlavor file.
|
20
|
-
flavor 'kana/vim-textobj-indent'
|
13
|
+
This file contains a set of declarations about what Vim plugins you want to
|
14
|
+
install. For example:
|
21
15
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
```ruby
|
17
|
+
# Install a Vim plugin from `https://github.com/kana/vim-textobj-indent`.
|
18
|
+
#
|
19
|
+
# Note that kana/vim-textobj-indent requires kana/vim-textobj-user.
|
20
|
+
# Such dependencies are automatically installed if the former plugin
|
21
|
+
# declares its dependencies with Flavorfile.
|
22
|
+
flavor 'kana/vim-textobj-indent'
|
26
23
|
|
27
|
-
|
28
|
-
|
29
|
-
# if the argument seems to be a URI.
|
30
|
-
flavor 'git://github.com/kana/vim-altr.git'
|
24
|
+
# Install a Vim plugin from `https://github.com/vim-scripts/fakeclip`.
|
25
|
+
flavor 'fakeclip'
|
31
26
|
|
32
|
-
|
33
|
-
|
27
|
+
# Install a Vim plugin from the specified URI.
|
28
|
+
flavor 'git://github.com/kana/vim-altr.git'
|
34
29
|
|
35
|
-
|
36
|
-
|
30
|
+
# You can also specify which version of Vim plugin should be installed.
|
31
|
+
# For example:
|
32
|
+
flavor 'kana/vim-smartword', '~> 0.1' # 0.1 or later, but older than 0.2
|
33
|
+
flavor 'kana/vim-smartchr', '~> 0.2.4' # 0.2.4 or later, but older than 0.3.0
|
34
|
+
flavor 'kana/vim-smarttill', '>= 0.3.6' # 0.3.6 or later
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
# vim-flavor, by design, requires Vim plugins to follow semantic versioning
|
37
|
+
# and to create version tags (like `v1.2.3`) in their repositories.
|
38
|
+
#
|
39
|
+
# For repositories without versioning, branches can be specified.
|
40
|
+
flavor 'chriskempson/base16-vim', branch: 'master'
|
41
|
+
```
|
41
42
|
|
42
|
-
|
43
|
-
# create VimFlavor.lock for a snapshot of all plugins and versions,
|
44
|
-
# then install the plugins and a bootstrap script into ~/.vim etc.
|
45
|
-
vim-flavor install
|
43
|
+
## Install Vim plugins (for the first time)
|
46
44
|
|
47
|
-
|
48
|
-
#
|
49
|
-
# runtime flavors/bootstrap.vim
|
50
|
-
vim vimrc
|
45
|
+
Run the following command:
|
51
46
|
|
52
|
-
|
53
|
-
|
47
|
+
```bash
|
48
|
+
vim-flavor install
|
49
|
+
```
|
54
50
|
|
55
|
-
|
56
|
-
[the documentation on relish](https://www.relishapp.com/kana/vim-flavor) or
|
57
|
-
`features/` directory for the details.
|
51
|
+
This command does the following stuffs:
|
58
52
|
|
53
|
+
1. Fetches Vim plugins declared in the `Flavorfile`.
|
54
|
+
2. Creates `Flavorfile.lock` file. It contains information about what
|
55
|
+
versions of plugins to be installed.
|
56
|
+
3. Copies the fetched plugins into `~/.vim/pack/flavors/start`, then updates
|
57
|
+
help tags for each plugin.
|
59
58
|
|
59
|
+
It's recommended to commit `Flavorfile` and `Flavorfile.lock` after
|
60
|
+
installation.
|
60
61
|
|
62
|
+
```bash
|
63
|
+
git add Flavorfile Flavorfile.lock
|
64
|
+
git commit -m 'Use vim-flavor to manage my favorite Vim plugins'
|
65
|
+
```
|
61
66
|
|
62
|
-
##
|
67
|
+
## Install Vim plugins (from another machine)
|
68
|
+
|
69
|
+
Suppose that you work with several PCs and/or servers, and you want to use the
|
70
|
+
same configuration, including Vim plugins, on all of them.
|
71
|
+
|
72
|
+
Firstly, let's synchronize your configuration files:
|
73
|
+
|
74
|
+
```bash
|
75
|
+
cd ~/your/dotfiles/repository
|
76
|
+
git pull
|
77
|
+
```
|
78
|
+
|
79
|
+
Now you have the same `Flavorfile` and `Flavorfile.lock` created by the
|
80
|
+
previous step.
|
81
|
+
|
82
|
+
Then run the following command:
|
83
|
+
|
84
|
+
```bash
|
85
|
+
vim-flavor install
|
86
|
+
```
|
87
|
+
|
88
|
+
This time `vim-flavor` installs the same versions of Vim plugins as recorded
|
89
|
+
in `Flavorfile.lock`, even if newer versions are available.
|
90
|
+
|
91
|
+
## Update Vim plugins
|
92
|
+
|
93
|
+
To update Vim plugins, run the following command:
|
94
|
+
|
95
|
+
```bash
|
96
|
+
vim-flavor update
|
97
|
+
```
|
98
|
+
|
99
|
+
This is similar to `vim-flavor install`, but vim-flavor tries checking and
|
100
|
+
installing newer versions of Vim plugins.
|
101
|
+
|
102
|
+
This command usually updates `Flavorfile.lock`. So that you have to commit it
|
103
|
+
again.
|
104
|
+
|
105
|
+
```bash
|
106
|
+
git add Flavorfile.lock
|
107
|
+
git commit -m 'Update Vim plugins'
|
108
|
+
```
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
# References
|
114
|
+
|
115
|
+
See [`features/`](./features) directory for the details.
|
116
|
+
The same [documents](https://www.relishapp.com/kana/vim-flavor) are available
|
117
|
+
also on relish.
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
# License
|
63
123
|
|
64
124
|
vim-flavor is released under the terms of MIT license.
|
65
|
-
See the LICENSE file for the details.
|
125
|
+
See the [LICENSE](./LICENSE) file for the details.
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
# Development
|
131
|
+
|
132
|
+
## Set up
|
133
|
+
|
134
|
+
1. Install [rbenv](https://github.com/rbenv/rbenv).
|
135
|
+
2. Run the following commands in your clone of vim-flavor repository:
|
136
|
+
|
137
|
+
```bash
|
138
|
+
git submodule update --init
|
139
|
+
rbenv install
|
140
|
+
bundle install
|
141
|
+
```
|
142
|
+
|
143
|
+
## Run tests
|
144
|
+
|
145
|
+
```bash
|
146
|
+
rake test
|
147
|
+
```
|
66
148
|
|
67
149
|
|
68
150
|
|
69
151
|
|
70
|
-
|
152
|
+
# Author
|
71
153
|
|
72
|
-
* [
|
73
|
-
(also known as [@kana1](http://twitter.com/kana1))
|
154
|
+
* [kana](https://github.com/kana)
|
74
155
|
|
75
156
|
|
76
157
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
|
+
task :ci => [:dump, :test]
|
5
|
+
|
6
|
+
task :dump do
|
7
|
+
sh 'vim --version'
|
8
|
+
end
|
9
|
+
|
4
10
|
task :test => [:spec, :cucumber]
|
5
11
|
|
6
12
|
task :spec do
|
@@ -10,3 +16,8 @@ end
|
|
10
16
|
task :cucumber do
|
11
17
|
sh 'bundle exec cucumber --format=progress'
|
12
18
|
end
|
19
|
+
|
20
|
+
task :update_online_documents do
|
21
|
+
# Only authorized members can push to relish.
|
22
|
+
sh 'bundle exec relish push kana/vim-flavor'
|
23
|
+
end
|
data/config/cucumber.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
default: --publish-quiet
|
data/features/.nav
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
- flavorfile:
|
12
12
|
- version_lock.feature
|
13
13
|
- caching:
|
14
|
-
- resolve_dependencies
|
14
|
+
- resolve_dependencies:
|
15
15
|
- testing_vim_plugins:
|
16
16
|
- typical_usage.feature
|
17
17
|
- dependencies.feature
|
@@ -23,3 +23,4 @@
|
|
23
23
|
- update.feature
|
24
24
|
- changing_tracking_branches.feature
|
25
25
|
- detect_incompatible_declarations.feature
|
26
|
+
- backward_compatibilities:
|
@@ -0,0 +1,166 @@
|
|
1
|
+
Feature: Flavorfile
|
2
|
+
In order to gradually update existing Vim plugins,
|
3
|
+
as a lazy Vim user,
|
4
|
+
I want to reuse Vim plugins which contain old name of flavorfiles without problems.
|
5
|
+
|
6
|
+
Scenario: User has old name of flavorfile is warned
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And an old name flavorfile with:
|
9
|
+
"""ruby
|
10
|
+
flavor '$foo_uri'
|
11
|
+
"""
|
12
|
+
When I run `vim-flavor install`
|
13
|
+
Then it should pass with template:
|
14
|
+
"""
|
15
|
+
Warning: Rename VimFlavor to Flavorfile. VimFlavor wll be ignored in future version.
|
16
|
+
Checking versions...
|
17
|
+
Use $foo_uri ... 1.0.2
|
18
|
+
Deploying plugins...
|
19
|
+
$foo_uri 1.0.2 ... done
|
20
|
+
Completed.
|
21
|
+
"""
|
22
|
+
And a lockfile is created with:
|
23
|
+
"""
|
24
|
+
$foo_uri (1.0.2)
|
25
|
+
"""
|
26
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
27
|
+
|
28
|
+
Scenario: User has both new and old name of flavorfile is warned
|
29
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
30
|
+
And a repository "bar" with versions "2.0.0 2.0.1 2.0.2"
|
31
|
+
And a flavorfile with:
|
32
|
+
"""ruby
|
33
|
+
flavor '$bar_uri'
|
34
|
+
"""
|
35
|
+
And an old name flavorfile with:
|
36
|
+
"""ruby
|
37
|
+
flavor '$foo_uri'
|
38
|
+
"""
|
39
|
+
When I run `vim-flavor install`
|
40
|
+
Then it should pass with template:
|
41
|
+
"""
|
42
|
+
Warning: Delete VimFlavor. Flavorfile is being read instead.
|
43
|
+
Checking versions...
|
44
|
+
Use $bar_uri ... 2.0.2
|
45
|
+
Deploying plugins...
|
46
|
+
$bar_uri 2.0.2 ... done
|
47
|
+
Completed.
|
48
|
+
"""
|
49
|
+
And a lockfile is created with:
|
50
|
+
"""
|
51
|
+
$bar_uri (2.0.2)
|
52
|
+
"""
|
53
|
+
And a flavor "$foo_uri" is not deployed to "$home/.vim"
|
54
|
+
And a flavor "$bar_uri" version "2.0.2" is deployed to "$home/.vim"
|
55
|
+
|
56
|
+
Scenario: Plugin contains old name of flavorfile is not warned
|
57
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2" and an old name flavorfile:
|
58
|
+
"""ruby
|
59
|
+
# No dependencies
|
60
|
+
"""
|
61
|
+
And a flavorfile with:
|
62
|
+
"""ruby
|
63
|
+
flavor '$foo_uri'
|
64
|
+
"""
|
65
|
+
When I run `vim-flavor install`
|
66
|
+
Then it should pass with template:
|
67
|
+
"""
|
68
|
+
Checking versions...
|
69
|
+
Use $foo_uri ... 1.0.2
|
70
|
+
Deploying plugins...
|
71
|
+
$foo_uri 1.0.2 ... done
|
72
|
+
Completed.
|
73
|
+
"""
|
74
|
+
And a lockfile is created with:
|
75
|
+
"""
|
76
|
+
$foo_uri (1.0.2)
|
77
|
+
"""
|
78
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
79
|
+
|
80
|
+
Scenario: Testing a Vim plugin with old name flavorfile is warned
|
81
|
+
Given a repository "kana/vim-vspec" from offline cache
|
82
|
+
And an old name flavorfile with:
|
83
|
+
"""ruby
|
84
|
+
# No dependencies
|
85
|
+
"""
|
86
|
+
And a file named "plugin/foo.vim" with:
|
87
|
+
"""vim
|
88
|
+
let g:foo = 3
|
89
|
+
"""
|
90
|
+
And a file named "t/basics.vim" with:
|
91
|
+
"""vim
|
92
|
+
" Tests are written with vim-vspec.
|
93
|
+
runtime! plugin/foo.vim
|
94
|
+
describe 'g:foo'
|
95
|
+
it 'is equal to 3'
|
96
|
+
Expect g:foo == 3
|
97
|
+
end
|
98
|
+
end
|
99
|
+
"""
|
100
|
+
When I run `vim-flavor test`
|
101
|
+
Then it should pass with regexp:
|
102
|
+
"""
|
103
|
+
-------- Preparing dependencies
|
104
|
+
Warning: Rename VimFlavor to Flavorfile. VimFlavor wll be ignored in future version.
|
105
|
+
Checking versions...
|
106
|
+
Use kana/vim-vspec ... 1\.\d+(\.\d+)?
|
107
|
+
Deploying plugins...
|
108
|
+
kana/vim-vspec 1\.\d+(\.\d+)? ... done
|
109
|
+
Completed.
|
110
|
+
-------- Testing a Vim plugin
|
111
|
+
t/basics.vim .. ok
|
112
|
+
All tests successful.
|
113
|
+
Files=1, Tests=1, \d+ wallclock secs .*
|
114
|
+
Result: PASS
|
115
|
+
"""
|
116
|
+
And a lockfile is created and matches with:
|
117
|
+
"""
|
118
|
+
kana/vim-vspec \(1\.\d+(\.\d+)?\)
|
119
|
+
"""
|
120
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/pack/flavors/start"
|
121
|
+
|
122
|
+
Scenario: Testing a Vim plugin with both new and old name flavorfile is warned
|
123
|
+
Given a repository "kana/vim-vspec" from offline cache
|
124
|
+
And a flavorfile with:
|
125
|
+
"""ruby
|
126
|
+
# No dependencies
|
127
|
+
"""
|
128
|
+
And an old name flavorfile with:
|
129
|
+
"""ruby
|
130
|
+
# No dependencies
|
131
|
+
"""
|
132
|
+
And a file named "plugin/foo.vim" with:
|
133
|
+
"""vim
|
134
|
+
let g:foo = 3
|
135
|
+
"""
|
136
|
+
And a file named "t/basics.vim" with:
|
137
|
+
"""vim
|
138
|
+
" Tests are written with vim-vspec.
|
139
|
+
runtime! plugin/foo.vim
|
140
|
+
describe 'g:foo'
|
141
|
+
it 'is equal to 3'
|
142
|
+
Expect g:foo == 3
|
143
|
+
end
|
144
|
+
end
|
145
|
+
"""
|
146
|
+
When I run `vim-flavor test`
|
147
|
+
Then it should pass with regexp:
|
148
|
+
"""
|
149
|
+
-------- Preparing dependencies
|
150
|
+
Warning: Delete VimFlavor. Flavorfile is being read instead.
|
151
|
+
Checking versions...
|
152
|
+
Use kana/vim-vspec ... 1\.\d+(\.\d+)?
|
153
|
+
Deploying plugins...
|
154
|
+
kana/vim-vspec 1\.\d+(\.\d+)? ... done
|
155
|
+
Completed.
|
156
|
+
-------- Testing a Vim plugin
|
157
|
+
t/basics.vim .. ok
|
158
|
+
All tests successful.
|
159
|
+
Files=1, Tests=1, \d+ wallclock secs .*
|
160
|
+
Result: PASS
|
161
|
+
"""
|
162
|
+
And a lockfile is created and matches with:
|
163
|
+
"""
|
164
|
+
kana/vim-vspec \(1\.\d+(\.\d+)?\)
|
165
|
+
"""
|
166
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/pack/flavors/start"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Lockfile
|
2
|
+
In order to avoid unexpected result and confusion,
|
3
|
+
as a lazy Vim user,
|
4
|
+
I want to stop vim-flavor process if obsolete file still exists.
|
5
|
+
|
6
|
+
Scenario: User has old name of lockfile
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And a flavorfile with:
|
9
|
+
"""ruby
|
10
|
+
flavor '$foo_uri'
|
11
|
+
"""
|
12
|
+
And an old name lockfile with:
|
13
|
+
"""
|
14
|
+
$foo_uri (1.0.1)
|
15
|
+
"""
|
16
|
+
When I run `vim-flavor install`
|
17
|
+
Then it should fail with template:
|
18
|
+
"""
|
19
|
+
Error: VimFlavor.lock is no longer used. Rename it to Flavorfile.lock.
|
20
|
+
"""
|
21
|
+
And a lockfile is not created
|
22
|
+
And a flavor "$foo_uri" is not deployed to "$home/.vim"
|
@@ -24,7 +24,6 @@ Feature: Changing tracking branches
|
|
24
24
|
$foo_uri $foo_rev_102 at master ... done
|
25
25
|
Completed.
|
26
26
|
"""
|
27
|
-
And a bootstrap script is created in "$home/.vim"
|
28
27
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
29
28
|
|
30
29
|
Scenario: Use a branch instead of a version
|
@@ -49,7 +48,6 @@ Feature: Changing tracking branches
|
|
49
48
|
"""
|
50
49
|
$foo_uri ($foo_rev_102 at master)
|
51
50
|
"""
|
52
|
-
And a bootstrap script is created in "$home/.vim"
|
53
51
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
54
52
|
|
55
53
|
Scenario: Use a version instead of a branch
|
@@ -74,5 +72,4 @@ Feature: Changing tracking branches
|
|
74
72
|
"""
|
75
73
|
$foo_uri (1.0.2)
|
76
74
|
"""
|
77
|
-
And a bootstrap script is created in "$home/.vim"
|
78
75
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -32,7 +32,6 @@ Feature: Detect incompatible declarations
|
|
32
32
|
$L_uri branch: experimental is required by $B_uri
|
33
33
|
Please resolve the conflict.
|
34
34
|
"""
|
35
|
-
And a bootstrap script is not created in "$home/.vim"
|
36
35
|
And a flavor "$A_uri" is not deployed to "$home/.vim"
|
37
36
|
And a flavor "$B_uri" is not deployed to "$home/.vim"
|
38
37
|
And a flavor "$L_uri" is not deployed to "$home/.vim"
|
@@ -66,7 +65,6 @@ Feature: Detect incompatible declarations
|
|
66
65
|
$L_uri ~> 0.2 is required by $B_uri
|
67
66
|
Please resolve the conflict.
|
68
67
|
"""
|
69
|
-
And a bootstrap script is not created in "$home/.vim"
|
70
68
|
And a flavor "$A_uri" is not deployed to "$home/.vim"
|
71
69
|
And a flavor "$B_uri" is not deployed to "$home/.vim"
|
72
70
|
And a flavor "$L_uri" is not deployed to "$home/.vim"
|
@@ -24,7 +24,6 @@ Feature: Install Vim plugins with specific branches
|
|
24
24
|
"""
|
25
25
|
$foo_uri ($foo_rev_102 at master)
|
26
26
|
"""
|
27
|
-
And a bootstrap script is created in "$home/.vim"
|
28
27
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
29
28
|
|
30
29
|
Scenario: Install a plugin according to a lockfile
|
@@ -47,5 +46,4 @@ Feature: Install Vim plugins with specific branches
|
|
47
46
|
$foo_uri $foo_rev_102 at master ... skipped (already deployed)
|
48
47
|
Completed.
|
49
48
|
"""
|
50
|
-
And a bootstrap script is created in "$home/.vim"
|
51
49
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Flavorfile is a DSL to declare which versions of Vim plugins to use.
|
2
2
|
Whenever `vim-flavor` is invoked to manage Vim plugins,
|
3
|
-
`vim-flavor` reads a file `
|
3
|
+
`vim-flavor` reads a file `Flavorfile` in the current working directory,
|
4
4
|
and evaluates it as a flavorfile.
|
5
5
|
|
6
6
|
|
@@ -19,7 +19,6 @@ Feature: Groups
|
|
19
19
|
"""
|
20
20
|
$foo_uri (1.2)
|
21
21
|
"""
|
22
|
-
And a bootstrap script is created in "$home/.vim"
|
23
22
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
24
23
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
25
24
|
|
@@ -35,7 +34,6 @@ Feature: Groups
|
|
35
34
|
"""
|
36
35
|
$foo_uri (1.2)
|
37
36
|
"""
|
38
|
-
And a bootstrap script is created in "$home/.vim"
|
39
37
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
40
38
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
41
39
|
|
@@ -52,6 +50,5 @@ Feature: Groups
|
|
52
50
|
And a lockfile is created with:
|
53
51
|
"""
|
54
52
|
"""
|
55
|
-
And a bootstrap script is created in "$home/.vim"
|
56
53
|
But a flavor "$foo_uri" is not deployed to "$home/.vim"
|
57
54
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
@@ -16,7 +16,6 @@ Feature: Repository name
|
|
16
16
|
"""
|
17
17
|
vspec (0.0.4)
|
18
18
|
"""
|
19
|
-
And a bootstrap script is created in "$home/.vim"
|
20
19
|
And a flavor "vspec" version "0.0.4" is deployed to "$home/.vim"
|
21
20
|
|
22
21
|
Scenario: Declare using a Vim plugin from GitHub
|
@@ -32,7 +31,6 @@ Feature: Repository name
|
|
32
31
|
"""
|
33
32
|
kana/vim-vspec (0.0.4)
|
34
33
|
"""
|
35
|
-
And a bootstrap script is created in "$home/.vim"
|
36
34
|
And a flavor "kana/vim-vspec" version "0.0.4" is deployed to "$home/.vim"
|
37
35
|
|
38
36
|
Scenario: Declare using a Vim plugin from an arbitrary URI
|
@@ -48,5 +46,4 @@ Feature: Repository name
|
|
48
46
|
"""
|
49
47
|
$vspec_uri (0.0.4)
|
50
48
|
"""
|
51
|
-
And a bootstrap script is created in "$home/.vim"
|
52
49
|
And a flavor "$vspec_uri" version "0.0.4" is deployed to "$home/.vim"
|
@@ -3,10 +3,9 @@ Feature: Version constraint
|
|
3
3
|
as a lazy Vim user,
|
4
4
|
I want to declare desirable versions of Vim plugins.
|
5
5
|
|
6
|
-
Note that vim-flavor assumes that plugins follow [
|
7
|
-
|
8
|
-
|
9
|
-
details.
|
6
|
+
Note that vim-flavor assumes that plugins follow [Semantic Versioning
|
7
|
+
2.0.0](https://semver.org/spec/v2.0.0.html), to determine compatibility of
|
8
|
+
plugins. See also [Philosophy](../philosophy) for the details.
|
10
9
|
|
11
10
|
Background:
|
12
11
|
Given a repository "foo" with versions "1.0 1.1 1.2 2.0"
|
@@ -22,7 +21,6 @@ Feature: Version constraint
|
|
22
21
|
"""
|
23
22
|
$foo_uri (2.0)
|
24
23
|
"""
|
25
|
-
And a bootstrap script is created in "$home/.vim"
|
26
24
|
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
27
25
|
|
28
26
|
Scenario: Declare using a Vim plugin not older than a specific version
|
@@ -36,7 +34,6 @@ Feature: Version constraint
|
|
36
34
|
"""
|
37
35
|
$foo_uri (2.0)
|
38
36
|
"""
|
39
|
-
And a bootstrap script is created in "$home/.vim"
|
40
37
|
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
41
38
|
|
42
39
|
Scenario: Declare using the latest and compatible version of a Vim plugin
|
@@ -50,5 +47,4 @@ Feature: Version constraint
|
|
50
47
|
"""
|
51
48
|
$foo_uri (1.2)
|
52
49
|
"""
|
53
|
-
And a bootstrap script is created in "$home/.vim"
|
54
50
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|