خطة الإصدار

    From The Document Foundation Wiki
    This page is a translated version of the page ReleasePlan and the translation is 28% complete.

    مقدمة

    لقد أظهرت مسارات الإصدار المستندة إلى الوقت بأنها تُنتِج برمجيات حرّة بأفضل نوعية. الإصدار المستند إلى الوقت هو ذلك الذي لا ينتظر أية ميزات، أو إصلاحات عيوب - لكنه يستند (بأنقى ما يمكن) إلى الوقت. هذا يُلزم بالإنضباط في تقديم الإصلاحات، يعطي استباقية، ويسمح بعملية إصدار أكثر انتظاماً. وهي أيضا الوضعية التي بالضرورة تجعلنا نُصدِر بصورة مبكرة، ومن ثم أسرع، وبصورة متنامية مصلحين عيوب الإصدارات استناداً إلى الإصدار المستقر السابق. وهكذا إذا كانت لديك الحاجة إلى الإصدار ذي المستوى الأعلى نوعية، فإن مما يجعل في الأمر مغزى هو إرجاء الإنتقال لحين إصدار النقطة الثانوية الأولى أو ربما الثانية.

    • يقوم ليبر بإصدارات متوقَّعة نصف سنوية والتي تكون في تزامن مع مشاريع البرمجيات الحرة الأخرى (مثلا گنوم Gnome) وهي تتقدم شهراً على الأقل عن إصدارات لينكس الرئيسية.
    • مزامنة جدول الإصدار المستند إلى التأريخ مع منظومة البرمجيات الحرة الأوسع فيه فوائد كبيرة، بجعل ميزاتنا الجديدة خارجة إلى المستخدمين بأسرع ما يمكن - بحد أدنى من تأخر دورة التوزيع. تبعاً لذلك، نستهدف ستة إصدارات شهرية، وبمرور الوقت نحركها لتتسق بصورة مناسبة مع معايير آذار/أيلول.
    • There are 2 branches: Fresh (the newest release) and Still (the previous release), which are intended for mainstream feature users and conservative, corporate deployments respectively.
    • As a result, users get new major version every six months with a wide range of features, fixes, and enhancements. In addition, they get many pure bugfix 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.Z bugfix release.

    Note that the dates mentioned in the schedule might get shifted 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 issue. Such a problem could shift the final release by one week or more. The decision should be made in a meeting of the Engineering Steering Committee.

    The simplified graphic below shows three releases placed on a timeline consisting of 24 months.

    المستقبل
    Fresh
    Still

    24.2 release

    Basic dates for the initial and bugfix releases
    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

    7.6 release

    Basic dates for the initial and bugfix releases
    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

    Basic dates for the initial and bugfix releases
    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.

    التواريخ

    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.

    Schedule

    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:

    Interlocking releases
    حدث صيف شتاء
    x.y feature freeze Jun(ب) Dec(ب)
    x.y.0 first release Aug(ب) Feb(ب)
    x.y.1 bugfix release Sep(ب) Mar(ب)
    x.y.2 bugfix release Oct(ب) Apr(ب)
    x.y.3 bugfix release Nov(ب) May(ب)
    x.y.4 bugfix release Dec(ب) Jun(ب)
    x.y.5 bugfix release Feb(م) Aug(م)
    x.y.6 bugfix release Apr(م) Oct(م)

    حيث (ب) يعني بداية الشهر، (م) يعني منتصف الشهر و (ه) يعني نهاية الشهر.

    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.

    End-of-Life Releases

    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.