官术网_书友最值得收藏!

Running from the trunk

As we mentioned before, stable releases of OpenStack happen on a 6-month cadence. Active development happens in the trunk of each of the software projects (the master branch on the web-based repository service for OpenStack at: http://git.openstack.org). This master repository controls the distributed version control for the OpenStack project and aids in source code management. This is very similar to the well-known GitHub service used by many other open source projects. In addition to the Git repository, there are some number of stable branches corresponding to the 6-month releases. Features are implemented in the master branch, and bug fixes are backported from the trunk to the branches on an irregular basis.

For most organizations, taking a packaged version of one of the stable branches and deploying it will suffice. There are a couple of reasons why this might not be appealing, though. For one, some organizations might find that too much change accumulates between the 6-month releases and that there's less risk in releasing more frequent and smaller changes from the trunk. Although this makes sense with a lot of software projects, OpenStack is developed by a number of loosely coordinated teams, and managing the dependencies between the development streams of each project is a complicated task. Automated testing on the trunk attempts to ensure that a change in Nova doesn't break a feature in Neutron, but the bulk of manual integration testing happens for the coordinated stable releases.

Although it's possible that an organization may want to take all the changes from the trunk before they make it down to the stable branches, it's more likely that they'll be interested in only one or two important features that haven't made it to the branches. For example, many of the teams that we have worked with were interested in leveraging external IPAM systems similar to the one provided by Infoblox long before the feature was implemented in Neutron (in the Liberty release). We've seen other situations in which an organization wanted to pull in a Cinder driver for a new SAN device before it was accepted upstream. For these use cases, it makes more sense to start off with a packaged distribution of one of the stable branches and then create a custom package only for the component that has the desired feature backported to it from the trunk.

主站蜘蛛池模板: 巩留县| 广宗县| 东乡族自治县| 花莲县| 通州区| 墨竹工卡县| 彭水| 濮阳县| 巴林右旗| 团风县| 蓝田县| 五指山市| 新民市| 桐柏县| 娄烦县| 祁门县| 神池县| 云和县| 德江县| 辉南县| 韶关市| 雅江县| 游戏| 达日县| 牙克石市| 巴马| 郸城县| 金山区| 乌什县| 浦北县| 新河县| 和平区| 天门市| 鹤岗市| 开平市| 民乐县| 阿拉尔市| 海门市| 甘南县| 同江市| 海城市|