| OLD | NEW |
| (Empty) |
| 1 --- | |
| 2 title: "Frequently Asked Questions" | |
| 3 --- | |
| 4 | |
| 5 ### What are pub's system requirements? | |
| 6 | |
| 7 Pub runs on any platform that supports the Dart VM. That basically means | |
| 8 relatively recent versions of Mac, Linux and Windows. | |
| 9 | |
| 10 However, there are a couple of limitations on Windows: | |
| 11 | |
| 12 * Windows XP is not supported. | |
| 13 * FAT32 file systems are not supported. | |
| 14 * Packages cannot be stored on a different drive than your user directory. | |
| 15 * Packages cannot be stored on network shares. | |
| 16 | |
| 17 Pub relies on junction points for core functionality, and those aren't available | |
| 18 on the above. We realize these limitations are painful and we're hoping to | |
| 19 address the root cause but it will take a while to get there. | |
| 20 | |
| 21 ### What are all the "packages" directories for? | |
| 22 | |
| 23 After you run pub, you'll notice that your package has little `packages` | |
| 24 directories sprinkled all over it. These are needed to make "package:" imports | |
| 25 work. When your code has an import with the "package" scheme, a Dart | |
| 26 implementation like the VM or dart2js translates that to a path or URL using a | |
| 27 simple rewriting rule: | |
| 28 | |
| 29 1. Take the URI of your application's [entrypoint](glossary.dart#entrypoint). | |
| 30 2. Strip off the trailing file name. | |
| 31 3. Append "/packages/" followed by the rest of the import URL. | |
| 32 | |
| 33 For example, if you app's entrypoint is `/dev/myapp/web/main.dart` then: | |
| 34 | |
| 35 {% highlight dart %} | |
| 36 import 'package:unittest/unittest.dart'; | |
| 37 {% endhighlight %} | |
| 38 | |
| 39 Magically turns into: | |
| 40 | |
| 41 {% highlight dart %} | |
| 42 import '/dev/myapp/web/packages/unittest/unittest.dart'; | |
| 43 {% endhighlight %} | |
| 44 | |
| 45 Then Dart loads that as normal. This behavior is a [specified][spec] part of | |
| 46 the Dart language. The example only works if you have a directory named | |
| 47 `packages` inside your `web` directory and that directory in turn contains the | |
| 48 packages that your app uses. | |
| 49 | |
| 50 [spec]: http://www.dartlang.org/docs/spec/ | |
| 51 | |
| 52 Pub creates these directories for you. The main one it creates is in the root | |
| 53 of your package. Inside that, it creates symlinks pointing to the `lib` | |
| 54 directories of each package your app [depends][] on. (The dependencies | |
| 55 themselves will usually live in your [system cache][].) | |
| 56 | |
| 57 [depends]: http://glossary.html#dependency | |
| 58 [system cache]: http://glossary.html#system-cache | |
| 59 | |
| 60 After creating the main `packages` directory in your package's root, pub then | |
| 61 creates secondary ones in every [directory in your package where a Dart | |
| 62 entrypoint may appear](glossary.html#entrypoint-directory). Currently that's | |
| 63 `benchmark`, `bin`, `example`, `test`, `tool`, and `web`. | |
| 64 | |
| 65 Pub also creates `packages` symlinks in *subdirectories* of any of those that | |
| 66 point back to the main one. Since you may have entrypoints under, for example, | |
| 67 `web/admin/controllers/`, pub makes sure there is always a nearby `packages` | |
| 68 directory. Otherwise the imports won't work. | |
| 69 | |
| 70 ### I found a bug in pub. How do I report it? | |
| 71 | |
| 72 We use the main [Dart bug tracker][]. Feel free to file a ticket. When you do, | |
| 73 please include: | |
| 74 | |
| 75 [dart bug tracker]: https://code.google.com/p/dart/issues/list | |
| 76 | |
| 77 * Your platform (Windows, Mac, Linux, etc.). | |
| 78 * The version you are running. (Run `pub version`.) | |
| 79 * If possible, include a log by running `pub --verbose <your command>`. | |
| 80 | |
| 81 ### How do I delete a package? | |
| 82 | |
| 83 Once a package is published, you're strongly discouraged from deleting it. | |
| 84 After all, some user could already be depending on it! If you accidentally | |
| 85 include your password or something similarly secret in the package, | |
| 86 [file an issue][delete-request] and the Pub authors will take down your | |
| 87 package. You'll need to use a different version when you re-upload it. | |
| 88 | |
| 89 [delete-request]: http://code.google.com/p/dart/issues/entry?summary=Request%20t
o%20delete%20package%20from%20pub&status=Triaged&labels=Type-Task,Priority-Mediu
m,Area-Pub,Pub-DeleteRequest | |
| 90 | |
| 91 ### I get a timeout when I run pub. What do I do? | |
| 92 | |
| 93 The [pub package server][] is hosted on [App Engine][]. We've seen a few times | |
| 94 where App Engine has run slowly for us and other users, leading to some | |
| 95 timeouts. If this happens, send us a note on the [mailing list][] and we'll | |
| 96 look into it. Usually it resolves itself in a few hours. | |
| 97 | |
| 98 [pub package server]: http://pub.dartlang.org | |
| 99 [app engine]: https://appengine.google.com | |
| 100 [mailing list]: https://groups.google.com/a/dartlang.org/forum/?fromgroups#!foru
m/misc | |
| 101 | |
| 102 ### Why doesn't pub do ___? | |
| 103 | |
| 104 Probably because we haven't implemented yet. Pub is still under active | |
| 105 development. If there are features you would like to see, go ahead and | |
| 106 [file a ticket][dart bug tracker]. Please search and make sure it hasn't | |
| 107 already been requested yet. If it has, star it so we know what things are | |
| 108 important to users. | |
| 109 | |
| 110 Also, patches are more than welcome! Pub is [open source][] and we love outside | |
| 111 contributions. Both the [client][] and [server][] are well-tested, | |
| 112 well-documented, and, we hope, easy to contribute to. | |
| 113 | |
| 114 [open source]: https://code.google.com/p/dart/wiki/GettingTheSource?tm=4 | |
| 115 [client]: https://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleedin
g_edge%2Fdart%2Fsdk%2Flib%2F_internal%2Fpub | |
| 116 [server]: https://github.com/dart-lang/pub-dartlang | |
| 117 | |
| 118 ### What is the roadmap for pub? | |
| 119 | |
| 120 We don't generally make public roadmaps for pub. The Dart project is very fluid | |
| 121 and priorities and schedules change very frequently. If we make promises for | |
| 122 the future, we are likely to end up disappointing users when plans change. | |
| 123 | |
| 124 You can usually get a picture for what we are working on now by seeing which | |
| 125 [bugs we have started][started]. | |
| 126 | |
| 127 [started]: https://code.google.com/p/dart/issues/list?can=2&q=Area%3DPub+status%
3AStarted+&colspec=ID+Type+Status+Priority+Area+Milestone+Owner+Summary&cells=ti
les | |
| 128 | |
| 129 ### How do I report abuse of pub.dartlang.org? | |
| 130 | |
| 131 Please contact us at [pub-abuse@dartlang.org][abuse] to discuss the situation. | |
| 132 | |
| 133 [abuse]: mailto:pub-abuse@dartlang.org | |
| 134 | |
| 135 ### I still have questions. What should I do? | |
| 136 | |
| 137 Send an email to the main Dart [mailing list][] and we'll see it. | |
| OLD | NEW |