In Dart and Pub, should I add pubspec.lock to my .gitignore?

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?


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