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

Add a suggest attribute #32

Open
sroze opened this issue Jun 3, 2014 · 7 comments
Open

Add a suggest attribute #32

sroze opened this issue Jun 3, 2014 · 7 comments

Comments

@sroze
Copy link

sroze commented Jun 3, 2014

I think that it could be interesting to add a suggest attribute to invite users to install other packages.

For instance, I'm developing an AngularJS module that could rely on different other modules if they're in the $injector. Suggesting user to install other modules in addition of the documentation could be great !

@sindresorhus
Copy link
Contributor

I would rather see a more generic field for notes of any kind. Could be a suggestion like you request or a note about major changes, or requesting a maintainer.

@sheerun
Copy link
Contributor

sheerun commented Jun 3, 2014

@sindresorhus gemspec supports "post_install_message" field.

@sroze
Copy link
Author

sroze commented Jun 3, 2014

@sindresorhus I disagree with you: using a suggest, formatted like dependencies, allows to don't show these suggestions if module is already installed for instance.

@sindresorhus
Copy link
Contributor

@sroze That's too specific to your use-case and is most likely not happening. With something generic we could cover a lot of use-cases with only one property note.

@sagikazarmark
Copy link

In composer it makes perfect sense to have an attribute like this, since OOP makes it possible to break your code into separate units which can be completely optional. IMO In case of bower projects it is not really the case.

@mbrodala
Copy link

mbrodala commented Jun 4, 2015

@sagikazarmark I'd object here. Let's take the bower.json of alpaca as example:

    "dependencies": {
        "ace-builds": "1.1.7",
        "blueimp-canvas-to-blob": "2.1.1",
        "blueimp-load-image": "1.13.0",
        "blueimp-tmpl": "2.5.4",
        "bootstrap": "3.3.2",
        "bootstrap-multiselect": "0.9.9",
        "ckeditor": "4.4.1",
        "datatables": "1.10.5",
        "datatables-plugins": "https://github.com/DataTables/Plugins.git",
        "eonasdan-bootstrap-datetimepicker": "4.0.0",
        "google-code-prettify": "1.0.3",
        "handlebars": "3.0.3",
        "handsontable": "0.11.4",
        "jquery": "1.11.1",
        "jquery-file-upload": "9.8.0",
        "jquery-hashchange": "https://github.com/gseguin/jquery-hashchange.git",
        "jquery-maskedinput": "1.3.1",
        "jquery-mobile-bower": "1.4.2",
        "jquery-price-format": "2.0.0",
        "jquery-ui": "1.11.2",
        "jqueryui-timepicker-addon": "1.5.0",
        "js-beautify": "1.5.4",
        "json3": "3.3.2",
        "moment": "2.8.3",
        "respond": "1.4.2",
        "tinymce": "4.1.7",
        "typeahead.js": "0.10.5"
    },

Now compare this with the installation instructions from their project page:

<!-- dependencies (jquery, handlebars and bootstrap) -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
<link type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>

It should be clear by now that from the list above only jquery, handlebars and bootstrap are real dependencies, everything else is a suggestion to get more out of the package but you are perfectly fine without them and a limited functionality. But since bower only supports require, that's the only option they had to let users know about the other packages.

If all remaining dependencies could be specified in a suggest section, the user could decide whether he really wants to download them or not. With bowers excellent CLI this could even be interactive.

@sagikazarmark
Copy link

First of all: thanks for pointing me to alpaca, it is really interesting.

Secondly: you are right. I think bower allows to manage a more wider set of projects since it is less coupled to any specific language (unlike composer which is somewhat part of the application architecture as well).

However it is also true that while in PHP it is possible to have dependencies in code which can be turned into a package dependency (by suggesting it), in bower related projects it is not that simple. So I see the potential in a suggest keyword in bower, but it is less specific than in composer.

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

No branches or pull requests

5 participants