1. 为 sbt 做贡献

为 sbt 做贡献 

以下是潜在贡献领域列表。此列表可能会很快过时,因此如果您对特定主题感兴趣,则可能需要查看sbt-dev 邮件列表

  1. 有很多可能的可视化和分析机会。

    • ’compile’ 生成源代码分析,其中包含

      • 源代码依赖关系
      • 项目间源代码依赖关系
      • 二进制依赖关系(jar + 类文件)
      • 表示源代码API 的数据结构。已经有了一些用于生成 dot 文件的代码,但尚未连接,但绘制依赖关系和继承关系图是一个普遍的工作领域。
    • ’update’ 生成一个[更新报告][Update-Report],将 Configuration/ModuleID/Artifact 映射到检索到的文件
    • Ivy 生成有关依赖关系的更详细的 XML 报告。这些报告带有 XSL 样式表以查看它们,但这不适用于大量依赖关系。在这方面的工作非常简单:XML 文件在~/.ivy2 中创建,.xsl.css 也在那里,因此您甚至不需要使用 sbt。其他方法在电子邮件线程 中进行了描述
    • 任务是静态和动态图的组合,查看运行图将很有用
    • 设置是静态图,并且存在用于生成 dot 文件的代码,但尚未连接到任何地方。
  2. 支持对外部项目的依赖,例如 GitHub 上的项目。为了更实用,这应该支持更新依赖关系。也很容易将其扩展到其他检索项目的方式。例如,对 svn 和 hg 的支持是最近的贡献。
  3. 如果您喜欢解析器,sbt 命令和输入任务是使用自定义解析器组合器编写的,这些组合器提供选项卡完成和错误处理。除其他外,效率可以提高。
  4. javap 任务尚未重新集成
  5. 实现增强的 0.11 样式 warn/debug/info/error/trace 命令。目前,您像设置其他设置一样设置它
set logLevel := Level.Warn

或 : set Test / logLevel := Level.Warn

您可以创建包装此功能的命令,例如

warn Test/run

此外,trace 目前是一个整数,但实际上应该是一个抽象数据类型。

  1. 每个 sbt 版本都有更激进的增量编译,复制错误可能很困难。有一个模式可以生成连续编译之间的差异并记录传递给 scalac 的选项将很有帮助。这可以重新播放或检查以尝试找到原因。

文档 

  1. 这些文档还有很多工作要做。如果您从 git 中检出它,有一个名为 Dormant 的目录,其中包含一些需要经过的内容。
  2. 主页提到了外部项目引用(例如指向 git 存储库的引用),但没有链接到任何解释如何使用它们的链接。
  3. 非常需要 API 文档。
  4. 在其他文档中查找有用的答案或类型/方法/值,并将对它们的引用拉到 /faq 或 /Name-Index 中,以便人们可以找到文档。总的来说,/faq 应该感觉更像是一组指向常规文档的指针,而不是文档的替代品。
  5. 许多页面可能需要更好的名称,或者在侧边栏中

    右侧有 2-4 个字的简短说明。