From 28bfc802fca74bf4bee5bce656065db1213d0395 Mon Sep 17 00:00:00 2001 From: jld3103 Date: Fri, 6 Oct 2023 15:03:53 +0200 Subject: [PATCH] feat(docs): Add docs about dependency pinning and upgrading Signed-off-by: jld3103 --- docs/README.md | 3 +++ docs/dependencies.md | 7 +++++++ 2 files changed, 10 insertions(+) create mode 100644 docs/dependencies.md diff --git a/docs/README.md b/docs/README.md index bc3dab89..100557b7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -23,3 +23,6 @@ Check out our little [overview](architecture.md) of how the Neon project is buil ## [Neon workflows](workflows.md) We have documented various workflows for working with the mono repo structure like adding a new package. + +## [Dependencies](dependencies.md) +How we pin and upgrade our dependencies diff --git a/docs/dependencies.md b/docs/dependencies.md new file mode 100644 index 00000000..f3ddd32d --- /dev/null +++ b/docs/dependencies.md @@ -0,0 +1,7 @@ +# Dependencies + +We follow the guidelines outlined in https://dart.dev/tools/pub/dependencies with some rules and automatic workflows: +1. We use the caret notation with the major version set to the latest major version and the minor and patch versions set to `0`. The constraint will be updated in case we need a particular feature or bug fix that was released in a newer version. +2. Dev dependencies should be pinned to the latest versions since they do not affect consumers of our packages. +3. Using Renovate we automatically update our dependency constraints. For non-dev dependencies this will be the latest major version, for everything else it will upgrade to the latest minor and patch versions as well. The lock files are also kept up-to-date with Renovate to compile everything with the latest available versions. +4. The same rules and automatic workflows apply to the Dart and Flutter versions we use.