我知道编辑这个网站吗?

项目管理

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 Manager和Repository 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.
  • 如果您当前正在解决某个问题,则须将其分配给自己。
  • 近期里程碑中的所有问题都应该有一个受托人。

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

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

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

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

文章提交

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

路线图链接

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

可引用代码

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

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

另请参阅

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