--- title: Lag en Endringslogg description: Ikke la vennene dine dumpe git logger i endringslogger. language: nb version: 1.1.0 --- .header .title %h1= current_page.data.title %h2= current_page.data.description = link_to data.links.changelog do Versjon %strong= current_page.metadata[:page][:version] %pre.changelog{ lang: "en" }= File.read("CHANGELOG.md") .answers %h3#what %a.anchor{ href: "#what", aria_hidden: "true" } Hva er en endringslogg? %p En endringslogg er en fil som inneholder en organisert, kronologisk satt opp liste over sentrale endringer for hver versjon av et prosjekt. %h3#why %a.anchor{ href: "#why", aria_hidden: "true" } Hvorfor lage en endringslogg? %p For å gjøre det enklere for brukere og bidragsytere å se nøyaktig hvilke sentrale endringer som har blitt gjort mellom hver utgivelse (eller versjon) av prosjektet. %h3#who %a.anchor{ href: "#who", aria_hidden: "true" } Hvem trenger en endringslogg? %p Folk. Om enn de er konsumenter eller utviklere, sluttbrukerne av programvare er mennesker som bryr seg om hva som er i programvaren. Når programvaren endres, vil folk vite hvorfor og hvordan. .good-practices %h3#how %a.anchor{ href: "#how", aria_hidden: "true" } Hvordan lager jeg en god endringslogg? %h4#principles %a.anchor{ href: "#principles", aria_hidden: "true" } Veiledende prinsipper %ul %li Endringslogger er for mennesker, ikke maskiner. %li Det bør være en oppføring for hver versjon. %li Samme type endringer bør grupperes. %li Versjoner og seksjoner bør kunne lenkes til. %li Den nyeste versjonen bør komme først. %li Utgivelsesdatoen for hver versjon vises. %li Nevn hvorvidt du følger #{link_to "Semantisk Versjonering", data.links.semver}. %a.anchor{ href: "#types", aria_hidden: "true" } %h4#types Type endringer %ul %li %code Lagt til for ny funksjonalitet. %li %code Endret for endringer i eksisterende funksjonalitet. %li %code Avviklet for funksjonalitet som snart fjernes. %li %code Fjernet for fjernet funksjonalitet. %li %code Fikset for feilrettinger. %li %code Sikkerhet i tilfelle sårbarheter. .effort %h3#effort %a.anchor{ href: "#effort", aria_hidden: "true" } Hvorfor kan jeg redusere innsatsen som må til for å vedlikeholde en endringslogg? %p Bruk en Ikke utgitt-seksjon øverst for å spore kommende endringer. %p Dette tjener to formål: %ul %li Folk kan se hvilke endringer de kan forvente i kommende utgivelser %li Når utgivelsen publiseres kan du flytte Ikke utgitt-seksjonen til en seksjon for en ny versjon. .bad-practices %h3#bad-practices %a.anchor{ href: "#bad-practices", aria_hidden: "true" } Kan endringslogger være dårlige? %p Ja. Her er noen måter de kan være mindre nyttige. %h4#log-diffs %a.anchor{ href: "#log-diffs", aria_hidden: "true" } Handlingslogg med endringer %p Å bruke endringer i handlingslogg (commit log diffs) som endringslogg er en dårlig idé: De er full av støy. Ting som sammenslåing av endringer, obskure titler, endringer i dokumentasjon, osv. %p Formålet med en handlingslogg er å dokumentere et steg i utviklingen av kildekoden. Noen prosjekter rydder handlingslogger, andre ikke. %p Formålet med en oppføring i endringslogg er å dokumentere sentrale endringer, gjerne på tvers av flere handlingslogger, samt å kommunisere disse klart til sluttbrukerne. %h4#ignoring-deprecations %a.anchor{ href: "#ignoring-deprecations", aria_hidden: "true" } Ignorere Avviklinger %p Når folk oppgraderer fra en versjon til en annen burde det være smertelig tydelig når noe vil gå i stykker. Det burde være mulig å oppgradere til en versjon som oppgir avviklinger, fjerne det som er avviklet, og deretter oppgradere til en versjon hvor avviklinger blir det som er fjernet. %p Om ikke annet, oppgi avviklinger, hva som er fjernet, og annet som gjør at noe går i stykker i endringsloggen. %h4#confusing-dates %a.anchor{ href: "#confusing-dates", aria_hidden: "true" } Forvirrende Datoer %p Regionale datoformater varierer, og det er ofte vanskelig å finne et menneskevennlig datoformat som føles intuitivt for alle. Fordelen med datoformater som 2017-07-17 er at de følger rekkefølgen med største til minste enhet: År, måned og dato. Dette formatet overlapper heller ikke på tvetydige måter, til forskjell fra noen regionale formater som bytter posisjonen til måneds- og datonumre. Derfor, og fordi dette datoformatet er en #{link_to "ISO-standard", data.links.isodate}, er det anbefalt datoformat for oppføringer i endringslogger. %h4#inconsistent-changes %a.anchor{ href: "#inconsistent-changes", aria_hidden: "true" } Tvetydige Endringer %p En endringslogg som bare nevner noen av endringene kan være like farlig som å ikke ha en endringslogg. Selv om mange av endringene ikke er relevante - for eksempel, fjerning av et enkelt mellomrom ikke trenger å registreres i alle tilfeller - bør alle sentrale endringer nevnes i endringsloggen. Ved inkonsistent oppførsel av endringer vil brukerne dine feilaktig tro at endringsloggen er den eneste kilden til sannhet. Den bør være det. Ved stor makt kommer stort ansvar - å ha en god endringslogg betyr å ha en konsistent oppdatert endringslogg. %aside Det er mer. Hjelp meg med å samle disse antimønstrene ved å = link_to "åpne en sak", data.links.issue saker eller et endringsforslag. .frequently-asked-questions %h3#frequently-asked-questions %a.anchor{ href: "#frequently-asked-questions", aria_hidden: "true" } Ofte Spurte Spørsmål %h4#standard %a.anchor{ href: "#standard", aria_hidden: "true" } Er det et standard format for endringslogger? %p Ikke egentlig. Det finnes #{link_to "GNUs stilguide for endringslogger", data.links.gnustyle}, eller den #{link_to "to avsnitt lange GNU NEWS filen", data.links.gnunews} "retningslinjen". Begge er inadekvate eller utilstrekkelige. %p Dette prosjektet søker å være = link_to "en bedre konvensjon for endringslogger", data.links.changelog Dette kommer fra observasjon av beste praksis i miljøet for åpen kildekode og innsamling av de. %p Sunn kritikk, diskusjon og forslag til forbedringer = link_to "er velkomne.", data.links.issue %h4#filename %a.anchor{ href: "#filename", aria_hidden: "true" } Hvordan bør endringsloggfilen navngis? %p Kall de CHANGELOG.md. Noen prosjekter bruker HISTORY, NEWS eller RELEASES. %p Selv om det er enkelt å tenke at navnet på endringsloggfilen ikke betyr så mye, hvorfor gjøre det vanskeligere for sluttbrukerne å konsekvent finne sentrale endringer? %h4#github-releases %a.anchor{ href: "#github-releases", aria_hidden: "true" } Hva med utgivelser på GitHub? %p Det er et flott initiativ. #{link_to "Utgivelser", data.links.github_releases} kan brukes for å gjøre enkle taggede versjoner på git (for eksempel v1.0.0) om til fyldige utgivelsesnotater ved å manuelt legge de til, eller å hente annoterte notater fra taggede versjoner å gjøre de om til utgivelsesnotater. %p Utgivelser på GitHub lager en ikke-portabel endringslogg som bare kan vises til brukerne innenfor konteksten GitHub. Det er mulig å gjøre de veldig lik formatet til Lag en Endringslogg, men det er vanligvis mer krevende. %p Den nåværende versjonen av utgivelser på GitHub er antageligvis ikke veldig gjenfinnbar for sluttbrukere, i motsetning til de typiske filene med store bokstaver (README, CONTRIBUTING, osv.) Et annet, mindre, problem er at grensesnittet per nå ikke tilbyr lenker til handlingslogger mellom hver utgivelse. %h4#automatic %a.anchor{ href: "#automatic", aria_hidden: "true" } Kan endringslogger automatisk tolkes? %p Det er vanskelig, fordi folk følger svært forskjellige formater og filnavn. %p #{link_to "Vandamme", data.links.vandamme} er en Ruby gem laget av Gemnasium-teamet for å tolke mange (men ikke alle) endringslogger for prosjekter med åpen kildekode. %h4#yanked %a.anchor{ href: "#yanked", aria_hidden: "true" } Hva med tilbaketrukne utgivelser? %p Tilbaketrukne utgivelser er versjoner som måtte trekkes tilbake på grunn av en alvorlig feil eller et sikkerhetsproblem. Vanligvis fremgår ikke disse versjonene i endringsloggen. Det bør det. Slik bør de vises frem: %p ## [0.0.5] - 2014-12-13 [TILBAKETRUKKET] %p Merkelappen [TILBAKETRUKKET] er bevisst uthevet. Det er for at folk skal legge merke til den. Siden den er omgitt av braketter er den også enklere å tolke programmatisk. %h4#rewrite %a.anchor{ href: "#rewrite", aria_hidden: "true" } Bør du noensinne omskrive en endringslogg? %p Selvfølgelig. Det er alltid gode grunner til å forbedre en endringslogg. Jeg lager regelmessig endringsforslag for å legge til manglende utgivelser i prosjekter med åpen kildekode som mangler vedlikeholdte endringslogger. %p Det er også mulig at du oppdager at du glemte å addressere en sentral endring i notatene til en versjon. Det er selvfølgelig viktig at du oppdaterer endringsloggen i dette tilfellet. %h4#contribute %a.anchor{ href: "#contribute", aria_hidden: "true" } Hvordan kan jeg bidra? %p Dette dokumentet er ikke sannheten; det er min nøye vurderte mening, samt informasjon og eksempler jeg har samlet. %p Dette fordi jeg vil at vårt miljø skal nå en enighet. Jeg tror at diskusjonen er like viktig som resultatet. %p Så vær så snill, #{link_to "bidra", data.links.repo}. .press %h3 Samtaler %p Jeg deltok på #{link_to "The Changelog podcast", data.links.thechangelog} for å snakke om hvorfor vedlikeholdere og bidragsytere burde bry seg om endringslogger, og også om motivasjonene bak dette prosjektet.