Index: app/doc/index.markdown |
diff --git a/app/doc/index.markdown b/app/doc/index.markdown |
deleted file mode 100644 |
index 9aa7057d8c214daae0ce7d9e7e4ca0ac00a02aa6..0000000000000000000000000000000000000000 |
--- a/app/doc/index.markdown |
+++ /dev/null |
@@ -1,296 +0,0 @@ |
---- |
-title: "Getting Started" |
---- |
- |
-1. [Installing and configuring pub](#installing-and-configuring-pub) |
-1. [Creating a package](#creating-a-package) |
-1. [Adding a dependency](#adding-a-dependency) |
-1. [Getting dependencies](#getting-dependencies) |
-1. [Importing code from a dependency](#importing-code-from-a-dependency) |
-1. [Upgrading a dependency](#upgrading-a-dependency) |
-1. [Publishing a package](#publishing-a-package) |
-{:.toc} |
- |
-*Pub* is a package manager for Dart. It helps you reuse existing Dart code |
-and bundle your Dart apps and libraries so that you can reuse and share them |
-with other people. Pub handles versioning and dependency management so that you |
-can ensure that your app runs on other machines exactly the same as it does on |
-yours. |
- |
-To **find** a package that's on pub.dartlang.org, |
-use the Search box at the top right of this page. |
- |
-To **use** a package that's on pub.dartlang.org: |
- |
-1. Create a `pubspec.yaml` file |
- (if one doesn't already exist) |
- and list the package as dependency. |
- For example, to use the [web_ui](/packages/web_ui) package |
- in an app, put this in a top-level file named `pubspec.yaml`: |
- |
- name: my_app |
- dependencies: |
- web_ui: any |
- |
-1. Run `pub get`, either on the command line |
- or through the Dart Editor menu: Tools > Pub Get. |
- |
-1. Import one or more libraries from the package: |
- |
- import 'package:web_ui/web_ui.dart'; |
- |
-For details and pointers to more documentation, read on. |
- |
-## Installing and configuring pub |
- |
-Pub is in the [Dart SDK](http://www.dartlang.org/docs/sdk/), |
-which you can download by itself or as part of |
-[Dart Editor](http://www.dartlang.org/docs/editor/). |
-You can use pub through |
-[Dart Editor](http://www.dartlang.org/docs/editor/), or through the |
-`pub` command-line app, which lives inside the `bin` directory of the Dart SDK. |
- |
-To use pub and other tools on the command line, |
-you might want to add the SDK's `bin` directory to your system path. |
-For example, on Mac and Linux: |
- |
- export PATH=$PATH:<path to sdk>/bin |
- |
-For Windows, here's an equivalent in PowerShell: |
- |
- [Environment]::SetEnvironmentVariable("PATH", "$env:PATH;<path to sdk>\bin", "User") |
- |
-In the examples above, `<path to sdk>` is the absolute path |
-to the main directory of the SDK. For example, |
-if you install Dart Editor in |
-`/home/me/dart`, then add this to your PATH: |
- |
- /home/me/dart/dart-sdk/bin |
- |
-On Windows, you can also set the system PATH environment variable through the |
-Control Panel. A quick |
-[search](https://www.google.com/search?q=windows+set+environment+variable) |
-should find the instructions for your version of Windows. |
- |
-## Creating a package |
- |
-<div class="learn-more"> |
- <a href="/doc/package-layout.html"> |
- Learn more about packages → |
- </a> |
-</div> |
- |
-A **package** in pub is a directory that contains Dart code and any other stuff |
-that goes along with it like resources, tests, and docs. Frameworks and |
-reusable libraries are obviously packages, but applications are too. If your |
-app wants to use pub packages, it needs to be a package too. |
- |
-While everything is a package in pub, there are two flavors of packages that are |
-used slightly differently in practice. A [**library |
-package**](glossary.html#library-package) is a package that is intended to be |
-reused by other packages. It will usually have code that other packages import, |
-and it will likely be hosted somewhere that people can get to. An [**application |
-package**](glossary.html#application-package) only *consumes* packages but |
-doesn't itself get reused. In other words, library packages will be used as |
-dependencies, but application packages won't. |
- |
-In most cases, there's no difference between the two and we'll just say |
-"package". In the few places where it does matter, we'll specify "library |
-package" or "application package". |
- |
-<div class="learn-more"> |
- <a href="/doc/pubspec.html"> |
- Learn more about pubspecs → |
- </a> |
-</div> |
- |
-To turn your app into an application package so it can use other packages, you |
-just need to give it a **pubspec**. This file is written using the |
-[YAML language](http://yaml.org) and is named `pubspec.yaml`. The simplest |
-possible pubspec just contains the name of the package. Save the pubspec file as |
-`pubspec.yaml` in the root directory of your app. |
- |
-Behold, the simplest possible `pubspec.yaml`: |
- |
-{% highlight yaml %} |
-name: my_app |
-{% endhighlight %} |
- |
-Now `my_app` is a pub package! |
- |
-## Adding a dependency |
- |
-<div class="learn-more"> |
- <a href="/doc/dependencies.html"> |
- Learn more about dependencies → |
- </a> |
-</div> |
- |
-One of pub's main jobs is managing **dependencies**. A dependency is just |
-another package that your package relies on. If your app is using some |
-transformation library called "transmogrify", then your app package will depend |
-on the `transmogrify` package. |
- |
-You specify your package's dependencies in the pubspec file immediately after |
-your package name. For example: |
- |
-{% highlight yaml %} |
-name: my_app |
-dependencies: |
- transmogrify: |
-{% endhighlight %} |
- |
-Here, we are declaring a dependency on the (fictional) `transmogrify` package. |
- |
-## Getting dependencies |
- |
-<div class="learn-more"> |
- <a href="/doc/pub-get.html"> |
- Learn more about <tt>pub get</tt> → |
- </a> |
-</div> |
- |
-Once you've declared a dependency, you then tell pub to get it for you. If |
-you're using the Editor, select "Pub Get" from the "Tools" menu. If you're |
-rocking the command line, do: |
- |
- $ cd path/to/your_app |
- $ pub get |
- |
-<aside class="alert alert-warning"> |
-Today, this command must be run from the directory containing |
-<tt>pubspec.yaml</tt>. In the future, you will be able to run it from any |
-sub-directory of the package. |
-</aside> |
- |
-When you do this, pub will create a `packages` directory in the same directory |
-as `pubspec.yaml`. In there, it will place each package that your package |
-depends on (these are called your **immediate dependencies**). It will also |
-look at all of those packages and get everything *they* depend on, recursively |
-(these are your **transitive dependencies**). |
- |
-When this is done, you will have a `packages` directory that contains every |
-single package your program needs in order to run. |
- |
-## Importing code from a dependency |
- |
-Now that you have a dependency wired up, you want to be able to use code from |
-it. To access a library in a another package, you will import it using the |
-`package:` scheme: |
- |
-{% highlight dart %} |
-import 'package:transmogrify/transmogrify.dart'; |
-{% endhighlight %} |
- |
-This looks inside the `transmogrify` package for a top-level file named |
-`transmogrify.dart`. Most packages just define a single entrypoint whose name |
-is the same as the name of the package. Check the documentation for the package |
-to see if it exposes anything different for you to import. |
- |
-<aside class="alert alert-info"> |
-This works by looking inside the generated <tt>packages</tt> directory. If you |
-get an error, the directory may be out of date. Fix it by running |
-<tt>pub get</tt> whenever you change your pubspec. |
-</aside> |
- |
-You can also use this style to import libraries from within your own package. |
-For example, let's say your package is laid out like: |
- |
- transmogrify/ |
- lib/ |
- transmogrify.dart |
- parser.dart |
- test/ |
- parser/ |
- parser_test.dart |
- |
-The `parser_test` file *could* import `parser.dart` like this: |
- |
-{% highlight dart %} |
-import '../../lib/parser.dart'; |
-{% endhighlight %} |
- |
-But that's a pretty nasty relative path. If `parser_test.dart` is ever moved |
-up or down a directory, that path will break and you'll have to fix the code. |
-Instead, you can do: |
- |
-{% highlight dart %} |
-import 'package:transmogrify/parser.dart'; |
-{% endhighlight %} |
- |
-This way, the import can always get to `parser.dart` regardless of where the |
-importing file is. |
- |
-<!-- TODO(rnystrom): Enable this when that doc exists. |
-<div class="learn-more"> |
- <a href="/doc/package-scheme.html"> |
- Learn more about the <tt>package:</tt> scheme |
- <i class="icon-hand-right icon-white"> </i> |
- </a> |
-</div> |
---> |
- |
-## Upgrading a dependency |
- |
-<div class="learn-more"> |
- <a href="/doc/pub-upgrade.html"> |
- Learn more about <tt>pub upgrade</tt> → |
- </a> |
-</div> |
- |
-The first time you get a new dependency for your package, pub will download the |
-latest version of it that's compatible with your other dependencies. It then |
-locks your package to *always* use that version by creating a **lockfile**. |
-This is a file named `pubspec.lock` that pub creates and stores next to your |
-pubspec. It lists the specific versions of each dependency (immediate and |
-transitive) that your package uses. |
- |
-If this is an application package, you will check this file into source control. |
-That way, everyone hacking on your app ensures they are using the same versions |
-of all of the packages. This also makes sure you use the same versions of stuff |
-when you deploy your app to production. |
- |
-When you are ready to upgrade your dependencies to the latest versions, do: |
- |
- $ pub upgrade |
- |
-This tells pub to regenerate the lockfile using the newest available versions of |
-your package's dependencies. If you only want to upgrade a specific dependency, |
-you can specify that too: |
- |
- $ pub upgrade transmogrify |
- |
-This upgrades `transmogrify` to the latest version but leaves everything else |
-the same. |
- |
-## Publishing a package |
- |
-<div class="learn-more"> |
- <a href="/doc/pub-lish.html"> |
- Learn more about <tt>pub publish</tt> → |
- </a> |
-</div> |
- |
-Pub isn't just for using other people's packages. It also allows you to share |
-your packages with the world. Once you've written some useful code and you want |
-everyone else to be able to use it, just run: |
- |
- $ pub publish |
- |
-Pub will check to make sure that your package follows the [pubspec |
-format](pubspec.html) and [package layout conventions](package-layout.html), and |
-then upload your package to [pub.dartlang.org](http://pub.dartlang.org). Then |
-any Pub user will be able to download it or depend on it in their pubspecs. For |
-example, if you just published version 1.0.0 of a package named `transmogrify`, |
-then they can write: |
- |
-{% highlight yaml %} |
-dependencies: |
- transmogrify: ">= 1.0.0 < 2.0.0" |
-{% endhighlight %} |
- |
-Keep in mind that publishing is forever. As soon as you publish your awesome |
-package, users will be able to depend on it. Once they start doing that, |
-removing the package would break theirs. To avoid that, pub strongly discourages |
-deleting packages. You can always upload new versions of your package, but old |
-ones will continue to be available for users that aren't ready to upgrade yet. |