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

Dependency management > Bower #6

Open
addyosmani opened this issue Dec 26, 2013 · 19 comments
Open

Dependency management > Bower #6

addyosmani opened this issue Dec 26, 2013 · 19 comments
Assignees
Labels

Comments

@addyosmani
Copy link
Member

Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management. Chapter ideas:

  • Installation
  • Discovering packages / search
  • Installing packages
  • Updating and uninstalling packages
  • Using packages
  • Publishing packages
  • Other Bower pro-tips
@0x-r4bbit
Copy link
Contributor

@addyosmani Hey, maybe I can help out on this one?

@sindresorhus
Copy link
Contributor

Pasting my braindump from oksoclap:

  • Bower best practices
  • Checking in deps vs not
  • How to make it fit into your older dev system
  • How it is different from npm: http://stackoverflow.com/questions/18641899/difference-between-bower-and-npm/18652918#18652918
  • Using Bower with RequireJS
  • How Bower works. Flat dep tree. Uses git. Unopinionated. git tag to release a new version. How the current registry is just a simple alias system. We also need to warn them that a lot of packages might not work correctly because of missing bower.json, and ways to work around that, like forking and fixing, and asking the author to include a bower.json.
  • Semver versioning
  • Creating a Bower package. Should include built, but not minified assets. And why. bower init. Ignoring unneeded files (!). 
  • Bower isn't just JS. Whatever assets; CSS, HTML, templates, etc.
  • bower link during development
  • Why everything is put in bower_components, and why it's a good thing. We need to teach them not to fight it.
  • How you can use Bower behind a proxy.
  • How you can use Bower with only HTTPS instead of git://, since git:// is blocked in some workplaces: http://stackoverflow.com/questions/15669091/bower-install-using-only-https/15684898#15684898
  • How you can set up your own internal Bower registry. And even use both central and your own.
  • Using the Bower API to create tools using Bower.
  • "command not found": http://stackoverflow.com/questions/15846076/command-not-found-after-installation/15850125#15850125 (a lot of people get this)
  • Some tips and tricks: like installing a specific commit/branch, how powerful the
  • Integrate Bower with the Rails asset pipeline.
  • Explain the flat dependency structure and why it's a good thing. Eg having multiple version would be bad. Also need to explain the resolutions key.
  • The future of Bower and what's being discussed. Like wycats proposed better integration with ES6 modules and AMD. Another important piece is the server rewrite. These two things will solve most of the current painpoints with Bower.

@addyosmani
Copy link
Member Author

@PascalPrecht that would be amazing. What do you think of the awesomely thorough list from @sindresorhus above? I imagine we wouldn't capture everything here from the get go but the important high-level points. Wdyt?

@0x-r4bbit
Copy link
Contributor

@addyosmani So this is the outline I could imagine by picking points from yours and Sindre's list:

  • What is Bower? - short introduction to give people a little feeling what it's actually all about (it's not only JS but also HTML, CSS etc.)
  • Installation - Windows, Mac, Linux..
  • Discovering / Searching - I think it's good to show how to search for packages once it's installed so readers get a fast result. Also explaining that the registry is just an alias system.
  • Installing packages - Installing some packages that for now don't have any dependencies, also introducing a .bowerrc file. Why everything is put into bower_components .
  • Updating - self-explained
  • Uninstalling packages - Once the reader learned this, he's able to use all the basics of Bower to use it in his flow.
  • Creating packages - Introducing bower.json file and it's properties. Creating a sample package. Maybe we can here get into the deeper "How Bower works" section.
  • Packages with dependencies - Introducing dependencies and devDependencies. Also getting into the resolution process. Checking in deps vs. not.
  • Publishing Packages - Registration process, what is possible what is not (https, git etc.), updating own packages (getting into semantic versioning and git tagging)
  • Setting up your own Bower registry - I think, from here on it's time to tackle the "stuff around bower" things
  • Future of Bower

So it's a kind of a merged list of your proposed topics. There are still some things left from @sindresorhus list, but I think for a first version for the book, this is more then enough. One could actually write a whole book about Bower. However, I think even if we try to not digging too deep into the topics, we'll get a lot of content.

If you guys are okay with this outline, I'd just start with something once #8 is clarified.

@addyosmani
Copy link
Member Author

@PascalPrecht I think this list of topics would make for a great start. 'The Future Of Bower' will probably want to capture support for things like ES6 modules but between @matscales and @sindresorhus I think we should be able to summarize that last part nicely. The rest would make for an amazing intro for beginners.

As part of #8, I've added a basic build system and project structure we can use for contributions. I'll be making tweaks to this but any content contributed in markdown form to the chapters directory should work. Thanks again!

@0x-r4bbit
Copy link
Contributor

@addyosmani alright, expect a PR the next days!

@sindresorhus
Copy link
Contributor

I guess Addy meant @wibblymat

@addyosmani
Copy link
Member Author

@PascalPrecht mind if I assign this issue to you as the finalized author?

@0x-r4bbit
Copy link
Contributor

@addyosmani yea sure. I'm on it!

@addyosmani
Copy link
Member Author

Thanks!

@ghost ghost assigned 0x-r4bbit Jan 8, 2014
@addyosmani
Copy link
Member Author

Just a friendly ping to see where we are on this :) Thanks again for volunteering to help out with this chapter!

@0x-r4bbit
Copy link
Contributor

@addyosmani Expect a PR in the next couple of days! Sorry for the delay, wanted to wait until the first grunt chapter bits come in, so I can see in what kinda direction things should go. Also had some private issues and other OSS stuff to do..

I didn't forget it :)

Thanks for the friendly ping though

@addyosmani
Copy link
Member Author

@PascalPrecht I was wondering if you would still be interested in fleshing out the Bower chapter that we have now. It would be absolutely awesome to have some content on the getting started experience etc.

@0x-r4bbit
Copy link
Contributor

@addyosmani Ah sorry man.. totally forgot that one since I was working on like ten thousand other projects. So yea, I AM interested, and I'll put that on the top of my list!

@0x-r4bbit
Copy link
Contributor

Expect a PR today.

@addyosmani
Copy link
Member Author

Fantastic. Thank you!
On 13 Apr 2014 10:52, "Pascal Precht" notifications@github.com wrote:

Expect a PR today.


Reply to this email directly or view it on GitHubhttps://github.com//issues/6#issuecomment-40303727
.

@0x-r4bbit
Copy link
Contributor

@addyosmani second PR is here: #56

@0x-r4bbit
Copy link
Contributor

"Installing Packages" and "Updating Packages" will land tomorrow. I try to send a PR each day now.

@addyosmani
Copy link
Member Author

Thanks @PascalPrecht!

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

No branches or pull requests

3 participants