Merge #4776

4776: Do a weekly minor publish to crates.io r=matklad a=pksunkara

This is the same system I set up on Chalk repo.

Every week it creates a new minor version, pushes it to github and then deploys it to crates.io.

Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
new file mode 100644
index 0000000..be2c7a8
--- /dev/null
+++ b/.github/workflows/publish.yml
@@ -0,0 +1,44 @@
+name: publish
+on:
+  workflow_dispatch: # We can add version input when 1.0 is released and scheduled releases are removed
+
+  schedule:
+    - cron: "0 0 * * *" # midnight UTC
+
+  push:
+    branches:
+      - release
+
+jobs:
+  publish:
+    name: publish
+    runs-on: ubuntu-16.04
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+
+      - name: Install Rust toolchain
+        uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          profile: minimal
+          override: true
+
+      - name: Install cargo-workspaces
+        uses: actions-rs/install@v0.1
+        with:
+          crate: cargo-workspaces
+
+      - name: Release
+        env:
+          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
+          PATCH: ${{ github.run_number }}
+        shell: bash
+        run: |
+          git config --global user.email "runner@gha.local"
+          git config --global user.name "Github Action"
+          rm Cargo.lock
+          cargo workspaces rename ra_ap_%n
+          cargo workspaces publish --yes --force '*' --exact --no-git-commit --allow-dirty --skip-published custom 0.0.$PATCH
diff --git a/crates/assists/Cargo.toml b/crates/assists/Cargo.toml
index a560a35..2641256 100644
--- a/crates/assists/Cargo.toml
+++ b/crates/assists/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "assists"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -13,11 +14,11 @@
 itertools = "0.9.0"
 either = "1.5.3"
 
-stdx = { path = "../stdx" }
-syntax = { path = "../syntax" }
-text_edit = { path = "../text_edit" }
-profile = { path = "../profile" }
-base_db = { path = "../base_db" }
-ide_db = { path = "../ide_db" }
-hir = { path = "../hir" }
-test_utils = { path = "../test_utils" }
+stdx = { path = "../stdx", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+text_edit = { path = "../text_edit", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+ide_db = { path = "../ide_db", version = "0.0.0" }
+hir = { path = "../hir", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
diff --git a/crates/base_db/Cargo.toml b/crates/base_db/Cargo.toml
index 7347d75..f7bfcb0 100644
--- a/crates/base_db/Cargo.toml
+++ b/crates/base_db/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "base_db"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -12,10 +13,10 @@
 salsa = "0.15.2"
 rustc-hash = "1.1.0"
 
-syntax = { path = "../syntax" }
-cfg = { path = "../cfg" }
-profile = { path = "../profile" }
-tt = { path = "../tt" }
-test_utils = { path = "../test_utils" }
-vfs = { path = "../vfs" }
-stdx = { path = "../stdx" }
+syntax = { path = "../syntax", version = "0.0.0" }
+cfg = { path = "../cfg", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+tt = { path = "../tt", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
+vfs = { path = "../vfs", version = "0.0.0" }
+stdx = { path = "../stdx", version = "0.0.0" }
diff --git a/crates/cfg/Cargo.toml b/crates/cfg/Cargo.toml
index d2ea551..a6785ee 100644
--- a/crates/cfg/Cargo.toml
+++ b/crates/cfg/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "cfg"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -11,7 +12,7 @@
 [dependencies]
 rustc-hash = "1.1.0"
 
-tt = { path = "../tt" }
+tt = { path = "../tt", version = "0.0.0" }
 
 [dev-dependencies]
 mbe = { path = "../mbe" }
diff --git a/crates/flycheck/Cargo.toml b/crates/flycheck/Cargo.toml
index 262a66e..c230fc1 100644
--- a/crates/flycheck/Cargo.toml
+++ b/crates/flycheck/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "flycheck"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -15,4 +16,4 @@
 serde_json = "1.0.48"
 jod-thread = "0.1.1"
 
-toolchain = { path = "../toolchain" }
+toolchain = { path = "../toolchain", version = "0.0.0" }
diff --git a/crates/hir/Cargo.toml b/crates/hir/Cargo.toml
index dbb2986..60a4817 100644
--- a/crates/hir/Cargo.toml
+++ b/crates/hir/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "hir"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -15,10 +16,10 @@
 arrayvec = "0.5.1"
 itertools = "0.9.0"
 
-stdx = { path = "../stdx" }
-syntax = { path = "../syntax" }
-base_db = { path = "../base_db" }
-profile = { path = "../profile" }
-hir_expand = { path = "../hir_expand" }
-hir_def = { path = "../hir_def" }
-hir_ty = { path = "../hir_ty" }
+stdx = { path = "../stdx", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+hir_expand = { path = "../hir_expand", version = "0.0.0" }
+hir_def = { path = "../hir_def", version = "0.0.0" }
+hir_ty = { path = "../hir_ty", version = "0.0.0" }
diff --git a/crates/hir_def/Cargo.toml b/crates/hir_def/Cargo.toml
index 5774532..011e461 100644
--- a/crates/hir_def/Cargo.toml
+++ b/crates/hir_def/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "hir_def"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -20,16 +21,16 @@
 indexmap = "1.4.0"
 smallvec = "1.4.0"
 
-stdx = { path = "../stdx" }
-arena = { path = "../arena" }
-base_db = { path = "../base_db" }
-syntax = { path = "../syntax" }
-profile = { path = "../profile" }
-hir_expand = { path = "../hir_expand" }
-test_utils = { path = "../test_utils" }
-mbe = { path = "../mbe" }
-cfg = { path = "../cfg" }
-tt = { path = "../tt" }
+stdx = { path = "../stdx", version = "0.0.0" }
+arena = { path = "../arena", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+hir_expand = { path = "../hir_expand", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
+mbe = { path = "../mbe", version = "0.0.0" }
+cfg = { path = "../cfg", version = "0.0.0" }
+tt = { path = "../tt", version = "0.0.0" }
 
 [dev-dependencies]
 expect-test = "0.1"
diff --git a/crates/hir_expand/Cargo.toml b/crates/hir_expand/Cargo.toml
index 1c46992..9fad2ab 100644
--- a/crates/hir_expand/Cargo.toml
+++ b/crates/hir_expand/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "hir_expand"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -13,11 +14,11 @@
 either = "1.5.3"
 rustc-hash = "1.0.0"
 
-arena = { path = "../arena" }
-base_db = { path = "../base_db" }
-syntax = { path = "../syntax" }
-parser = { path = "../parser" }
-profile = { path = "../profile" }
-tt = { path = "../tt" }
-mbe = { path = "../mbe" }
-test_utils = { path = "../test_utils"}
+arena = { path = "../arena", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+parser = { path = "../parser", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+tt = { path = "../tt", version = "0.0.0" }
+mbe = { path = "../mbe", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
diff --git a/crates/hir_ty/Cargo.toml b/crates/hir_ty/Cargo.toml
index 06da0d0..33e155a 100644
--- a/crates/hir_ty/Cargo.toml
+++ b/crates/hir_ty/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "hir_ty"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -20,14 +21,14 @@
 chalk-ir = { version = "0.23.0" }
 chalk-recursive = { version = "0.23.0" }
 
-stdx = { path = "../stdx" }
-hir_def = { path = "../hir_def" }
-hir_expand = { path = "../hir_expand" }
-arena = { path = "../arena" }
-base_db = { path = "../base_db" }
-profile = { path = "../profile" }
-syntax = { path = "../syntax" }
-test_utils = { path = "../test_utils" }
+stdx = { path = "../stdx", version = "0.0.0" }
+hir_def = { path = "../hir_def", version = "0.0.0" }
+hir_expand = { path = "../hir_expand", version = "0.0.0" }
+arena = { path = "../arena", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
 
 [dev-dependencies]
 expect-test = "0.1"
diff --git a/crates/ide/Cargo.toml b/crates/ide/Cargo.toml
index 7009444..336e9d2 100644
--- a/crates/ide/Cargo.toml
+++ b/crates/ide/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "ide"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -16,20 +17,20 @@
 rustc-hash = "1.1.0"
 oorandom = "11.1.2"
 
-stdx = { path = "../stdx" }
-syntax = { path = "../syntax" }
-text_edit = { path = "../text_edit" }
-base_db = { path = "../base_db" }
-ide_db = { path = "../ide_db" }
-cfg = { path = "../cfg" }
-profile = { path = "../profile" }
-test_utils = { path = "../test_utils" }
-assists = { path = "../assists" }
-ssr = { path = "../ssr" }
+stdx = { path = "../stdx", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+text_edit = { path = "../text_edit", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+ide_db = { path = "../ide_db", version = "0.0.0" }
+cfg = { path = "../cfg", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
+assists = { path = "../assists", version = "0.0.0" }
+ssr = { path = "../ssr", version = "0.0.0" }
 
 # ide should depend only on the top-level `hir` package. if you need
 # something from some `hir_xxx` subpackage, reexport the API via `hir`.
-hir = { path = "../hir" }
+hir = { path = "../hir", version = "0.0.0" }
 
 [dev-dependencies]
 expect-test = "0.1"
diff --git a/crates/ide_db/Cargo.toml b/crates/ide_db/Cargo.toml
index 692fb64..320fb15 100644
--- a/crates/ide_db/Cargo.toml
+++ b/crates/ide_db/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "ide_db"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -19,12 +20,12 @@
 once_cell = "1.3.1"
 either = "1.5.3"
 
-stdx = { path = "../stdx" }
-syntax = { path = "../syntax" }
-text_edit = { path = "../text_edit" }
-base_db = { path = "../base_db" }
-profile = { path = "../profile" }
-test_utils = { path = "../test_utils" }
+stdx = { path = "../stdx", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+text_edit = { path = "../text_edit", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+profile = { path = "../profile", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
 # ide should depend only on the top-level `hir` package. if you need
 # something from some `hir_xxx` subpackage, reexport the API via `hir`.
-hir = { path = "../hir" }
+hir = { path = "../hir", version = "0.0.0" }
diff --git a/crates/mbe/Cargo.toml b/crates/mbe/Cargo.toml
index 1aba8b7..af80e2b 100644
--- a/crates/mbe/Cargo.toml
+++ b/crates/mbe/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "mbe"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -13,9 +14,9 @@
 smallvec = "1.2.0"
 log = "0.4.8"
 
-syntax = { path = "../syntax" }
-parser = { path = "../parser" }
-tt = { path = "../tt" }
+syntax = { path = "../syntax", version = "0.0.0" }
+parser = { path = "../parser", version = "0.0.0" }
+tt = { path = "../tt", version = "0.0.0" }
 
 [dev-dependencies]
 test_utils = { path = "../test_utils" }
diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml
index 358be92..1610e0d 100644
--- a/crates/parser/Cargo.toml
+++ b/crates/parser/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "parser"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
diff --git a/crates/paths/Cargo.toml b/crates/paths/Cargo.toml
index 5ac18d6..da26938 100644
--- a/crates/paths/Cargo.toml
+++ b/crates/paths/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "paths"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
diff --git a/crates/proc_macro_api/Cargo.toml b/crates/proc_macro_api/Cargo.toml
index a3a4c11..75f67a2 100644
--- a/crates/proc_macro_api/Cargo.toml
+++ b/crates/proc_macro_api/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "proc_macro_api"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -15,4 +16,4 @@
 crossbeam-channel = "0.4.0"
 jod-thread = "0.1.1"
 
-tt = { path = "../tt" }
+tt = { path = "../tt", version = "0.0.0" }
diff --git a/crates/proc_macro_srv/Cargo.toml b/crates/proc_macro_srv/Cargo.toml
index a468b55..fb84e04 100644
--- a/crates/proc_macro_srv/Cargo.toml
+++ b/crates/proc_macro_srv/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "proc_macro_srv"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -13,10 +14,10 @@
 libloading = "0.6.0"
 memmap = "0.7"
 
-tt = { path = "../tt" }
-mbe = { path = "../mbe" }
-proc_macro_api = { path = "../proc_macro_api" }
-test_utils = { path = "../test_utils" }
+tt = { path = "../tt", version = "0.0.0" }
+mbe = { path = "../mbe", version = "0.0.0" }
+proc_macro_api = { path = "../proc_macro_api", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
 
 [dev-dependencies]
 cargo_metadata = "0.11.1"
diff --git a/crates/proc_macro_test/Cargo.toml b/crates/proc_macro_test/Cargo.toml
index 7b0f64f..753443b 100644
--- a/crates/proc_macro_test/Cargo.toml
+++ b/crates/proc_macro_test/Cargo.toml
@@ -4,6 +4,7 @@
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
+publish = false
 
 [lib]
 doctest = false
diff --git a/crates/profile/Cargo.toml b/crates/profile/Cargo.toml
index e271e3a..261172d 100644
--- a/crates/profile/Cargo.toml
+++ b/crates/profile/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "profile"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -14,7 +15,7 @@
 libc = "0.2.73"
 backtrace = { version = "0.3.44", optional = true }
 
-arena = { path = "../arena" }
+arena = { path = "../arena", version = "0.0.0" }
 
 [target.'cfg(target_os = "linux")'.dependencies]
 perf-event = "0.4"
diff --git a/crates/project_model/Cargo.toml b/crates/project_model/Cargo.toml
index 386f72f..8bee398 100644
--- a/crates/project_model/Cargo.toml
+++ b/crates/project_model/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "project_model"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -16,10 +17,10 @@
 serde_json = "1.0.48"
 anyhow = "1.0.26"
 
-arena = { path = "../arena" }
-cfg = { path = "../cfg" }
-base_db = { path = "../base_db" }
-toolchain = { path = "../toolchain" }
-proc_macro_api =  { path = "../proc_macro_api" }
-paths =  { path = "../paths" }
-stdx =  { path = "../stdx" }
+arena = { path = "../arena", version = "0.0.0" }
+cfg = { path = "../cfg", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+toolchain = { path = "../toolchain", version = "0.0.0" }
+proc_macro_api =  { path = "../proc_macro_api", version = "0.0.0" }
+paths =  { path = "../paths", version = "0.0.0" }
+stdx =  { path = "../stdx", version = "0.0.0" }
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml
index 068a961..7e280b1 100644
--- a/crates/rust-analyzer/Cargo.toml
+++ b/crates/rust-analyzer/Cargo.toml
@@ -5,6 +5,7 @@
 authors = ["rust-analyzer developers"]
 autobins = false
 edition = "2018"
+publish = false
 
 [lib]
 doctest = false
diff --git a/crates/ssr/Cargo.toml b/crates/ssr/Cargo.toml
index 22b6af0..6f0f53d 100644
--- a/crates/ssr/Cargo.toml
+++ b/crates/ssr/Cargo.toml
@@ -14,12 +14,12 @@
 rustc-hash = "1.1.0"
 itertools = "0.9.0"
 
-text_edit = { path = "../text_edit" }
-syntax = { path = "../syntax" }
-base_db = { path = "../base_db" }
-ide_db = { path = "../ide_db" }
-hir = { path = "../hir" }
-test_utils = { path = "../test_utils" }
+text_edit = { path = "../text_edit", version = "0.0.0" }
+syntax = { path = "../syntax", version = "0.0.0" }
+base_db = { path = "../base_db", version = "0.0.0" }
+ide_db = { path = "../ide_db", version = "0.0.0" }
+hir = { path = "../hir", version = "0.0.0" }
+test_utils = { path = "../test_utils", version = "0.0.0" }
 
 [dev-dependencies]
 expect-test = "0.1"
diff --git a/crates/stdx/Cargo.toml b/crates/stdx/Cargo.toml
index b186b46..8d7a511 100644
--- a/crates/stdx/Cargo.toml
+++ b/crates/stdx/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "stdx"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
diff --git a/crates/syntax/Cargo.toml b/crates/syntax/Cargo.toml
index 6818f3a..2c1bdb2 100644
--- a/crates/syntax/Cargo.toml
+++ b/crates/syntax/Cargo.toml
@@ -23,9 +23,9 @@
 smol_str = { version = "0.1.15", features = ["serde"] }
 serde = { version = "1.0.106", features = ["derive"] }
 
-stdx = { path = "../stdx" }
-text_edit = { path = "../text_edit" }
-parser = { path = "../parser" }
+stdx = { path = "../stdx", version = "0.0.0" }
+text_edit = { path = "../text_edit", version = "0.0.0" }
+parser = { path = "../parser", version = "0.0.0" }
 
 [dev-dependencies]
 walkdir = "2.3.1"
diff --git a/crates/test_utils/Cargo.toml b/crates/test_utils/Cargo.toml
index 45e5fb9..93eecc6 100644
--- a/crates/test_utils/Cargo.toml
+++ b/crates/test_utils/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "test_utils"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -15,4 +16,4 @@
 serde_json = "1.0.48"
 rustc-hash = "1.1.0"
 
-stdx = { path = "../stdx" }
+stdx = { path = "../stdx", version = "0.0.0" }
diff --git a/crates/text_edit/Cargo.toml b/crates/text_edit/Cargo.toml
index a69b1ef..8aadc18 100644
--- a/crates/text_edit/Cargo.toml
+++ b/crates/text_edit/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "text_edit"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
diff --git a/crates/toolchain/Cargo.toml b/crates/toolchain/Cargo.toml
index 4856668..dcf0bfc 100644
--- a/crates/toolchain/Cargo.toml
+++ b/crates/toolchain/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "toolchain"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
diff --git a/crates/tt/Cargo.toml b/crates/tt/Cargo.toml
index dfcdcf0..5b8972e 100644
--- a/crates/tt/Cargo.toml
+++ b/crates/tt/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "tt"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -13,4 +14,4 @@
 # to reduce number of compilations
 smol_str = { version = "0.1.15", features = ["serde"] }
 
-stdx = { path = "../stdx" }
+stdx = { path = "../stdx", version = "0.0.0" }
diff --git a/crates/vfs-notify/Cargo.toml b/crates/vfs-notify/Cargo.toml
index c1e53f4..54b51fa 100644
--- a/crates/vfs-notify/Cargo.toml
+++ b/crates/vfs-notify/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "vfs-notify"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -16,5 +17,5 @@
 crossbeam-channel = "0.4.0"
 notify = "5.0.0-pre.3"
 
-vfs = { path = "../vfs" }
-paths = { path = "../paths" }
+vfs = { path = "../vfs", version = "0.0.0" }
+paths = { path = "../paths", version = "0.0.0" }
diff --git a/crates/vfs/Cargo.toml b/crates/vfs/Cargo.toml
index 9ae8f19..c318a68 100644
--- a/crates/vfs/Cargo.toml
+++ b/crates/vfs/Cargo.toml
@@ -1,6 +1,7 @@
 [package]
 name = "vfs"
 version = "0.0.0"
+description = "TBD"
 license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
@@ -12,4 +13,4 @@
 rustc-hash = "1.0"
 fst = "0.4"
 
-paths = { path = "../paths" }
+paths = { path = "../paths", version = "0.0.0" }