출시계획
소개
Time-based releases have been shown to produce the best quality free software. A time-based release is one that does not wait for features or bug fixes, but is based (as purely as possible) on time. This enforces discipline in introducing fixes, provides predictability, and allows for more regular releases. It is also the case that we will necessarily release earlier, and then rapidly, incrementally, bug fix releases based on the previous stable release. So, if you have a need for the very highest quality release, it may make sense to delay a move until the first or perhaps second minor point release.
- 리브레오피스는 연 2회, 예측 가능한 출시를 합니다. 출시는 다른 무료 소프트웨어 프로젝트들(예를들면 Gnome)의 추세에 맞추어 진행됩니다. 그리고 그 출시들은 리눅스 배포출시보다 최소한 한달 먼저 진행됩니다.
- Synchronising the time-based release schedule with the wider Free Software ecosystem also has huge benefits in getting our new features out to users as quickly as possible, with a minimum of lag in the distribution cycle. As a result, we are aiming for six monthly releases, in February and August.
- There are two versions available: the latest release for technology enthusiasts, early adopters and power users, and the previous release - with fewer features but tested for longer - for corporate implementations and more cautious users.
- 그 결과, 사용자들은 6개월마다 넓은 범위로 새로운 기능, 수정, 그리고 기능이 향상된 버전을 이용할 수 있습니다. 추가로, 순수 버그 수정에 따른 소규모 출시도 많이 이루어집니다. The first X.Y.0 release is intended for early adopters. More conservative users are advised to wait for a later X.Y.Z bugfix release.
Note that the dates in this schedule may change if there are serious technical or other problems with the release. An extra RC might be needed if the final release candidate has a catastrophic problem. Such a problem could delay the final release by a week or more. The decision should be made at a meeting of the Engineering Steering Committee.
The simplified graphic below shows three releases placed on a timeline consisting of 24 months.
24.2 release
Release | Freeze | Publishing |
---|---|---|
24.2.0 (freeze: week 02) | Week 47 , 11 20, 2023 - 11 26, 2023 | Week 05 , 1 29, 2024 - 2 4, 2024 |
24.2.1 | Week 06 , 2 5, 2024 - 2 11, 2024 | Week 09 , 2 26, 2024 - 3 3, 2024 |
24.2.2 | Week 10 , 3 4, 2024 - 3 10, 2024 | Week 13 , 3 25, 2024 - 3 31, 2024 |
24.2.3 | Week 15 , 4 8, 2024 - 4 14, 2024 | Week 18 , 4 29, 2024 - 5 5, 2024 |
24.2.4 | Week 20 , 5 13, 2024 - 5 19, 2024 | Week 23 , 6 3, 2024 - 6 9, 2024 |
24.2.5 | Week 26 , 6 24, 2024 - 6 30, 2024 | Week 29 , 7 15, 2024 - 7 21, 2024 |
24.2.6 | Week 33 , 8 12, 2024 - 8 18, 2024 | Week 36 , 9 2, 2024 - 9 8, 2024 |
24.2.7 | Week 41 , 10 7, 2024 - 10 13, 2024 | Week 44 , 10 28, 2024 - 11 3, 2024 |
End of Life | November 30, 2024 |
See also the detailed schedule and the release notes.
7.6 release
Release | Freeze | Publishing |
---|---|---|
7.6.0 (freeze: week 30) | Week 19 , 5 8, 2023 - 5 14, 2023 | Week 34 , 8 21, 2023 - 8 27, 2023 |
7.6.1 | Week 34 , 8 21, 2023 - 8 27, 2023 | Week 37 , 9 11, 2023 - 9 17, 2023 |
7.6.2 | Week 38 , 9 18, 2023 - 9 24, 2023 | Week 39 , 9 25, 2023 - 10 1, 2023 |
7.6.3 | Week 44 , 10 30, 2023 - 11 5, 2023 | Week 47 , 11 20, 2023 - 11 26, 2023 |
7.6.4 | Week 50 , 12 11, 2023 - 12 17, 2023 | Week 53 , 1 1, 2024 - 1 7, 2024 |
7.6.5 | Week 05 , 1 29, 2024 - 2 4, 2024 | Week 08 , 2 19, 2024 - 2 25, 2024 |
7.6.6 | Week 10 , 3 4, 2024 - 3 10, 2024 | Week 13 , 3 25, 2024 - 3 31, 2024 |
7.6.7 | Week 16 , 4 15, 2024 - 4 21, 2024 | Week 19 , 5 6, 2024 - 5 12, 2024 |
End of Life | June 12, 2024 |
See also the detailed schedule and the release notes.
7.5 release
Release | Freeze | Publishing |
---|---|---|
7.5.0 (freeze: week 02) | Week 47 , 11 21, 2022 - 11 27, 2022 | Week 05 , 1 30, 2023 - 2 5, 2023 |
7.5.1 | Week 06 , 2 6, 2023 - 2 12, 2023 | Week 09 , 2 27, 2023 - 3 5, 2023 |
7.5.2 | Week 10 , 3 6, 2023 - 3 12, 2023 | Week 13 , 3 27, 2023 - 4 2, 2023 |
7.5.3 | Week 15 , 4 10, 2023 - 4 16, 2023 | Week 18 , 5 1, 2023 - 5 7, 2023 |
7.5.4 | Week 20 , 5 15, 2023 - 5 21, 2023 | Week 23 , 6 5, 2023 - 6 11, 2023 |
7.5.5 | Week 26 , 6 26, 2023 - 7 2, 2023 | Week 29 , 7 17, 2023 - 7 23, 2023 |
7.5.6 | Week 33 , 8 14, 2023 - 8 20, 2023 | Week 36 , 9 4, 2023 - 9 10, 2023 |
7.5.7 | Week 38 , 9 18, 2023 - 9 24, 2023 | Week 39 , 9 25, 2023 - 10 1, 2023 |
7.5.8 | Week 41 , 10 9, 2023 - 10 15, 2023 | Week 44 , 10 30, 2023 - 11 5, 2023 |
End of Life | November 30, 2023 |
See also the detailed schedule and the release notes.
릴리즈 요일
릴리즈는 시간기반이지만 유연성을 위해서 스케쥴은 요일단위가 아니라 주(week) 단위로 이루어집니다. 릴리즈는 버그, 빌드 오류, 기술적 이슈에 의해 몇일정도 연기 될 수 있습니다.
릴리즈는 몇개의 베타버전과 릴리즈 빌드 후보군으로 이루어져있습니다. 각 빌드에 대해서 몇가지 작업이 필요합니다.
이상적인 워크플로우:
- 월요일: 커밋 기한; reminder is sent to devel, l10n mailing list before it happens
- 화요일: the tag is created on a commit that builds and passes unit-, subsequent-, and smoke-tests; tag is announced on the devel and qa mailing lists
- 수요일: builds are uploaded on the early pre-release site; they are announced on the devel and qa mailing lists
- 목요일: builds are uploaded on mirrors. They are announced via many channels, e.g. mailing lists, twitter
- 금요일: 빌드들은 공식 사전릴리즈 사이트 에서 열람 가능합니다.
최종 릴리즈는 주로 최종 릴리즈 후보가 나오고 며칠 뒤인 목요일에 공지됩니다.
Note that we are very strict about commits to the final release candidate, so full regression test is not needed. It is used as the final build when it passes the needed tests. It is just renamed on mirrors.
스케쥴
스케쥴은 아래와 같은 규칙을 준수합니다:
- do the major release every six months and synchronize it (at least one month ahead) with major Linux distributions; it always comes with a wide range of features, fixes, and enhancements
- do a pure bugfix release every month after the main release until it is good enough even for the most conservative people; do it less frequently afterwards
- do pure bugfix releases, including security fixes, until the next release is ready for most conservative people
- do not do two builds the same week.
결과는 아래 템플릿을 따릅니다:
Event | Summer | Winter |
---|---|---|
x.y feature freeze | 6월(초) | Dec(b) |
x.y.0 first release | Aug(b) | Feb(b) |
x.y.1 bugfix release | Sep(b) | Mar(b) |
x.y.2 bugfix release | Oct(b) | Apr(b) |
x.y.3 bugfix release | Nov(b) | May(b) |
x.y.4 bugfix release | Dec(b) | Jun(b) |
x.y.5 bugfix release | Feb(m) | Aug(m) |
x.y.6 bugfix release | Apr(m) | Oct(m) |
(초)는 해당 월 초, (중)은 해당 월 중순, (말)은 해당 월 말을 의미합니다.
String freeze
The release plans for the first version of each major release indicate a "hard English string & UI freeze". The idea is to make the lives of translators easier. The translators should be able to trust that no new translatable strings are added into the UI or Help files between the period of the string freeze and release.
In practice, you should keep an eye on the tagging of the first release candidate. One way to find out, if RC1 has been tagged is to visit the tag view of the LibreOffice core repository in Gerrit and input into the filter field: libreoffice-X.Y.Z
. If the results do not contain any entry for libreoffice-X.Y.Z.1
, RC1 has not yet been tagged and string changes can still be committed.
After the first version of a major release is out, correcting mistakes in the UI and Help strings is fine. Any completely new content should target the next major release.
Version scheme
We do several builds around each release. The following versioning scheme is used:
- X.Y.0.0.alphaZ - Zth alpha version of the initial release
- X.Y.0.0.betaZ - Zth beta version of the initial release
- X.Y.0.Z - Zth release candidate of the initial release, last rc is considered as final and put on the main download page
- X.Y.1.Z - Zth release candidate of the 1st bugfix release, last rc is considered as final and put on the main download page
It seems to be the best compromise with the following advantages:
- easy to understand for normal users, alpha, beta flags are known from other projects, so they set reasonable expectations
- correct alphabetical sorting in RPM, Bugzilla
- “easy” to parse (alpha/beta strings delimited by dot)
There was a long discussion about this scheme on the mailing list.
Accelerating the release cycle
This acceleration of the release cycle involves some considerable release engineering and QA effort. To reduce the cost of these, we work to provide complete (ie. containing all languages) daily snapshots of the master branch to allow continual testing of code improvements. This works partially already, as can be seen/downloaded from here.
Similarly, we plan to increasingly automate the build process to allow a much lower-touch release flow, and to continue to shrink the footprint of our binaries to allow far more rapid transfer of product-equivalent builds.
단종 릴리즈
A release normally has a lifetime of around nine months. We consider a release to have reached its End of Life (EOL) one month after the last planned release.
If you want longer term support for a release, you’re encouraged to engage any certified L3 provider who could provide you with the service.
Because of the amount of data, the releases were split out to ReleasePlan/Archive.