{"title":"Djangos lanseringsprocess","version":"6.0","locale":"sv","docname":"internals/release-process","url":"/sv/6.0/internals/release-process/","canonical":"https://djangodocs.dev/sv/6.0/internals/release-process/","summary":"Officiella utgivningar Link to this heading # Sedan version 1.0 fungerar Djangos versionsnumrering på följande sätt: Versionerna är numrerade i form av ”A.B” eller…","html":"<h1>Djangos lanseringsprocess<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>Officiella utgivningar<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>Sedan version 1.0 fungerar Djangos versionsnumrering på följande sätt:</p>\n<ul class=\"simple\">\n<li><p>Versionerna är numrerade i form av ”A.B” eller ”A.B.C”.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> är versionsnumret för <em>funktionsutgåvan</em>. Varje version kommer att vara mestadels bakåtkompatibel med den föregående versionen. Undantag från denna regel kommer att listas i versionsnoterna.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">C</span></code> är versionsnumret för <em>patch release</em>, som ökas för bugfix- och säkerhetsreleaser. Dessa utgåvor kommer att vara 100% bakåtkompatibla med den tidigare patchutgåvan. Det enda undantaget är när ett säkerhets- eller dataförlustproblem inte kan åtgärdas utan att bakåtkompatibiliteten bryts. Om detta inträffar kommer releaseanteckningarna att innehålla detaljerade uppgraderingsinstruktioner.</p></li>\n<li><p>Innan en ny funktion släpps gör vi alfa-, beta- och releasekandidatversioner. Dessa är av formen <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span> <span class=\"pre\">alpha/beta/rc</span> <span class=\"pre\">N</span></code>, vilket betyder den <code class=\"docutils literal notranslate\"><span class=\"pre\">N:e</span></code> alpha/beta/release candidate av version <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code>.</p></li>\n</ul>\n<p>I git kommer varje Django-version att ha en tagg som anger dess versionsnummer, signerad med Django-versionens nyckel. Dessutom har varje versionsserie sin egen gren, kallad <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code>, och bugfix-/säkerhetsversioner kommer att utfärdas från dessa grenar.</p>\n<p>For more information about how the Django project issues new releases for\nsecurity purposes, please see <a class=\"reference internal\" href=\"/sv/6.0/internals/security/\"><span class=\"doc\">our security policies</span></a>.</p>\n<dl class=\"glossary\">\n<dt id=\"term-Feature-release\">Feature-utgåva<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>Funktionsreleaser (A.B, A.B+1, etc.) kommer att ske ungefär var åttonde månad - se <a class=\"reference internal\" href=\"#id2\">release process</a> för detaljer. Dessa utgåvor kommer att innehålla nya funktioner, förbättringar av befintliga funktioner och så vidare.</p>\n</dd>\n<dt id=\"term-Patch-release\">Patch release<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>Patchreleaser (A.B.C, A.B.C+1, etc.) kommer att utfärdas vid behov för att åtgärda buggar och/eller säkerhetsproblem.</p>\n<p>Dessa utgåvor kommer att vara 100% compatibla med den tillhörande funktionsutgåvan, såvida inte detta är omöjligt av säkerhetsskäl eller för att förhindra dataförlust. Så svaret på frågan ”Ska jag uppgradera till den senaste patchversionen?” kommer alltid att vara ”ja”</p>\n</dd>\n<dt id=\"term-Long-term-support-release\">Långsiktig supportutgåva<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>Vissa funktionsutgåvor kommer att betecknas som LTS-utgåvor (Long Term Support). Dessa versioner kommer att få säkerhets- och dataförlustfixar tillämpade under en garanterad tidsperiod, vanligtvis tre år.</p>\n<p>Se ”nedladdningssidan” för de utgåvor som har utsetts för långsiktig support.</p>\n</dd>\n</dl>\n</section>\n<section id=\"release-cadence\">\n<span id=\"internal-release-cadence\"></span><h2>Släppfrekvens<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>Från och med Django 2.0 kommer versionsnummer att använda en lös form av <a class=\"reference external\" href=\"https://semver.org/\">semantisk versionering</a> så att varje version som följer en LTS kommer att gå till nästa ”dot zero”-version. Till exempel: 2.0, 2.1, 2.2 (LTS), 3.0, 3.1, 3.2 (LTS), etc.</p>\n<p>SemVer gör det lättare att snabbt se hur kompatibla releaser är med varandra. Det hjälper också till att förutse när kompatibilitetsshims kommer att tas bort. Det är inte en ren form av SemVer eftersom varje funktionsutgåva kommer att fortsätta att ha några dokumenterade bakåtkompatibiliteter där en avskrivningsväg inte är möjlig eller inte är värd kostnaden. Dessutom kommer avskrivningar som påbörjats i en LTS-version (X.2) att tas bort i en icke-punkt-noll-version (Y.1) för att tillgodose vår policy att behålla avskrivningsskivor för minst två funktionsversioner. Läs vidare till nästa avsnitt för ett exempel.</p>\n</section>\n<section id=\"deprecation-policy\">\n<span id=\"internal-release-deprecation-policy\"></span><h2>Avskrivningspolicy<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>I en funktionsversion kan vissa funktioner från tidigare utgåvor utgå. Om en funktion är föråldrad i funktionsversion A.x kommer den att fortsätta att fungera i alla A.x-versioner (för alla versioner av x) men ge upphov till varningar. Föråldrade funktioner kommer att tas bort i B.0-versionen, eller B.1 för funktioner som föråldrades i den senaste A.x-funktionsversionen för att säkerställa att föråldringar görs över minst 2 funktionsversioner.</p>\n<p>Så, till exempel, om vi bestämde oss för att börja avskriva en funktion i Django 4.2:</p>\n<ul class=\"simple\">\n<li><p>Django 4.2 kommer att innehålla en bakåtkompatibel kopia av funktionen som kommer att ge upphov till en <code class=\"docutils literal notranslate\"><span class=\"pre\">RemovedInDjango51Warning</span></code>.</p></li>\n<li><p>Django 5.0 (den version som följer efter 4.2) kommer fortfarande att innehålla den bakåtkompatibla repliken.</p></li>\n<li><p>Django 5.1 kommer att ta bort funktionen helt och hållet.</p></li>\n</ul>\n<p>Varningarna är tysta som standard. Du kan aktivera visning av dessa varningar med alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">-Wd</span></code>.</p>\n<p>Ett mer generiskt exempel:</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: Drop deprecation shims läggs till i X.0 och X.1.</p></li>\n<li><p>Y.1: Drop deprecation shims tillagd i X.2.</p></li>\n<li><p>Y.2 LTS: Inga deprecation shims droppade (medan Y.0 inte längre stöds måste tredjepartsappar upprätthålla kompatibilitet tillbaka till X.2 LTS för att underlätta uppgraderingar från LTS till LTS).</p></li>\n<li><p>Z.0: Drop deprecation shims läggs till i Y.0 och Y.1.</p></li>\n</ul>\n<p>Se även guiden <a class=\"reference internal\" href=\"/sv/6.0/internals/contributing/writing-code/submitting-patches/#deprecating-a-feature\"><span class=\"std std-ref\">Avveckling av en funktion</span></a>.</p>\n</section>\n<section id=\"supported-versions\">\n<span id=\"supported-versions-policy\"></span><h2>Versioner som stöds<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>Vid varje tidpunkt kommer Djangos utvecklarteam att stödja en uppsättning utgåvor i varierande grad. Se ”avsnittet om versioner som stöds” &lt;<a class=\"reference external\" href=\"https://www.djangoproject.com/download/#supported-versions\">https://www.djangoproject.com/download/#supported-versions</a>&gt;`_ på nedladdningssidan för aktuellt stöd för varje version.</p>\n<ul>\n<li><p>Den nuvarande utvecklingsgrenen <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> kommer att få nya funktioner och buggfixar som kräver icke-trivial refaktorisering.</p></li>\n<li><p>Patchar som appliceras på huvudgrenen måste också appliceras på den sista feature release-grenen, för att släppas i nästa patch release av den feature-serien, när de åtgärdar kritiska problem:</p>\n<ul class=\"simple\">\n<li><p>Säkerhetsfrågor.</p></li>\n<li><p>Fel vid dataförlust.</p></li>\n<li><p>Kraschande buggar.</p></li>\n<li><p>Större funktionsbuggar i nya funktioner i den senaste stabila versionen.</p></li>\n<li><p>Regressioner från äldre versioner av Django som införts i den aktuella versionsserien.</p></li>\n</ul>\n<p>Tumregeln är att korrigeringar kommer att backporteras till den senaste funktionsreleasen för buggar som skulle ha förhindrat en release i första hand (release blockers).</p>\n</li>\n<li><p>Säkerhetsfixar och buggar för dataförlust kommer att tillämpas på den aktuella huvudgrenen, de två senaste funktionsreleasegrenarna och alla andra releasegrenar för långsiktig support som stöds.</p></li>\n<li><p>Dokumentationsfixar kommer i allmänhet att backporteras mer fritt till den senaste release-grenen. Det beror på att det är mycket fördelaktigt att dokumentationen för den senaste utgåvan är uppdaterad och korrekt, och risken för att införa regressioner är mycket mindre.</p></li>\n</ul>\n<p>Som ett konkret exempel kan man tänka sig en tidpunkt halvvägs mellan lanseringen av Django 5.1 och 5.2. Vid denna tidpunkt:</p>\n<ul class=\"simple\">\n<li><p>Funktioner kommer att läggas till i huvudgrenen för utveckling, som kommer att släppas som Django 5.2.</p></li>\n<li><p>Kritiska buggfixar kommer att tillämpas på grenen <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.1.x</span></code> och släppas som 5.1.1, 5.1.2, etc.</p></li>\n<li><p>Säkerhetsfixar och buggfixar för problem med dataförlust kommer att tillämpas på <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> och på grenarna <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> och <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/4.2.x</span></code> (LTS). De kommer att utlösa utgivningen av <code class=\"docutils literal notranslate\"><span class=\"pre\">5.1.1</span></code>, <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>Dokumentationsfixar kommer att tillämpas på main och, om det är lätt att backportera, på den senaste stabila grenen, <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>Process för utgivning<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 använder ett tidsbaserat utgivningsschema, med funktionsutgåvor var åttonde månad eller så.</p>\n<p>Efter varje funktionsrelease publicerar release managern en tidslinje för nästa funktionsrelease. Tidslinjen för en kommande funktionsutgåva finns på motsvarande wiki-färdplanssida, t.ex. <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>Schema och steg för lansering av funktioner<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>Aktiv utveckling / Frysning av pre-feature<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>Arbetet med funktionsversionen <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> påbörjas efter funktionsfrysningen av den föregående versionen, dvs. när grenen <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B-1.x</span></code> förgrenas.</p>\n<p>Du kan hitta den aktuella grenen under aktiv utveckling i <a class=\"reference external\" href=\"https://code.djangoproject.com/#Djangoreleaseprocess\">Django release process</a> på Trac.</p>\n</section>\n<section id=\"feature-freeze-alpha-release\">\n<h4>Frysning av funktioner / 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>Alla större och mindre funktioner, inklusive avskrivningar och brytande ändringar, måste vara sammanslagna vid funktionsfrysningen. Alla funktioner som inte är klara vid denna tidpunkt kommer att skjutas upp till nästa funktionsrelease.</p>\n<p>Vid den här tidpunkten kommer grenen <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> att delas från <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>Icke release blockerande buggfix frysning / 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>Efter alpha kommer alla buggfixar som sammanfogats i <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> också att backporteras till <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code>. Refaktorer bakåtporteras enligt sammanslagningen. Sammanslagare kommer att vara mer och mer konservativa med bakåtporteringar för att undvika att införa regressioner.</p>\n<p>Parallellt med denna fas kan <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> fortsätta att ta emot nya funktioner, som släpps i cykeln <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B+1</span></code>.</p>\n</section>\n<section id=\"translation-string-freeze-release-candidate-release\">\n<h4>Frysning av översättningssträng / 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>Om det fortfarande kommer in en jämn ström av blockeringar vid det planerade datumet för releasekandidaten, kommer en beta 2 att släppas för att uppmuntra till ytterligare tester och datumet för releasekandidaten kommer att skjutas fram ~1 månad.</p>\n<p>Release candidate markerar string freeze, och det sker minst två veckor före den slutliga utgåvan. Översättare kan då skicka in uppdaterade översättningar för att inkluderas i den slutliga utgåvan. Efter denna punkt får nya översättningsbara strängar inte läggas till.</p>\n<p>Efter release candidate är det endast release blockers och dokumentationskorrigeringar som backporteras.</p>\n</section>\n<section id=\"final-release\">\n<h4>Slutlig 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>Helst ska den slutliga versionen levereras två veckor efter den sista releasekandidaten.</p>\n<p>Om det fortfarande finns stora fel 2 veckor efter release candidate kommer ett beslut att fattas om hur man ska gå vidare (sannolikt kommer ytterligare en release candidate att utfärdas och det slutliga releasedatumet kommer att skjutas fram).</p>\n</section>\n</section>\n<section id=\"bug-fix-releases\">\n<h3>Versioner med buggfixar<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>Efter en funktionsversion (t.ex. A.B) kommer den tidigare versionen att övergå till buggfixläge.</p>\n<p>Grenen för den föregående funktionsutgåvan (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B-1.x</span></code>) kommer att innehålla buggfixar. Kritiska fel som åtgärdas på huvudgrenen måste <em>också</em> åtgärdas på buggfixgrenen; detta innebär att överföringar måste separera buggfixar från funktionstillägg på ett tydligt sätt. Den utvecklare som överför en rättelse till huvudgrenen kommer att vara ansvarig för att även tillämpa rättelsen på den aktuella buggfixgrenen.</p>\n</section>\n</section>","rootId":"django-s-release-process","toc":[{"title":"Officiella utgivningar","anchor":"official-releases","children":[]},{"title":"Släppfrekvens","anchor":"release-cadence","children":[]},{"title":"Avskrivningspolicy","anchor":"deprecation-policy","children":[]},{"title":"Versioner som stöds","anchor":"supported-versions","children":[]},{"title":"Process för utgivning","anchor":"release-process","children":[{"title":"Schema och steg för lansering av funktioner","anchor":"feature-release-schedule-and-stages","children":[{"title":"Aktiv utveckling / Frysning av pre-feature","anchor":"active-development-pre-feature-freeze","children":[]},{"title":"Frysning av funktioner / Alpha release","anchor":"feature-freeze-alpha-release","children":[]},{"title":"Icke release blockerande buggfix frysning / Beta release","anchor":"non-release-blocking-bug-fix-freeze-beta-release","children":[]},{"title":"Frysning av översättningssträng / Release candidate release","anchor":"translation-string-freeze-release-candidate-release","children":[]},{"title":"Slutlig release","anchor":"final-release","children":[]}]},{"title":"Versioner med buggfixar","anchor":"bug-fix-releases","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Djangos interna funktioner","url":"/sv/6.0/internals/"}],"prev":{"docname":"internals/security","title":"Djangos säkerhetspolicy","url":"/sv/6.0/internals/security/"},"next":{"docname":"internals/deprecation","title":"Tidslinje för avveckling av Django","url":"/sv/6.0/internals/deprecation/"},"formats":{"html":"/sv/6.0/internals/release-process/","markdown":"/sv/6.0/internals/release-process.md","json":"/sv/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/sv/6.0/internals/release-process/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}