{"title":"Pengolahan terbitan Django","version":"6.0","locale":"id","docname":"internals/release-process","url":"/id/6.0/internals/release-process/","canonical":"https://djangodocs.dev/id/6.0/internals/release-process/","summary":"Terbitan resmi Link to this heading # Sejak versi 1.0, penomoran terbitan Django bekerja seperti berikut: Versi di nomori dalam bentuk A.B or A.B.C . A.B adalah…","html":"<h1>Pengolahan terbitan Django<a class=\"heading-anchor\" href=\"#django-s-release-process\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"official-releases\">\n<span id=\"id1\"></span><h2>Terbitan resmi<a class=\"heading-anchor\" href=\"#official-releases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sejak versi 1.0, penomoran terbitan Django bekerja seperti berikut:</p>\n<ul class=\"simple\">\n<li><p>Versi di nomori dalam bentuk <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B.C</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> adalah angka versi <em>terbitan fitur</em>. Setiap versi akan kebanyakan sesuai kebelakang dengan terbitan sebelumnya. Pengecualian ke aturan ini akan didaftarkan di catatan terbitan.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">C</span></code> adalah angka versi <em>terbitan tanggalan</em>, yang menaik untuk perbaikan kesalahan dan terbitan keamanan. Terbitan ini akan 100% sesuai kebelakang dengan terbitan tambalan sebelumnya. Hanya pengecualian ketika keamanan atau masalah kehilangan data tidak dapat diperbaiki tanpa merusak kesesuaian lebelakang. Jika ini terjadi, catatan terbitan akan menyediakan petunjuk peningkatan rincian.</p></li>\n<li><p>Sebelum terbitan fitur baru, kami akan membuat terbitan alpha, beta, dan calon terbitan. Ini adalah bentuk <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span> <span class=\"pre\">alpha/beta/rc</span> <span class=\"pre\">N</span></code>, yang berarti <code class=\"docutils literal notranslate\"><span class=\"pre\">Nth</span></code> alpha/beta/calon terbitan dari versi <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code>.</p></li>\n</ul>\n<p>Di git, setiap terbitan Django akan mempunyai etiket yang menunjukkan angka versi, ditandatangi dengan kunci terbitan Django. Selai itu, setiap rangkaian terbitan mempunai cabang tersendiri, dipanggil <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code>, terbitan perbaikan kesalahan/keamanan akan diterbitkan dari cabang-cabang tersebut.</p>\n<p>For more information about how the Django project issues new releases for\nsecurity purposes, please see <a class=\"reference internal\" href=\"/id/6.0/internals/security/\"><span class=\"doc\">our security policies</span></a>.</p>\n<dl class=\"glossary\">\n<dt id=\"term-Feature-release\">Terbitan akan datang<a class=\"heading-anchor\" href=\"#term-Feature-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>Terbitan fitur (A.B, A.B+1, dll.) akan terjadi kurang lebih setiap delapan bulan -- lihat <a class=\"reference internal\" href=\"#id2\">release process</a> untuk rincian. Terbitan ini akan mengandung fitur baru, perbaikan pada fitur yang ada, dan sebagainya.</p>\n</dd>\n<dt id=\"term-Patch-release\">Terbitan tambalan<a class=\"heading-anchor\" href=\"#term-Patch-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>Terbitan tambalan (A.B.C, A.B.C+1, etc.) akan diterbitkan ketika dibutuhkan, untuk memperbaiki kesalahan dan/atau masalah keamanan.</p>\n<p>Terbitan ini akan 100% cocok dengan terbitan fitur yang terkait, meskipun ini sangat tidak mungkin untuk alasan keamanan atau untuk mencegah kehilangan data. Jadi jawaban pada &quot;apakah Saya tingkatkan ke terbitan tambalan terakhir?&quot; akan selalu &quot;ya.&quot;</p>\n</dd>\n<dt id=\"term-Long-term-support-release\">Terbitan dukungan jangka-panjang<a class=\"heading-anchor\" href=\"#term-Long-term-support-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>Terbitan fitur tertentu akan dirancang sebagai terbitan long-term support (LTS). Terbitan ini akan mendapatkan perbaikan keamanan dan kehilangan data diberlakukan untuk jaminan masa dari waktu, secara khusus tiga tahun.</p>\n<p>Lihat <a class=\"reference external\" href=\"https://www.djangoproject.com/download/\">the download page</a> untuk terbitan yang telah dirancang untuk dukungan jangka-panjang.</p>\n</dd>\n</dl>\n</section>\n<section id=\"release-cadence\">\n<span id=\"internal-release-cadence\"></span><h2>Irama terbitan<a class=\"heading-anchor\" href=\"#release-cadence\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Mulai dengan Django 2.0, angka versi akan menggunakan formulir longgar dari <a class=\"reference external\" href=\"https://semver.org/\">semantic versioning</a> seperti bahwa setiap versi mengikuti LTS akan ditabrak ke versi &quot;dot zero&quot; selanjutnya. Sebagai contoh: 2.0, 2.1, 2.2 (LTS), 3.0, 3.1, 3.2 (LTS), etc.</p>\n<p>SemVer membuatnya lebih mudah melihat sekilas bagaimana kesesuaian terbitan dengan satu sama lain. Itu juga membantu mengantisipasi kapan shim kesesuaian akan dipindahkan. Itu bukan murni formulir dari SemVer seeprti setiap terbitan fitur akan memiliki sedikit dokumentasi ketidaksesuaian kebelakang dimana jalur pengusangan tidak memungkinkan atau tidak berharga. Juga, pengusangan dimulai di terbitan LTS (X.2) akan dijatuhkan di terbitan bukan-titik-nol (Y.1) untuk mengakomodasi kebijakan kami dari menjaga pengusangan shim untuk setidaknya dua fitur terbitan. Baca bagian selanjutnya untuk sebuah contoh.</p>\n</section>\n<section id=\"deprecation-policy\">\n<span id=\"internal-release-deprecation-policy\"></span><h2>Kebijakan bantahan<a class=\"heading-anchor\" href=\"#deprecation-policy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sebuah terbitan fitur mungkin mengusangkan fitur tertentu dari terbitan sebelumnya. Jika sebuah fitur diusangkan di terbitan fitur A.x, itu akan menlanjutkan bekerja di semua versi A.x (untuk semua versi dari x) tetapi menampilkan peringatan. Fitur diusangkan akan dipindahkan di terbitan B.0, atau B.1 untuk pengusangan fitur di terbitan fitur A.x terakhir untuk memastikan pengusangan selesai setidaknya 2 terbitan fitur.</p>\n<p>Jadi, sebagai contoh, jika kami memutuskan untuk mulai mengusangkan dari sebuah fungsi di Django 4.2:</p>\n<ul class=\"simple\">\n<li><p>Django 4.2 akan mengandung tiruan kesesuaian-kebelakang dari fungsi yang akan memunculkan <code class=\"docutils literal notranslate\"><span class=\"pre\">RemovedInDjango51Warning</span></code>.</p></li>\n<li><p>Django 5.0 (versi yang mengikuti 4.2) akan masih mengandung tiruan kesesuaian-kebelakang.</p></li>\n<li><p>Django 5.1 akan memindahkan fitur sekaligus.</p></li>\n</ul>\n<p>Peringatan diam secara awal. Anda dapat menyalakan tampilan dari peringatan ini dengan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">-Wd</span></code>.</p>\n<p>Contoh umum lain:</p>\n<ul class=\"simple\">\n<li><p>X.0</p></li>\n<li><p>X.1</p></li>\n<li><p>X.2 LTS</p></li>\n<li><p>Y.0: Menjatuhkan pengusangan shim ditambahkan di X.0 dan X.1.</p></li>\n<li><p>Y.1: Menjatuhkan pengusangan shim ditambahkan di X.2.</p></li>\n<li><p>Y.2 LTS: tidak ada pengusangan shim dijatuhkan (selagi Y.0 tidak lagi didukung, aplikasi pihak-ketiga butuh merawat kesesuaian kembali ke X.2 LTS untuk memudahkan LTS untuk peningkatan LTS).</p></li>\n<li><p>Z.0: Menjatuhkan pengusangan shim ditambahkan di Y.0 dan Y.1.</p></li>\n</ul>\n<p>Lihat juga panduan <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/submitting-patches/#deprecating-a-feature\"><span class=\"std std-ref\">Mengusangkan fitur</span></a>.</p>\n</section>\n<section id=\"supported-versions\">\n<span id=\"supported-versions-policy\"></span><h2>Versi didukung<a class=\"heading-anchor\" href=\"#supported-versions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Setiap saat dalam waktu, tim pengembang Django akan mendukung kumpulan terbitan untuk beragam tingkatan. Lihat <a class=\"reference external\" href=\"https://www.djangoproject.com/download/#supported-versions\">the supported versions section</a> dari halaman unduhan untuk keadaan saat ini dari dukungan untuk setiap versi.</p>\n<ul>\n<li><p>Cabang pengembangan saat ini <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> akan mendapatkan fitur baru dan perbaikan kesalahan membutuhkan pemfaktoran ulang yang tidak sepele.</p></li>\n<li><p>Patches applied to the main branch must also be applied to the last feature\nrelease branch, to be released in the next patch release of that feature\nseries, when they fix critical problems:</p>\n<ul class=\"simple\">\n<li><p>Masalah keamanan</p></li>\n<li><p>Kesalahan kehilangan data.</p></li>\n<li><p>Kesalahan tabrakan.</p></li>\n<li><p>Kesalahan fungsionalitas utama dalam fitur baru dari terbitan stabil terakhir.</p></li>\n<li><p>Pemulihan dari versi terlama Django diperkenalkan dalam deretan terbitan sekarang.</p></li>\n</ul>\n<p>Aturan jempol adalah yaitu perbaikan akan di backport ke terbitan fitur terakhir untuk kesalahan yang akan mempunyai pencegahan terbitan di tempat pertama (pemblok terbitan).</p>\n</li>\n<li><p>Perbaikan keamanan dan kesalahan kehilangan data akan diberlakukan pada cabang utama saat ini, cabang terbitan fitur dua terakhir, dan cabang terbitan dukungan jangka-panjang didukung lainnya.</p></li>\n<li><p>Perbaikan dokumentasi umumnya akan lebih bebas di backport ke cabang terbitan terakhir. Itu karena itu sangat menguntungkan memiliki dokumen untuk terbitan terakhir menjadi terbaru dan benar, dan resiko dari memperkenalkan pemulihan jauh dari perhatian.</p></li>\n</ul>\n<p>Sebagai sebuah contoh nyata, pertimbangkan saat di waktu tengah jalan diantara terbitan dari Django 5.1 dan 5.2. Pada titik di waktu:</p>\n<ul class=\"simple\">\n<li><p>Fitur akan ditambahkan pada induk pengembangan cabang utama, akan diterbitkan sebagai Django 5.2.</p></li>\n<li><p>Perbaikan kesalahan genting akan diberlakukan pada cabang <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.1.x</span></code>, dan terbitan seperti 5.1.1, 5.1.2, dll.</p></li>\n<li><p>Security fixes and bug fixes for data loss issues will be applied to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> and to the <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.1.x</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.0.x</span></code>, and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">stable/4.2.x</span></code> (LTS) branches. They will trigger the release of <code class=\"docutils literal notranslate\"><span class=\"pre\">5.1.1</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">5.0.5</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">4.2.8</span></code>, etc.</p></li>\n<li><p>Documentation fixes will be applied to main, and, if easily backported, to\nthe latest stable branch, <code class=\"docutils literal notranslate\"><span class=\"pre\">5.1.x</span></code>.</p></li>\n</ul>\n</section>\n<section id=\"release-process\">\n<span id=\"id2\"></span><h2>Mengolah terbitan<a class=\"heading-anchor\" href=\"#release-process\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django menggunakan jadwal terbitan berdasarkan-waktu, dengan fitur terbitan setiap delapan bulan atau lebih.</p>\n<p>After each feature release, the release manager will publish a timeline for the\nnext feature release. The timeline for an upcoming feature release can be found\nin the corresponding wiki roadmap page, e.g.\n<a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/Version6.0Roadmap\">https://code.djangoproject.com/wiki/Version6.0Roadmap</a>.</p>\n<section id=\"feature-release-schedule-and-stages\">\n<h3>Feature release schedule and stages<a class=\"heading-anchor\" href=\"#feature-release-schedule-and-stages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"active-development-pre-feature-freeze\">\n<h4>Active development / Pre-feature freeze<a class=\"heading-anchor\" href=\"#active-development-pre-feature-freeze\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Work begins on the feature release <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> after the feature freeze of the\nprevious release, i.e. when the <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B-1.x</span></code> branch is forked.</p>\n<p>You can find the current branch under active development in the\n<a class=\"reference external\" href=\"https://code.djangoproject.com/#Djangoreleaseprocess\">Django release process</a> on Trac.</p>\n</section>\n<section id=\"feature-freeze-alpha-release\">\n<h4>Feature freeze / Alpha release<a class=\"heading-anchor\" href=\"#feature-freeze-alpha-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>All major and minor features, including deprecations and breaking changes, must\nbe merged by the feature freeze. Any features not done by this point will be\ndeferred to the next feature release.</p>\n<p>At this point, the <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> branch will be forked from <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code>.</p>\n</section>\n<section id=\"non-release-blocking-bug-fix-freeze-beta-release\">\n<h4>Non-release blocking bug fix freeze / Beta release<a class=\"heading-anchor\" href=\"#non-release-blocking-bug-fix-freeze-beta-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>After the alpha, all bug fixes merged in <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> are also backported to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code>. Refactors are backported at the discretion of the merger.\nMergers will be more and more conservative with backports, to avoid introducing\nregressions.</p>\n<p>In parallel to this phase, <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> can continue to receive new features, to be\nreleased in the <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B+1</span></code> cycle.</p>\n</section>\n<section id=\"translation-string-freeze-release-candidate-release\">\n<h4>Translation string freeze / Release candidate release<a class=\"heading-anchor\" href=\"#translation-string-freeze-release-candidate-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>If there is still a consistent stream of release blockers coming in at the\nplanned release candidate date, a beta 2 will be released to encourage further\ntesting and the release candidate date will be pushed out ~1 month.</p>\n<p>The release candidate marks the string freeze, and it happens at least two\nweeks before the final release. Translators can then submit updated\ntranslations for inclusion in the final release. After this point, new\ntranslatable strings must not be added.</p>\n<p>After the release candidate, only release blockers and documentation fixes are\nbackported.</p>\n</section>\n<section id=\"final-release\">\n<h4>Final release<a class=\"heading-anchor\" href=\"#final-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ideally, the final release will ship two weeks after the last release\ncandidate.</p>\n<p>If there are major bugs still being found 2 weeks after the release candidate,\nthere will be a decision on how to proceed (likely another release candidate\nwould be issued and the final release date will be pushed out).</p>\n</section>\n</section>\n<section id=\"bug-fix-releases\">\n<h3>Terbitak perbaikan-kesalahan<a class=\"heading-anchor\" href=\"#bug-fix-releases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Setelah terbitan fitur (sebagai contoh A.B), terbitan sebelumnya akan pergi kedalam suasana perbaikan kesalahan.</p>\n<p>Cabang untuk terbitan fitur sebelumnya (misalnya stable/A.B-1.x`) akan menyertakan perbaikan kesalahan. Perbaikan kesalahan genting pada utama harus <em>juga</em> diperbaiki pada cabang perbaikan kesalahan; ini berarti bahwa perbaikan butuh dengan rapi memisahkan perbaikan kesalahan dari tambahan fitur. Pengembang yang memperbaiki perbaikan pada master akan bertanggungjawab untuk juga memberlakukan perbaikan pada cabang perbaikan kesalahan sekarang.</p>\n</section>\n</section>","rootId":"django-s-release-process","toc":[{"title":"Terbitan resmi","anchor":"official-releases","children":[]},{"title":"Irama terbitan","anchor":"release-cadence","children":[]},{"title":"Kebijakan bantahan","anchor":"deprecation-policy","children":[]},{"title":"Versi didukung","anchor":"supported-versions","children":[]},{"title":"Mengolah terbitan","anchor":"release-process","children":[{"title":"Feature release schedule and stages","anchor":"feature-release-schedule-and-stages","children":[{"title":"Active development / Pre-feature freeze","anchor":"active-development-pre-feature-freeze","children":[]},{"title":"Feature freeze / Alpha release","anchor":"feature-freeze-alpha-release","children":[]},{"title":"Non-release blocking bug fix freeze / Beta release","anchor":"non-release-blocking-bug-fix-freeze-beta-release","children":[]},{"title":"Translation string freeze / Release candidate release","anchor":"translation-string-freeze-release-candidate-release","children":[]},{"title":"Final release","anchor":"final-release","children":[]}]},{"title":"Terbitak perbaikan-kesalahan","anchor":"bug-fix-releases","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Dalam Django","url":"/id/6.0/internals/"}],"prev":{"docname":"internals/security","title":"Kebijakan keamanan Django","url":"/id/6.0/internals/security/"},"next":{"docname":"internals/deprecation","title":"Linimasa Pengusangan Django","url":"/id/6.0/internals/deprecation/"},"formats":{"html":"/id/6.0/internals/release-process/","markdown":"/id/6.0/internals/release-process.md","json":"/id/6.0/internals/release-process.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/internals/release-process.txt","official":"https://docs.djangoproject.com/id/6.0/internals/release-process/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}