برنامه انتشار
معرفی
نشان داده شده است که انتشار مرتب و مبتنی بر زمان باکیفیتترین نرمافزار آزاد را تولید میکند. انتشار مبتنی بر زمان، نسخهای است که منتظر هیچ کدام از ویژگیها یا رفع اشکالها نمیماند - بلکه (تا حد امکان صرفاً) بههنگام است. این امر نظم و انضباط را در ارائه اصلاحات اعمال میکند، قابلیت پیشبینی میدهد و امکان انتشار منظمتری را فراهم میکند. همچنین این نکته وجود دارد که ما لزوماً نسخههای رفع اشکال را زودتر و سپس به سرعت، بر اساس نسخه پایدار قبلی منتشر میکنیم. بنابراین اگر به نسخه بسیار باکیفیت نیاز دارید، منطقی است که انتقال را تا اولین یا شاید دومین انتشار نسخه فرعی به تعویق بیندازید.
لیبرهآفیس نسخههای دوسالانه و قابل پیشبینی را ارائه میدهد که با سایر پروژههای نرمافزار آزاد (مانند گنوم) همگام هستند و حداقل یک ماه جلوتر از انتشارهای عمده توزیع لینوکس منتشر میشوند.
- همگامسازی زمانبندی انتشار مبتنی بر زمان با زیستبوم نرمافزار آزاد به صورت گستردهتر مزایای زیادی دارد؛ مانند ارائه ویژگیهای جدید ما به کاربران در سریعترین زمان ممکن - با حداقل تاخیر در چرخه توزیع. در نتیجه، ما شش نسخه ماهانه را هدفگذاری میکنیم، و به مرور زمان آنها را تنظیم می کنیم تا به خوبی با انتشار معمول در مارس/سپتامبر هماهنگ شوند.
- 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.
- As a result, users get a new major release every six months with a wide range of features, fixes and enhancements. They will also receive many bug-fixing micro releases. The first X.Y.0 release is intended for early adopters. More conservative users are advised to wait for a later X.Y.3/X.Y.4 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 , نوامبر ۲۰, ۲۰۲۳ - نوامبر ۲۶, ۲۰۲۳ | Week 05 , ژانویه ۲۹, ۲۰۲۴ - فوریه ۴, ۲۰۲۴ |
24.2.1 | Week 06 , فوریه ۵, ۲۰۲۴ - فوریه ۱۱, ۲۰۲۴ | Week 09 , فوریه ۲۶, ۲۰۲۴ - مارس ۳, ۲۰۲۴ |
24.2.2 | Week 10 , مارس ۴, ۲۰۲۴ - مارس ۱۰, ۲۰۲۴ | Week 13 , مارس ۲۵, ۲۰۲۴ - مارس ۳۱, ۲۰۲۴ |
24.2.3 | Week 15 , آوریل ۸, ۲۰۲۴ - آوریل ۱۴, ۲۰۲۴ | Week 18 , آوریل ۲۹, ۲۰۲۴ - مه ۵, ۲۰۲۴ |
24.2.4 | Week 20 , مه ۱۳, ۲۰۲۴ - مه ۱۹, ۲۰۲۴ | Week 23 , ژوئن ۳, ۲۰۲۴ - ژوئن ۹, ۲۰۲۴ |
24.2.5 | Week 26 , ژوئن ۲۴, ۲۰۲۴ - ژوئن ۳۰, ۲۰۲۴ | Week 29 , ژوئیه ۱۵, ۲۰۲۴ - ژوئیه ۲۱, ۲۰۲۴ |
24.2.6 | Week 33 , اوت ۱۲, ۲۰۲۴ - اوت ۱۸, ۲۰۲۴ | Week 36 , سپتامبر ۲, ۲۰۲۴ - سپتامبر ۸, ۲۰۲۴ |
24.2.7 | Week 41 , اکتبر ۷, ۲۰۲۴ - اکتبر ۱۳, ۲۰۲۴ | Week 44 , اکتبر ۲۸, ۲۰۲۴ - نوامبر ۳, ۲۰۲۴ |
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 , مه ۸, ۲۰۲۳ - مه ۱۴, ۲۰۲۳ | Week 34 , اوت ۲۱, ۲۰۲۳ - اوت ۲۷, ۲۰۲۳ |
7.6.1 | Week 34 , اوت ۲۱, ۲۰۲۳ - اوت ۲۷, ۲۰۲۳ | Week 37 , سپتامبر ۱۱, ۲۰۲۳ - سپتامبر ۱۷, ۲۰۲۳ |
7.6.2 | Week 38 , سپتامبر ۱۸, ۲۰۲۳ - سپتامبر ۲۴, ۲۰۲۳ | Week 39 , سپتامبر ۲۵, ۲۰۲۳ - اکتبر ۱, ۲۰۲۳ |
7.6.3 | Week 44 , اکتبر ۳۰, ۲۰۲۳ - نوامبر ۵, ۲۰۲۳ | Week 47 , نوامبر ۲۰, ۲۰۲۳ - نوامبر ۲۶, ۲۰۲۳ |
7.6.4 | Week 50 , دسامبر ۱۱, ۲۰۲۳ - دسامبر ۱۷, ۲۰۲۳ | Week 53 , ژانویه ۱, ۲۰۲۴ - ژانویه ۷, ۲۰۲۴ |
7.6.5 | Week 05 , ژانویه ۲۹, ۲۰۲۴ - فوریه ۴, ۲۰۲۴ | Week 08 , فوریه ۱۹, ۲۰۲۴ - فوریه ۲۵, ۲۰۲۴ |
7.6.6 | Week 10 , مارس ۴, ۲۰۲۴ - مارس ۱۰, ۲۰۲۴ | Week 13 , مارس ۲۵, ۲۰۲۴ - مارس ۳۱, ۲۰۲۴ |
7.6.7 | Week 16 , آوریل ۱۵, ۲۰۲۴ - آوریل ۲۱, ۲۰۲۴ | Week 19 , مه ۶, ۲۰۲۴ - مه ۱۲, ۲۰۲۴ |
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 , نوامبر ۲۱, ۲۰۲۲ - نوامبر ۲۷, ۲۰۲۲ | Week 05 , ژانویه ۳۰, ۲۰۲۳ - فوریه ۵, ۲۰۲۳ |
7.5.1 | Week 06 , فوریه ۶, ۲۰۲۳ - فوریه ۱۲, ۲۰۲۳ | Week 09 , فوریه ۲۷, ۲۰۲۳ - مارس ۵, ۲۰۲۳ |
7.5.2 | Week 10 , مارس ۶, ۲۰۲۳ - مارس ۱۲, ۲۰۲۳ | Week 13 , مارس ۲۷, ۲۰۲۳ - آوریل ۲, ۲۰۲۳ |
7.5.3 | Week 15 , آوریل ۱۰, ۲۰۲۳ - آوریل ۱۶, ۲۰۲۳ | Week 18 , مه ۱, ۲۰۲۳ - مه ۷, ۲۰۲۳ |
7.5.4 | Week 20 , مه ۱۵, ۲۰۲۳ - مه ۲۱, ۲۰۲۳ | Week 23 , ژوئن ۵, ۲۰۲۳ - ژوئن ۱۱, ۲۰۲۳ |
7.5.5 | Week 26 , ژوئن ۲۶, ۲۰۲۳ - ژوئیه ۲, ۲۰۲۳ | Week 29 , ژوئیه ۱۷, ۲۰۲۳ - ژوئیه ۲۳, ۲۰۲۳ |
7.5.6 | Week 33 , اوت ۱۴, ۲۰۲۳ - اوت ۲۰, ۲۰۲۳ | Week 36 , سپتامبر ۴, ۲۰۲۳ - سپتامبر ۱۰, ۲۰۲۳ |
7.5.7 | Week 38 , سپتامبر ۱۸, ۲۰۲۳ - سپتامبر ۲۴, ۲۰۲۳ | Week 39 , سپتامبر ۲۵, ۲۰۲۳ - اکتبر ۱, ۲۰۲۳ |
7.5.8 | Week 41 , اکتبر ۹, ۲۰۲۳ - اکتبر ۱۵, ۲۰۲۳ | Week 44 , اکتبر ۳۰, ۲۰۲۳ - نوامبر ۵, ۲۰۲۳ |
End of Life | November 30, 2023 |
See also the detailed schedule and the release notes.
Dates
The release is time-based but the schedule defines calendar weeks instead of exact dates. It is because we are always a bit flexible. The release can be delayed by few days because of blocker bugs, build problems, and other technical issues.
The release consists of several beta and release candidate builds. There are needed several actions for each build. The ideal workflow looks like:
- Monday: commit deadline; reminder is sent to devel, l10n mailing list before it happens
- Tuesday: 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
- Wednesday: builds are uploaded on the early pre-release site; they are announced on the devel and qa mailing lists
- Thursday: builds are uploaded on mirrors. They are announced via many channels, e.g. mailing lists, twitter
- Friday: builds are available via the official pre-release site
The final release is usually announced on Thursday, few days after the final release candidate is out.
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.
زمانبندی
The schedule is based on the following rules:
- 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.
The result is the following template:
Event | Summer | Winter |
---|---|---|
x.y feature freeze | Jun(b) | 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) |
Where (b) means the beginning of the month, (m) means the middle of the month and (e) means the end of the month.
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.
طرح نسخهدهی
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.