Skip to main content
Version: 1.0.8

SynapseML 开发设置

  1. Install JDK 11
    • 您可能需要一个Oracle登录才能下载。
  2. 安装 SBT
  3. 在GitHub上分叉仓库
  4. 克隆你的分支
    • git clone https://github.com/<your GitHub handle>/SynapseML.git
    • 此命令将自动添加你的分支作为默认远程仓库,称为 origin
  5. 添加另一个Git远程以跟踪原始的SynapseML仓库。建议将其命名为upstream
    • git remote add upstream https://github.com/microsoft/SynapseML.git
    • 了解更多关于Git远程的信息,请参阅:Git - Working with remotes
  6. 转到您克隆仓库的目录(例如,SynapseML),使用 cd SynapseML
  7. 运行sbt以编译并获取数据集
    • sbt setup
  8. 安装 IntelliJ
  9. 配置 IntelliJ
    • 在初始化期间安装 Scala 插件
    • 打开 IntelliJ 中的 SynapseML 目录
    • 如果项目没有自动导入,点击 build.sbt 并导入项目
  10. 准备你的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

  11. 更新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:compileit: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

compiletest:compileit:compilegetDatasets 的组合

package

将库打包成jar

publishBlob

将Jar发布到SynapseML的基于Azure blob的Maven仓库。(需要密钥)

publishLocal

将库发布到本地 Maven 仓库

publishDocs

将scala和python文档发布到SynapseML的Azure存储账户。(需要密钥)

publishSigned

将库发布到Sonatype暂存仓库

sonatypeRelease

推广已发布的Sonatype工件