【新功能上线】mooncakes.io:新一代的MoonBit包管理平台来啦!!
今天,我们很高兴地宣布:mooncakes.io (MoonBit的包管理和共享平台)正式上线!与此同时,我们还推出了Moondoc,它用于记录mooncakes.io内各种包和库,确保开发者可以轻松使用各种资源。
MoonBit最大的价值在于生态,更多的人更早的参与进来可以帮助我们一起完善MoonBit平台,一起分享它的成长。虽然还处于非常早期的阶段,还有很多地方需要完善,但是我们想第一时间分享给大家!
接下来,让我们一起深入了解 mooncakes.io 的独特之处。
mooncakes.io:中心化的MoonBit包管理平台
mooncakes.io 是一个中心化的MoonBit包管理。在这里,用户可以轻松上传分享、使用以及探索各种MoonBit模块。
为此,MoonBit的构建系统moon
集成了与 mooncakes.io 进行交互的命令,让用户可以免去手动下载和配置依赖的困扰。与其他大多数包管理器不同,MoonBit的依赖解析使用与Go类似的最小版本选择算法,可以精确地确定需要构建哪些依赖,不会隐式地升级新版本,从而为开发者打造稳定可重现的构建体验。
mooncakes.io 托管了所有用户发布的MoonBit模块,这些模块 也可以称之为“月饼”。用户发布到 mooncakes.io 的内容以模块为最小单位,每个模块下可以有多个包。每个用户在 mooncakes.io 有自己独立的命名空间,用户上传的模块的名称格式为 <username>/<package_name>
。在 mooncakes.io 发布的模块版本根据语义化版本2.0.0定义,月兔将根据兼容性解析具体的版本。
除此之外,mooncakes.io 还是一个文档托管平台,当用户成功发布一个模块之后,mooncakes.io
会自动构建该模块的文档页面。我们希望这样一个中心化平台能为用户提供简单、一致的使用体验。
为进一步增强用户体验,我们还提供与 mooncakes.io 深度整合的工具链。
与 mooncakes.io 深度整合的工具链
- MoonBit的构建系统
moon
集成了与 mooncakes.io 进行交互的命令
moon login
:登录到 mooncakes.io
moon register
:在mooncakes.io上注册账号
moon publish
:发布一个包到 mooncakes.io。其中版本号格式按照语义化版本2.0.0进行校验,对于同一个模块,每次发布的版本号必须单调递增。
moon add
:添加一个依赖。例如 moon add Yoorkin/example/list@0.1.2
,如果不指定版本 moon add Yoorkin/example/list
将会添加最新版本。构建系统会执行依赖解析,找到所有需要依赖的模块及其版本,然后从 mooncakes.io 下载相关模块到当前模块,同时自动更新 moon.mod.json
。
moon remove
:移除一个依赖
moon tree