In Dart and Pub, should I add pubspec.lock to my .gitignore?
dart, dart-pub
Solution
This answer has two parts, similarly to the question and answer in this question about Ruby `bundler`.
Application packages
If you are working on an application package, then you should keep the `pubspec.lock` file in your repository as a snapshot of your dependencies.
From the Pub glossary:
Application packages should check their lockfiles into source control, so that everyone working on the application and every location the application is deployed has a consistent set of dependencies.
Library packages
However, if you are working on a library package, then you should not check in the lockfile.
From the Pub glossary:
Library packages should not check their lockfile into source control, since they should support a range of dependency versions.
See also the Pub glossary entry for lockfiles
Problem
Should I add this generated file to my `.gitignore` so that it doesn't show up in my repository? Should `pubspec.lock` be included in my repository?