将语义学引入语义版本控制
Putting the Semantics into Semantic Versioning
摘要:
长期以来对软件重用的渴望在过去几年中取得了惊人的进步。许多现代软件开发生态系统现在都有社区贡献的丰富的公共可用组件集。下游开发人员可以利用这些上游组件,提高他们的生产力。但是,组件以自己的速度发展。这给下游开发人员带来了义务和利益,特别是因为更改可能会中断,需要额外的下游工作来适应。升级太晚会使下游容易受到安全问题的影响,并错过有用的改进;升级太早会导致工作量过大。语义版本控制已经被提出作为一种优雅的机制来传达兼容性级别,使下游开发人员能够自动化依赖升级。虽然这是值得怀疑的版本号是否可以充分表征版本兼容性一般,我们认为,开发人员将大大受益于工具,如语义版本计算器,以帮助他们安全升级。现在是研究社区开发这样的工具的时候了:大型组件生态系统已经存在并且可以访问,组件交互已经可以通过自动化构建来观察,程序分析的最新进展使得相关工具的开发变得可行。特别是,合同(传统的和轻量级的)是语义版本控制计算器的一个有前途的输入,它可以建议升级是否可能是安全的。
英文摘要:
The long-standing aspiration for software reuse has made astonishing strides in the past few years. Many modern software development ecosystems now come with rich sets of publicly-available components contributed by the community. Downstream developers can leverage these upstream components, boosting their productivity. However, components evolve at their own pace. This imposes obligations on and yields benefits for downstream developers, especially since changes can be breaking, requiring additional downstream work to adapt to. Upgrading too late leaves downstream vulnerable to security issues and missing out on useful improvements; upgrading too early results in excess work. Semantic versioning has been proposed as an elegant mechanism to communicate levels of compatibility, enabling downstream developers to automate dependency upgrades. While it is questionable whether a version number can adequately characterize version compatibility in general, we argue that developers would greatly benefit from tools such as semantic version calculators to help them upgrade safely. The time is now for the research community to develop such tools: large component ecosystems exist and are accessible, component interactions have become observable through automated builds, and recent advances in program analysis make the development of relevant tools feasible. In particular, contracts (both traditional and lightweight) are a promising input to semantic versioning calculators, which can suggest whether an upgrade is likely to be safe.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。