vim-flavor 2.2.2 → 4.0.2
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/.gitmodules +2 -2
- data/.ruby-version +1 -0
- data/CHANGELOG.md +178 -0
- data/README.md +133 -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 +2 -5
- data/features/flavorfile/version_constraint.feature +3 -7
- data/features/install_vim_flavor.md +6 -12
- data/features/news.md +1 -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 +14 -15
- data/features/testing_vim_plugins/failures.feature +6 -6
- data/features/testing_vim_plugins/specifying_test_scripts.feature +12 -12
- data/features/testing_vim_plugins/typical_usage.feature +33 -10
- 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/env.rb +1 -1
- data/lib/vim-flavor/facade.rb +17 -48
- data/lib/vim-flavor/flavor.rb +1 -1
- data/lib/vim-flavor/flavorfile.rb +24 -1
- data/lib/vim-flavor/lockfile.rb +16 -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 +33 -2
- data/vim-flavor.gemspec +8 -5
- metadata +70 -26
- data/.travis.yml +0 -7
- data/features/news.md +0 -65
- 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: 75d0bb94ee0f8229e9d2500cdd40d17315585d4fe0d5fa70b3f3ae2fa2216dda
|
4
|
+
data.tar.gz: 02a54ee18922bb471666736b55b4bc783b9581b1ff35b94f5534ce9f91051a0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ad9d76f9f2fc93b088cc2b8f9cecf5d351f027cead304e42adbd60d04ff567b4a767249f81b56c42e157fdf123ab3a280d37920efc4fa7e290790f2dbdf1187
|
7
|
+
data.tar.gz: 535d9dc0232e83c642afce3d6a608875738021ddbd12f113a64b7b4e99ed7fa3722f8772161bee025facaef3eeb42fb338fce9c9abb0fdb4255ced75ac94c2a6
|
@@ -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
|
+
submodules: true
|
19
|
+
- name: Set up Ruby
|
20
|
+
uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
23
|
+
- name: Set up Vim
|
24
|
+
uses: thinca/action-setup-vim@v1
|
25
|
+
with:
|
26
|
+
vim_version: ${{ github.event_name == 'schedule' && 'head' || 'v8.2.3446' }}
|
27
|
+
vim_type: vim
|
28
|
+
download: never # For some reason 'available' doesn't build from source as a fallback.
|
29
|
+
- name: Set up Git
|
30
|
+
run: |
|
31
|
+
git config --global user.email 'ci@example.com'
|
32
|
+
git config --global user.name 'CI'
|
33
|
+
git config --global init.defaultBranch 'master'
|
34
|
+
- name: Run tests
|
35
|
+
run: rake ci
|
data/.gitmodules
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[submodule "vendor/kana/vim-vspec"]
|
2
2
|
path = vendor/kana/vim-vspec
|
3
|
-
url =
|
3
|
+
url = https://github.com/kana/vim-vspec
|
4
4
|
[submodule "vendor/kana/vim-textobj-user"]
|
5
5
|
path = vendor/kana/vim-textobj-user
|
6
|
-
url =
|
6
|
+
url = https://github.com/kana/vim-textobj-user
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.2
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
## [Unreleased](https://github.com/kana/vim-flavor/compare/v4.0.2...master)
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
## [4.0.2](https://github.com/kana/vim-flavor/compare/v4.0.1...v4.0.2) - 2022-01-11
|
17
|
+
|
18
|
+
### Fixed
|
19
|
+
|
20
|
+
* Remove deprecated usage of `.exists?` style methods ([#66](https://github.com/kana/vim-flavor/pull/66))
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
## [4.0.1](https://github.com/kana/vim-flavor/compare/v4.0.0...v4.0.1) - 2021-11-02
|
26
|
+
|
27
|
+
### Changed
|
28
|
+
|
29
|
+
* **BREAKING**: Use `https://github.com/...` instead of `git://github.com/...`
|
30
|
+
to clone Vim plugin repositories. This change is required because
|
31
|
+
[GitHub deprecates `git://`](https://github.blog/2021-09-01-improving-git-protocol-security-github/)
|
32
|
+
since 2021-11-02.
|
33
|
+
|
34
|
+
This is a breaking change if you installed Vim plugins with vim-flavor v4.0.0
|
35
|
+
or older. You'll see the following error in that case:
|
36
|
+
|
37
|
+
fatal: remote error:
|
38
|
+
The unauthenticated git protocol on port 9418 is no longer supported.
|
39
|
+
|
40
|
+
There are two ways to fix this errors:
|
41
|
+
|
42
|
+
(A) Delete local clones:
|
43
|
+
|
44
|
+
rm -rf ~/.vim-flavor
|
45
|
+
|
46
|
+
(B) Change `remote.origin.url` of each local clone:
|
47
|
+
|
48
|
+
for d in ~/.vim-flavor/repos/*/
|
49
|
+
do
|
50
|
+
cd "$d" &&
|
51
|
+
git config remote.origin.url "$(git config remote.origin.url | sed 's!^git://!https://!')"
|
52
|
+
done
|
53
|
+
|
54
|
+
### Fixed
|
55
|
+
|
56
|
+
- Update some tests not to fail with `vX.X.X` style version tags.
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
## [4.0.0](https://github.com/kana/vim-flavor/compare/v3.0.0...v4.0.0) - 2021-09-22
|
62
|
+
|
63
|
+
### Changed
|
64
|
+
|
65
|
+
* **BREAKING**: Ruby 3.0 or later is required now.
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
## [3.0.0](https://github.com/kana/vim-flavor/compare/v2.2.2...v3.0.0) - 2018-03-24
|
71
|
+
|
72
|
+
### Improved
|
73
|
+
|
74
|
+
* Steps to start using vim-flavor are simplified. Especially, it is not
|
75
|
+
necessary to edit vimrc.
|
76
|
+
|
77
|
+
### Changed
|
78
|
+
|
79
|
+
* **BREAKING**: Vim 8.0 or later is required now.
|
80
|
+
* **BREAKING**: Deployment format is changed. It might be necessary to
|
81
|
+
manually delete some directories and files. See also the follwoing migration
|
82
|
+
guide.
|
83
|
+
* The name of configuration file is changed.
|
84
|
+
* Old name is `VimFlavor`.
|
85
|
+
* New name is `Flavorfile`.
|
86
|
+
* Note that old name is still supported for backward compatibility. Old
|
87
|
+
name file is used if there is no new name file. But it is highly
|
88
|
+
recommended to rename.
|
89
|
+
* The name of lock file is changed.
|
90
|
+
* Old name is `VimFlavor.lock`.
|
91
|
+
* New name is `Flavorfile.lock`.
|
92
|
+
* To avoid unexpected result and confusion, vim-flavor stops its process as
|
93
|
+
soon as possible if old name lockfile exists.
|
94
|
+
|
95
|
+
### Migration guide from version 2
|
96
|
+
|
97
|
+
* Delete `~/.vim/flavors` directory.
|
98
|
+
* Delete `runtime flavors/bootstrap.vim` line from your vimrc.
|
99
|
+
* In your dotfiles repository:
|
100
|
+
* Rename `VimFlavor` as `Flavorfile`.
|
101
|
+
* Rename `VimFlavor.lock` as `Flavorfile.lock`.
|
102
|
+
* If you use vim-flavor for Vim plugin development, do the following steps in
|
103
|
+
that Vim plugin repository:
|
104
|
+
* Update `Gemfile` to uses vim-flavor 3.0 or later,
|
105
|
+
e.g., `gem 'vim-flavor', '~> 3.0'`.
|
106
|
+
* Rename `VimFlavor` as `Flavorfile`.
|
107
|
+
* Delete `.vim-flavor` directory. It is used to stash runtime dependencies to
|
108
|
+
run tests for your Vim plugin.
|
109
|
+
* Note that you must not commit `Flavorfile.lock` for your Vim plugin. It
|
110
|
+
makes your plugin hard to use with other plugins.
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
## [2.2.2](https://github.com/kana/vim-flavor/compare/v2.2.1...v2.2.2) - 2018-01-31
|
116
|
+
|
117
|
+
### Fixed
|
118
|
+
|
119
|
+
* Fixed `install`, `update` and `test` to work even if these commands are
|
120
|
+
invoked from non-bash shell.
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
## [2.2.1](https://github.com/kana/vim-flavor/compare/v2.2.0...v2.2.1) - 2015-04-24
|
126
|
+
|
127
|
+
### Fixed
|
128
|
+
|
129
|
+
* Fixed not to fail fetching repositories which have non-fastforward updates.
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
## [2.2.0](https://github.com/kana/vim-flavor/compare/v2.1.1...v2.2.0) - 2015-04-18
|
135
|
+
|
136
|
+
### Improved
|
137
|
+
|
138
|
+
* `test` runs `*.vim` and `*.t` in a single step, to get a simplified result.
|
139
|
+
* `test` uses [vim-vspec](https://github.com/kana/vim-vspec) 1.5 or later by
|
140
|
+
default.
|
141
|
+
* `test` supports `--update-dependencies` to update dependencies before running
|
142
|
+
tests.
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
## [2.1.1](https://github.com/kana/vim-flavor/compare/2.1.0...v2.1.1) - 2015-02-25
|
148
|
+
|
149
|
+
### Improved
|
150
|
+
|
151
|
+
* `install` and `update` skip checking versions of plugins which are
|
152
|
+
development dependencies.
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
## [2.1.0](https://github.com/kana/vim-flavor/compare/2.0.0...2.1.0) - 2014-04-19
|
158
|
+
|
159
|
+
### Improved
|
160
|
+
|
161
|
+
* `update` command is added. It is an alias of existing `upgrade` command.
|
162
|
+
Now it is recommended to use `update` rather than `upgrade`.
|
163
|
+
`upgrade` will be removed in a future version.
|
164
|
+
* `update` and `upgrade` learned to update specific plugins if repository names
|
165
|
+
are given as command-line arguments.
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
## [2.0.0](https://github.com/kana/vim-flavor/compare/1.1.5...2.0.0) - 2014-03-10
|
171
|
+
|
172
|
+
### Improved
|
173
|
+
|
174
|
+
* [Branches](./branches) are supported.
|
175
|
+
|
176
|
+
### Changed
|
177
|
+
|
178
|
+
* **BREAKING**: Ruby 2.0.0 or later is required now.
|
data/README.md
CHANGED
@@ -1,76 +1,164 @@
|
|
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 'https://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
|
+
# Changelog
|
123
|
+
|
124
|
+
See [CHANGELOG.md](./CHANGELOG.md).
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
# License
|
63
130
|
|
64
131
|
vim-flavor is released under the terms of MIT license.
|
65
|
-
See the LICENSE file for the details.
|
132
|
+
See the [LICENSE](./LICENSE) file for the details.
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
# Development
|
138
|
+
|
139
|
+
## Set up
|
140
|
+
|
141
|
+
1. Install [rbenv](https://github.com/rbenv/rbenv).
|
142
|
+
2. Run the following commands in your clone of vim-flavor repository:
|
143
|
+
|
144
|
+
```bash
|
145
|
+
git submodule update --init
|
146
|
+
rbenv install
|
147
|
+
bundle install
|
148
|
+
```
|
149
|
+
|
150
|
+
## Run tests
|
151
|
+
|
152
|
+
```bash
|
153
|
+
rake test
|
154
|
+
```
|
66
155
|
|
67
156
|
|
68
157
|
|
69
158
|
|
70
|
-
|
159
|
+
# Author
|
71
160
|
|
72
|
-
* [
|
73
|
-
(also known as [@kana1](http://twitter.com/kana1))
|
161
|
+
* [kana](https://github.com/kana)
|
74
162
|
|
75
163
|
|
76
164
|
|
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 ... v?\d+\.\d+(\.\d+)?
|
107
|
+
Deploying plugins...
|
108
|
+
kana/vim-vspec v?\d+.\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 \(v?\d+.\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 ... v?\d+.\d+(\.\d+)?
|
153
|
+
Deploying plugins...
|
154
|
+
kana/vim-vspec v?\d+.\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 \(v?\d+.\d+(\.\d+)?\)
|
165
|
+
"""
|
166
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/pack/flavors/start"
|