]> source.dussan.org Git - gitea.git/commitdiff
add sparse url in cargo package guide (#26937)
authormerlleu <r.langdorph@gmail.com>
Wed, 13 Sep 2023 04:14:10 +0000 (06:14 +0200)
committerGitHub <noreply@github.com>
Wed, 13 Sep 2023 04:14:10 +0000 (12:14 +0800)
Hello,

The current package guide for cargo gives you only the git index, with
the HTTP Index stabilized being used as default for crates.io and being
better for most use-cases.

However, it's not documented that gitea supports the sparse spec, and it
does not require the _crates-index git repo for the sparse api.

I personally think we should push users to use the sparse instead of the
git repository. (Even let users disable crates-index repos if they only
want to use sparse)

docs/content/usage/packages/cargo.en-us.md
docs/content/usage/packages/cargo.zh-cn.md
templates/package/content/cargo.tmpl

index d5c2fab6fd458177846a6440c1353140499ad70d..356e7ff0b9bef0c92e29035c6b1316943a4ae63e 100644 (file)
@@ -50,10 +50,11 @@ Add the following text to the configuration file located in the current users ho
 default = "gitea"
 
 [registries.gitea]
-index = "https://gitea.example.com/{owner}/_cargo-index.git"
+index = "sparse+https://gitea.example.com/api/packages/{owner}/cargo/" # Sparse index
+# index = "https://gitea.example.com/{owner}/_cargo-index.git" # Git
 
-[net]
-git-fetch-with-cli = true
+[net]
+git-fetch-with-cli = true
 ```
 
 | Parameter | Description |
@@ -72,6 +73,12 @@ token = "Bearer {token}"
 | --------- | ----------- |
 | `token`   | Your [personal access token](development/api-usage.md#authentication) |
 
+## Git vs Sparse
+
+Currently, cargo supports two ways for fetching crates in a registry: Git index & sparse index.
+Sparse index is the newest method and offers better performance when updating crates compared to git.
+Since Rust 1.68, sparse is the default method for crates.io.
+
 ## Publish a package
 
 Publish a package by running the following command in your project:
index 126dfd370a3348a66dd783ed90a03fd55aceab57..285fe9c8b3729105db71125ab7e95c7a99e5a714 100644 (file)
@@ -50,7 +50,8 @@ Cargo 将可用软件包的信息存储在一个存储在 git 仓库中的软件
 default = "gitea"
 
 [registries.gitea]
-index = "https://gitea.example.com/{owner}/_cargo-index.git"
+index = "sparse+https://gitea.example.com/api/packages/{owner}/cargo/" # Sparse index
+# index = "https://gitea.example.com/{owner}/_cargo-index.git" # Git
 
 [net]
 git-fetch-with-cli = true
index b7a34632e4a2349b29b327f4be58eab6a16348cd..67e003c9d1a14fe2b2dc5a869b7216f36a70f202 100644 (file)
@@ -8,7 +8,8 @@
 default = "gitea"
 
 [registries.gitea]
-index = "<gitea-origin-url data-url="{{AppSubUrl}}/{{.PackageDescriptor.Owner.Name}}/_cargo-index.git"></gitea-origin-url>"
+index = "<gitea-origin-url data-url="sparse+{{AppSubUrl}}/api/packages/{{.PackageDescriptor.Owner.Name}}/cargo/"></gitea-origin-url>" # Sparse index
+# index = "<gitea-origin-url data-url="{{AppSubUrl}}/{{.PackageDescriptor.Owner.Name}}/_cargo-index.git"></gitea-origin-url>" # Git
 
 [net]
 git-fetch-with-cli = true</code></pre></div>