
热补丁 冷补丁
Today marks three years since our first patch release (4.3.7p1) way back on 15th of May 2014 and the subsequent creation of the Sustained Engineering (SE) team!
距 2014年5月15日 我们的 第一个 补丁版本(4.3.7p1) 以及随后成立的Sustained Engineering(SE)团队已经 三年了,今天 !
The SE team was established to help improve both the quality and the stability of the latest shipped (and some legacy) versions of Unity. Weekly patches and rolled up monthly releases are the main way we try to achieve this.
SE团队的建立是为了帮助改善Unity的最新发布(和某些旧版)版本的质量和稳定性。 每周补丁和每月发布的汇总是我们尝试实现此目标的主要方法。
As of today we have released over 220 patches, which include almost 6000 fixes from multiple teams and areas of R&D.
截止到今天,我们已经发布了 220多个补丁 ,其中包括 来自多个团队和研发领域的 近6000个补丁 。
The first incarnation of SE was a single Release Manager, with the sole objective of getting fixes to the users from time to time, while ensuring those fixes were not lost in the process. We are now a fully-fledged team of 15 developers and 3 QA engineers, actively fixing and improving the Unity codebase every day. The official launch event of the SE team was held in Brighton in October 2015 and the SE-QA team was formed in November 2016.
SE的第一个版本是单个Release Manager,其唯一目的是不时向用户提供修复程序,同时确保这些修复程序不会丢失。 现在,我们是由15名开发人员和3名QA工程师组成的成熟团队,每天都在积极修复和改进Unity代码库。 SE团队的正式发布活动于 2015 年 10月 在布莱顿举行, SE-QA团队于 2016 年 11月成立 。
In addition to fixing bugs, the team owns some of Unity’s mature systems such as Kernel and the Version Control System. We also work on improving the user experience for our source code customers. One of the major focus areas for us right now is helping to reduce technical debt – more about this will be communicated in the near future.
As well as maintaining all released versions of Unity, members of the SE team also help to alleviate the pressure on other teams in R&D by handling backports, assisting with bug fixes and writing new automated tests. This helps those teams to concentrate on new features and their own high priority bug fixes.
除了修复错误外,团队还拥有Unity的一些成熟系统,例如内核和版本控制系统。 我们还致力于改善源代码客户的用户体验。 目前,我们关注的重点领域之一是帮助减少技术债务-有关更多信息将在不久的将来传达。
SE团队成员不仅维护Unity的所有发行版本,还通过处理反向移植,协助错误修复和编写新的自动化测试来减轻研发中其他团队的压力。 这可以帮助这些团队专注于新功能和他们自己的高优先级错误修复。
Members of the SE team also visit Enterprise Support customers, focusing on improving the understanding of our processes and hence increasing confidence in our product. The team participates in both customer project reviews and upgrade tests for the new releases, and has a collection of customer projects that could be used for testing future releases.
SE团队的成员还拜访了企业支持客户,重点是提高对我们流程的理解,从而增强对我们产品的信心。 该团队参与客户项目审查和新版本的升级测试,并拥有可用于测试未来版本的客户项目集合。
We have come a long way, so let’s take a look at how we got here.
我们已经走了很长一段路,所以让我们来看看我们是如何到达这里的。
During Unity 5.0, the intention was to support a version for three months until the next major release. However, after user feedback we extended this to one year. This means we have multiple versions that we are supporting simultaneously, each version for a year since its initial release.
在Unity 5.0期间,其目的是为一个版本提供3个月的支持,直到下一个主要版本为止。 但是,在用户反馈后,我们将其延长了一年。 这意味着我们同时支持多个版本,每个版本自最初发布以来已使用一年。
When possible we fix a bug on trunk first and then propagate that fix to each version, starting with the latest version and working towards the oldest – (a process known as ‘backporting’). This helps to ensure that you don’t see a bug get fixed in one version and then reappear when you upgrade. We also add new automated tests where possible, to reduce the risk of the problem being reintroduced in future versions.
可能的话,我们会先修复 主干 上的错误 ,然后再将其传播到每个版本,从最新版本开始,直到最旧的版本(此过程称为“反向移植”)。 这有助于确保您不会在某个版本中看到错误,也不会在升级时再次出现该错误。 我们还会在可能的情况下添加新的自动化测试,以减少在以后的版本中重新引入该问题的风险。
During the last year, the quality of our patches became our priority; we improved our QA processes and scrutinised every fix that went in, sometimes rejecting fixes. When we first started patch releases, our process was to roll all the fixes into the patch and then QA would verify the reported bug fixes. We still verify each bug fix today, but we now have a dedicated SE QA team who also run a mini Release Acceptance Test (based on the areas touched, primarily) on every patch release. We also run a subset of our automated tests on every change we make, and the full collection of tests on each release.
去年,我们的补丁质量成为我们的首要任务; 我们改进了质量检查流程,并仔细检查了所有已提交的修复程序,有时会拒绝修复程序。 当我们第一次开始发布补丁程序时,我们的过程是将所有修复程序汇总到补丁程序中,然后由质量检查人员验证报告的错误修复程序。 我们仍在今天验证每个错误修复,但是我们现在有一个专门的SE QA团队,他们在每个补丁版本中都运行一个微型版本接受测试(主要基于接触的领域)。 我们还运行了自动化测试上 ,我们 尽 一切 变化 的一个子集 ,以及各版本测试的足额征收。
We also don’t backport every fix; we recognise that each change carries an inherent risk and so we must decide if the benefit outweighs the risk. We do this by examining several factors including the user pain. The more stable a version becomes, the stricter we become on accepting changes.
我们也不会向后移植所有修复程序。 我们认识到每次变更都会带来固有风险,因此我们必须确定收益是否大于风险。 我们通过检查包括 用户痛苦 在内的几个因素来做到这一点 。 版本变得越稳定,我们接受更改就越严格。
It is interesting to note that we can now apply fixes, run our QA process and generate the release all within a week, which was considered an impossible goal when we started patches. In addition, we do this for multiple versions simultaneously, thanks to the dedication of all teams involved, developers, QA and more importantly the build and the tools teams.
有趣的是,我们现在可以在一周内应用修补程序,运行质量检查流程并生成发行版,这在我们启动补丁程序时被认为是不可能实现的目标。 此外,由于所有相关团队,开发人员,质量保证以及更重要的是构建和工具团队的奉献,我们同时针对多个版本执行此操作。

Note: We are still supporting 5.4, 5.5 and 5.6 so these numbers will increase.
注意:我们仍支持5.4、5.5和5.6,因此这些数字将增加。
The Sustained Engineering team is continuing to invest in ways of improving the quality and stability of Unity even more and providing updates at regular intervals. We’re hard at work to see how much more we can achieve in the next three years – Happy Birthday to SE!
可持续工程团队将继续进行投资,以进一步提高Unity的质量和稳定性并定期提供更新。 我们正在努力寻找未来三年内可以实现的目标– SE生日快乐!

热补丁 冷补丁