SynapseML 开发设置
- Install JDK 11
- 您可能需要一个Oracle登录才能下载。
- 安装 SBT
- 在GitHub上分叉仓库
- 查看如何操作:Fork a repo - GitHub Docs
- 克隆你的分支
git clone https://github.com/<your GitHub handle>/SynapseML.git
- 此命令将自动添加你的分支作为默认远程仓库,称为
origin
- 添加另一个Git远程以跟踪原始的SynapseML仓库。建议将其命名为
upstream
:git remote add upstream https://github.com/microsoft/SynapseML.git
- 了解更多关于Git远程的信息,请参阅:Git - Working with remotes
- 转到您克隆仓库的目录(例如,
SynapseML
),使用cd SynapseML
- 运行sbt以编译并获取数据集
sbt setup
- 安装 IntelliJ
- 配置 IntelliJ
- 在初始化期间安装 Scala 插件
- 打开 IntelliJ 中的 SynapseML 目录
- 如果项目没有自动导入,点击
build.sbt
并导入项目
- 准备你的Python环境
- 安装 Miniconda
- 注意:如果你想从IntelliJ运行conda命令,你可能需要在安装过程中选择将conda添加到PATH的选项。
- 通过从
synapseml
目录运行conda env create -f environment.yml
来激活synapseml
conda环境。注意如果你使用的是Windows机器,请移除
horovod
在environment.yml文件中的要求,因为horovod安装仅 支持Linux或macOS。Horovod仅用于命名空间synapse.ml.dl
。
- 更新ScalaTest配置模板
- 在IntelliJ中,选择左上角的三明治菜单。
- 选择运行,然后选择编辑配置。在弹出窗口的底部,选择编辑配置模板。
- 从右侧列表中选择ScalaTest
- 在VM选项下,添加
--add-exports java.base/sun.nio.ch=ALL-UNNAMED
。应用更改。
注意
如果您将定期为SynapseML仓库做出贡献,您会希望保持您的fork与上游仓库同步。请阅读此GitHub文档以了解更多信息并学习如何做到这一点。
发布和使用构建机密
要在构建中使用密钥,您必须是 synapsemlkeyvault 和 Azure 订阅的一部分。如果您是 MSFT 内部人员并希望被添加,请联系 synapseml-support@microsoft.com
SBT 命令指南
Scala 构建命令
compile
, test:compile
和 it:compile
分别编译主类、测试类和集成测试类
test
运行所有synapsemltests
scalastyle
在主程序上运行scalastyle检查
test:scalastyle
在测试上运行scalastyle检查
unidoc
为scala源代码生成文档
Python 命令
createCondaEnv
如果不存在,则从environment.yml
创建一个conda环境synapseml
。
此环境用于python测试。
在使用python构建命令之前,请激活此环境。
cleanCondaEnv
移除 synapseml
conda 环境
packagePython
编译scala,运行python生成脚本,并创建一个wheel
generatePythonDoc
为生成的Python代码生成文档
installPipPackage
将生成的python wheel安装到现有环境中
testPython
生成并运行Python测试
环境 + 发布命令
getDatasets
下载测试中使用的所有数据集到目标文件夹
setup
compile
、test:compile
、it:compile
、getDatasets
的组合
package
将库打包成jar
publishBlob
将Jar发布到SynapseML的基于Azure blob的Maven仓库。(需要密钥)
publishLocal
将库发布到本地 Maven 仓库
publishDocs
将scala和python文档发布到SynapseML的Azure存储账户。(需要密钥)
publishSigned
将库发布到Sonatype暂存仓库
sonatypeRelease
推广已发布的Sonatype工件