Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dependency management from the todo #384

Open
marlun opened this issue Feb 10, 2014 · 9 comments
Open

Remove dependency management from the todo #384

marlun opened this issue Feb 10, 2014 · 9 comments

Comments

@marlun
Copy link
Contributor

marlun commented Feb 10, 2014

I'm suggesting that we remove "dependencies" from the Vundle TODO list in the README file and decide that dependency management is something that should be handled by more advanced plugin managers like VAM and NeoBundle.

I don't like the idea that if I tell Vundle to install one plugin it installs 2 more dependencies. If one plugin depends on another it will have to tell me and I'll make a choice to include it into my vimrc. The vimrc will actually mirror the installed plugins and I'll know for sure which plugins are installed.

@Shougo
Copy link
Contributor

Shougo commented Feb 11, 2014

Yes. This feature is too hard problem than other features.
And autoload feature with dependencies is nightmare(I had to fix many bugs in neobundle).
But to support vim-pi like plugin information file, this feature is needed...

@marlun
Copy link
Contributor Author

marlun commented Feb 11, 2014

@Shougo Could you explain what you mean with "to support vim-pi like plugin information file" some more?

Sure if we all agree that vim-pi is the new vim plugin index then Vundle should use it to search for and get information about plugins but I still don't think Vundle should manage/install dependencies.

@Shougo
Copy link
Contributor

Shougo commented Feb 11, 2014

Sure if we all agree that vim-pi is the new vim plugin index then Vundle should use it to search for and get information about plugins but I still don't think Vundle should manage/install dependencies.

Yes, Vundle can support plugin information system expect dependencies.

@Shougo Could you explain what you mean with "to support vim-pi like plugin information file" some more?

Because, other management systems like apt, yum, gem have dependencies feature.
It is not easy to search the dependencies from the plugin documentation.
VAM's author think dependencies feature is needed in plugin management system.
I agree with him. But, it is complex feature.

@marlun
Copy link
Contributor Author

marlun commented Feb 11, 2014

I don't agree for the reasons I noted in my initial post. Systems like apt, yum and gem are big and I would very much like Vundle to stay away of becoming like those. For me Vundle adds enough to make managing plugins as a user a nice experience and nothing more.

I do agree that there should be plugin managers that do handle dependencies like VAM and NeoBundle.

@Shougo
Copy link
Contributor

Shougo commented Feb 11, 2014

Yes, some people needs dependencies feature, but some people does not.
It is difficult problem. I think this feature is low priority than other features.

@jalcine
Copy link

jalcine commented Feb 11, 2014

Sure, as long it's in the TODO list.

@marlun
Copy link
Contributor Author

marlun commented Feb 11, 2014

What I'm suggesting is making it easy for Vundle and letting more advanced plugin manager handle it. Removing it from the todo would remove confusion about what to answer if people request it as a feature. If we've decided that it's not something that Vundle should handle it's easy to redirect that user to VAM or NeoBundle if they want that feature.

@gmarik it would be interesting to know what you think about removing it. If you also think it should be something that we strive to in the end even though it's a low priority I'll shut up :)

@MarcWeber
Copy link

vim-pi can be used without the dependency feature of course. vim-pi is meant to be a source of all known widely used plugins and it should assign them a unique name so that you can install plugins by name and reference dependencies by name. We can "advance" vim-pi and start mirroring all sources which are not available by git as git (like vim-scripts or in collaboration with vim-scripts) to allow vundle to install all of those without implementing dozens of ways to download packages.

@Shougo: Why is autoloading with dependencies a night mare? VAM has had this since the very beginning and it worked perfectly. I agree that things get more complicated if you allow parallel installs which is why we didn't implement it yet

@Shougo
Copy link
Contributor

Shougo commented Feb 12, 2014

@Shougo: Why is autoloading with dependencies a night mare? VAM has had this since the very beginning and it worked perfectly. I agree that things get more complicated if you allow parallel installs which is why we didn't implement it yet

Please see the below tests in neobundle.

" A
NeoBundleLazy 'Shougo/echodoc'
NeoBundle 'Shougo/unite-build', { 'depends' : 'Shougo/echodoc' }
echomsg neobundle#is_sourced('echodoc') == 1
echomsg neobundle#is_sourced('unite-build') == 1

" B
NeoBundle 'Shougo/unite-ssh',  { 'depends' : 'Shougo/unite-sudo' }
NeoBundleLazy 'Shougo/unite-sudo'
echomsg neobundle#is_sourced('unite-ssh') == 1
echomsg neobundle#is_sourced('unite-sudo') == 1

" C
NeoBundleLazy 'Shougo/vimproc', { 'depends': 'Shougo/neocomplcache' }
NeoBundle 'Shougo/neocomplcache', 'ver.8'
echomsg neobundle#is_sourced('vimproc') == 0
echomsg neobundle#is_sourced('neocomplcache') == 1

" D
NeoBundleLazy 'Shougo/vimshell', { 'depends': 'Shougo/vinarise' }
NeoBundleLazy 'Shougo/vinarise'
echomsg neobundle#is_sourced('vimshell') == 0
echomsg neobundle#is_sourced('vinarise') == 0

NeoBundle 'Shougo/vimfiler', { 'depends' : 'foo/var' }
echomsg neobundle#config#check_not_exists(['vimfiler']) ==# ['var']

NeoBundleLazy 'Shougo/unite.vim', {
      \ 'depends' : ['Shougo/unite-outline', 'basyura/TweetVim'],
      \ 'autoload' : { 'commands' : 'Unite' } }
NeoBundleLazy 'Shougo/unite-outline', {
      \ 'depends' : 'Shougo/unite.vim' }
echomsg neobundle#get('unite.vim').autoload.commands == 'Unite'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants