阅读 github.com/username/kit/go/database/go/database/go.mod 修订 go/database/v1.0.1:未知修订 go/database/v1.0.1

reading github.com/username/kit/go/database/go/database/go.mod at revision go/database/v1.0.1: unknown revision go/database/v1.0.1

我有一个 public 工具包回购,我将 v1.0.3 推上去并具有以下结构

go
-database
--database.go
--go.mod
--go.sum

我需要

require github.com/michael-ottink/kit/go/database v1.0.3

测试工具包回购如何工作。但是当我的主项目 运行 go mod tidy

时出现以下错误
github.com/michael-ottink/kit/go/database@v1.0.3: reading github.com/michael-ottink/kit/go/database/go/database/go.mod at revision go/database/v1.0.2: unknown revision go/database/v1.0.3

我是新手,我很难理解问题出在哪里?如果需要更多信息,我会更新 post.

这是我的database.go

package database

    import (
        "gorm.io/gorm"
    )
    
    type Database struct {
        *gorm.DB
    }
    
    type Config struct {
        Driver   string
        Host     string
        Username string
        Password string
        Port     string
        Database string
        Timezone string
    }

如果您尝试将它引入一个只有 go.mod 、 go.sum 和 main.go.

的全新项目,则会发生此错误

v1.0.3 上的提交添加了一个名为 slice 的空模块。存储库变成了多模块,并且隐含了更多的规则。 多模块存储库的文档是 here.

不幸的是,名为 /kit 的存储库的第一个文件夹不包含模块,只包含其子文件夹 /go

当找到多个模块时,像 v1.0.3 这样的标签被归于存储库,但没有模块,这意味着 go get github.com//michael-ottink/kit@v1.0.3 什么都不做。

尝试使用 go get github.com//michael-ottink/kit/go@v1.0.3 获取子文件夹时,返回的错误确认未找到模块。

要获取回购协议,标签可能看起来像 go@v1.0.3

要单独标记每个模块,标记可以是 go/database/v1.0.3。当slice模块准备好后,就可以进行类似的标记了。

仍然是从模块开始时,每个模块一个存储库是更安全的选择,如文档中引用的那样 (here):

For all but power users, you probably want to adopt the usual convention that one repo = one module. It's important for long-term evolution of code storage options that a repo can contain multiple modules, but it's almost certainly not something you want to do by default.