我知道编辑这个网站吗?

项目管理

ImageJ2和相关的SciJava项目利用了多个项目管理工具。

git

SciJava 项目使用Git改进的控制系统来管理其source code

有关更多信息、教程等,请参阅第 Git 页。

Maven

SciJava 项目使用 Maven 作为其项目基础设施。他们使用SciJava Maven repository(运行Sonatype Nexus)来部署组件和访问项。这样的存储库有两个主要目的:

部署

SciJava Maven 存储库的主要目的是为尚未准备好部署到 OSS Sonatype 的工件提供服务。通常,这些组件处于 versioned at 0.x状态,即等待中。一旦达到组件 1.0.0,我们就会尝试release them to the central Maven repository via OSS Sonatype

对于跨多个组件的敏捷开发这个目的也至关重要。有关详细信息,请参阅Nine Reasons to Use a Repository ManagerRepository Management with Nexus

代理

SciJava Maven 存储库的次要目的是充当 Maven Central 以及几个有用的第三方存储库的快速本地镜像。

它就像公共 Maven 存储库的统一、镜像,减少了远程服务器上的负载,并可能减少本地构建时间。

开发人员可以通过将以下部分添加到其 $HOME/.m2/settings.xml 文件中来来自复制中的受益人: ... scijava-mirror SciJava public mirror repository https://maven.scijava.org/content/groups/public *

持续集成

SciJava 项目使用Github Actions,是一个基于云的工作流自动化系统,它是 Github 的一部分,并支持continuous integration (CI)。Github Actions 自动检查代码是否存在构建和测试错误。

问题跟踪

SciJava 软件项目使用 GitHub Issues 管理任务和优先级:

您可以使用 ImageJ 搜索门户的 GitHub 按钮在搜索此处问题:

以前,一些项目使用不同的问题跟踪器。这些旧问题仍然可以作为归档提供:

ImageJ2 Trac
LOCI/Bio-Formats Trac
Fiji BugZilla

问题有什么用?

问题和里程碑是面向公众的实体,但其内容可能技术性最强,作为可以开发人员的路线图和实施指南。正如我们所看到的,问题和里程碑的不同人群及其需求如下:

WHO 什么 如何?
用户
想...
了解已经报道的内容 浏览和搜索所有未解决的问题.
跟踪感兴趣的问题 使用订阅所需的问题通知.
了解版本中修复了哪些问题 浏览特定问题里程碑
(e.g., 1.0.0 问题, 1.0.0 错误, 1.0.0 增强功能).
提出问题并报告新问题 使用大绿色“新问题”按钮报告新问题,
or via ImageJ's 报告错误 plugin.

想...
跟踪他们当前的任务 浏览分配给特定开发人员的问题
(e.g., 克特鲁登, 希讷姆).

寻找新的工作任务

浏览“需要帮助”标签 or 未分配的问题.

实施讨论细节等的地方

使用拉取请求.

维护者
want...

轻松查看需要注意的事项

浏览没有里程碑的问题.

忽略不活动的问题而关闭它们

使用“计划外”的里程碑.

规划制定时间表

使用未来里程碑 (e.g., 图像j2, 科幻).

报告已完成的功能

使用完毕里程碑 (e.g., 图像j2, 科幻).

为了满足这些需求,我们对 GitHub 问题使用以下约定: 里程碑

  • 对于短期活跃开发,使用名称 m1、m2 等。
    • These milestones themselves have no due date and never close, and contain only open issues
    • When an issue is closed, it is moved to match its corresponding release milestone.
  • 未来计划的重大变更应包含在SemVer命名的里程碑中。
  • 所有项目都应该有一个“计划外”的里程碑。
    • Issues in “unscheduled” are things that core developers and maintainers cannot make time to address. 问题
  • 使用标准 GitHub 标签。
  • 对于具有多个组件的存储库(例如,imagej-ui-swing),根据需要添加橙色的“组件:XXXX”标签。
  • 每个问题都必须属于一个里程碑。
    • Use the “unscheduled” milestone for inactive issues.
  • 如果您当前正在解决某个问题,则须将其分配给自己。
  • 近期里程碑中的所有问题都应该有一个受托人。

使用这些约定会产生一个工作流程,其中新问题出现时不会受让人也没有里程碑,项目维护人员或将他们分配给将执行工作的开发人员,或者将问题置于“未计划”状态而不会受让人。

当问题结束时,它们会被分类为与每个项目的发布标签相匹配的里程碑,从而可以轻松浏览每个版本中解决了哪些问题。

感兴趣的高级主题(即bugsenhancements)可以通过标签轻松过滤,而里程碑则确定时间表和功能开发。

请注意,里程碑和软件版本之间的可以是偶多的:例如,错误关系修复版本,甚至添加新功能,可能不需要它们自己的里程碑。好的里程碑结构应该与好的githistory读起来类似:信息丰富但又于冗长。

文章提交

为 SciJava 项目做出贡献的首选机制是使用 GitHub pull requests!有关详细信息,请参阅Contributing页面。

路线图链接

  • News关于ImageJ2和斐济的发展,包括状态更新、有关Smashing的观察和评论。
  • Recent changes本网站(不是来源代码本身)。

可引用代码

其中许多工具用于从技术角度促进reproducibility。从社会角度来看,我们正在为科学编写软件 - 其中scholarly citations提供了另一种可重复性的货币。

为此,开发人员现在可以使用digital archives like Zenodo来提供一致的引用方法。

另请参阅

  • Releases页面,了解有关如何使用这些资源发布SciJava软件工件的更多信息。