<!DOCTYPE html> <html lang="art-x-pir" dir="rtl" itemscope itemtype="http://schema.org/Article"> <head> <meta charset="utf-8"> <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0"> <meta name="generator" content="Hugo 0.139.3"> <meta name="generator" content="Relearn 7.1.1+e32ff04f0633a698144fab4c2ef3c4c4b9abd0e9"> <meta name="robots" content="noindex, nofollow, noarchive, noimageindex"> <meta name="description" content="What to know as a maintainer"> <meta name="author" content="Sören Weber"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta name="twitter:title" content="Maintaining :: Cap'n Hugo Relearrrn Theme"> <meta name="twitter:description" content="What to know as a maintainer"> <meta property="og:url" content="https://mcshelby.github.io/hugo-theme-relearn/pir/development/maintaining/index.html"> <meta property="og:site_name" content="Cap'n Hugo Relearrrn Theme"> <meta property="og:title" content="Maintaining :: Cap'n Hugo Relearrrn Theme"> <meta property="og:description" content="What to know as a maintainer"> <meta property="og:locale" content="art_x_pir"> <meta property="og:type" content="website"> <meta property="og:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta itemprop="name" content="Maintaining :: Cap'n Hugo Relearrrn Theme"> <meta itemprop="description" content="What to know as a maintainer"> <meta itemprop="wordCount" content="952"> <meta itemprop="image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta itemprop="keywords" content="Explanation,Howto"> <title>Maintaining :: Cap'n Hugo Relearrrn Theme</title> <link href="https://mcshelby.github.io/hugo-theme-relearn/development/maintaining/index.html" rel="alternate" hreflang="x-default"> <link href="https://mcshelby.github.io/hugo-theme-relearn/development/maintaining/index.html" rel="alternate" hreflang="en"> <link href="https://mcshelby.github.io/hugo-theme-relearn/pir/development/maintaining/index.html" rel="alternate" hreflang="art-x-pir"> <link href="https://mcshelby.github.io/hugo-theme-relearn/pir/development/maintaining/index.html" rel="canonical" type="text/html" title="Maintaining :: Cap'n Hugo Relearrrn Theme"> <link href="/hugo-theme-relearn/pir/development/maintaining/index.xml" rel="alternate" type="application/rss+xml" title="Maintaining :: Cap'n Hugo Relearrrn Theme"> <link href="/hugo-theme-relearn/images/logo.svg?1732916755" rel="icon" type="image/svg+xml"> <link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1732916755" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1732916755" rel="stylesheet"></noscript> <link href="/hugo-theme-relearn/css/nucleus.css?1732916755" rel="stylesheet"> <link href="/hugo-theme-relearn/css/auto-complete.css?1732916755" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/auto-complete.css?1732916755" rel="stylesheet"></noscript> <link href="/hugo-theme-relearn/css/perfect-scrollbar.min.css?1732916755" rel="stylesheet"> <link href="/hugo-theme-relearn/css/fonts.css?1732916755" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/fonts.css?1732916755" rel="stylesheet"></noscript> <link href="/hugo-theme-relearn/css/theme.css?1732916755" rel="stylesheet"> <link href="/hugo-theme-relearn/css/theme-relearn-auto.css?1732916755" rel="stylesheet" id="R-variant-style"> <link href="/hugo-theme-relearn/css/chroma-relearn-auto.css?1732916755" rel="stylesheet" id="R-variant-chroma-style"> <link href="/hugo-theme-relearn/css/print.css?1732916755" rel="stylesheet" media="print"> <link href="/hugo-theme-relearn/css/format-print.css?1732916755" rel="stylesheet"> <script src="/hugo-theme-relearn/js/variant.js?1732916755"></script> <script> window.relearn = window.relearn || {}; window.relearn.relBasePath='..\/..\/..'; window.relearn.relBaseUri='..\/..\/..\/..'; window.relearn.absBaseUri='https:\/\/mcshelby.github.io\/hugo-theme-relearn'; window.relearn.disableAnchorCopy=false; window.relearn.disableAnchorScrolling=false; // variant stuff window.variants && variants.init( [ 'relearn-auto', 'relearn-light', 'relearn-dark', 'relearn-bright', 'zen-auto', 'zen-light', 'zen-dark', 'retro-auto', 'neon', 'learn', 'blue', 'green', 'red' ] ); // translations window.T_Copy_to_clipboard = `Copy t' clipboard`; window.T_Copied_to_clipboard = `Copied t' clipboard!`; window.T_Copy_link_to_clipboard = `Copy link t' clipboard`; window.T_Link_copied_to_clipboard = `Copied link t' clipboard!`; window.T_Reset_view = `Rrreset view`; window.T_View_reset = `View rrreset!`; window.T_No_results_found = `No rrresults found fer "{0}"`; window.T_N_results_found = `{1} rrresults found fer "{0}"`; </script> <style> #R-body img.bg-white { background-color: white; } </style> </head> <body class="mobile-support print disableInlineCopyToClipboard" data-url="/hugo-theme-relearn/pir/development/maintaining/index.html"> <div id="R-body" class="default-animation"> <div id="R-body-overlay"></div> <nav id="R-topbar"> <div class="topbar-wrapper"> <div class="topbar-sidebar-divider"></div> <div class="topbar-area topbar-area-start" data-area="start"> <div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"><button class="topbar-control" onclick="toggleNav()" type="button" title="Menu (CTRL+ALT+n)"><i class="fa-fw fas fa-bars"></i></button> </div> <div class="topbar-button topbar-button-toc" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Table o' Contents (CTRL+ALT+t)"><i class="fa-fw fas fa-list-alt"></i></button> <div class="topbar-content"> <div class="topbar-content-wrapper"> <nav class="TableOfContents"> <ul> <li><a href="#semver">Semver</a></li> <li><a href="#managing-issues">Manag'n Issues</a></li> <li><a href="#managing-pull-requests">Manag'n Pull Requests</a></li> <li><a href="#labels">Labels</a> <ul> <li><a href="#kind">Kind</a></li> <li><a href="#impact">Impact</a></li> <li><a href="#declination">Declinat'n</a></li> <li><a href="#halt">Halt</a></li> <li><a href="#3rd-party">3rd-Party</a></li> </ul> </li> <li><a href="#setting-up-a-development-environment">Sett'n Up a Development Environment</a></li> <li><a href="#making-releases">Mak'n Releases</a></li> </ul> </nav> </div> </div> </div> </div> <ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/hugo-theme-relearn/pir/development/index.html"><span itemprop="name">Development</span></a><meta itemprop="position" content="1"> > </li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Maintaining</span><meta itemprop="position" content="2"></li> </ol> <div class="topbar-area topbar-area-end" data-area="end"> <div class="topbar-button topbar-button-edit" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/development/maintaining/_index.pir.md" target="_self" title="Edit (CTRL+ALT+w)"><i class="fa-fw fas fa-pen"></i></a> </div> <div class="topbar-button topbar-button-print" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/development/maintaining/index.print.html" title="Prrrint whole chapterrr (CTRL+ALT+p)"><i class="fa-fw fas fa-print"></i></a> </div> <div class="topbar-button topbar-button-prev" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/development/contributing/index.html" title="Contributing (🡒)"><i class="fa-fw fas fa-chevron-left"></i></a> </div> <div class="topbar-button topbar-button-next" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/development/screenshots/index.html" title="Scrrrenshots (🡐)"><i class="fa-fw fas fa-chevron-right"></i></a> </div> <div class="topbar-button topbar-button-more" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Morrre"><i class="fa-fw fas fa-ellipsis-v"></i></button> <div class="topbar-content"> <div class="topbar-content-wrapper"> <div class="topbar-area topbar-area-more" data-area="more"> </div> </div> </div> </div> </div> </div> </nav> <div id="R-main-overlay"></div> <main id="R-body-inner" class="highlightable development" tabindex="-1"> <div class="flex-block-wrapper"> <article class="default"> <header class="headline"> </header> <h1 id="maintaining">Maintaining</h1> <h2 id="semver">Semver</h2> <p>This project tries t' follow th' <a href="https://semver.org/" rel="external" target="_self">semver policy</a> - although not followed 100% 'n th' past.</p> <p>Usually an entry o' <span class="badge cstyle warning badge-with-title"><span class="badge-title"><i class="fa-fw fas fa-exclamation-triangle"></i></span><span class="badge-content">Break'n</span></span> on th' <a href="/hugo-theme-relearn/pir/introduction/releasenotes/index.html">What’s new</a> plank causes a new major release number.</p> <p>All other entries on th' <a href="/hugo-theme-relearn/pir/introduction/releasenotes/index.html">What’s new</a> plank will increase th' minor release number.</p> <p>Releases result'n 'n a new major or minor number be called main release.</p> <p>Releases contain'n bugfixes only, be only increas'n th' patch release number. Those releases don’t result 'n announcements on th' <a href="/hugo-theme-relearn/pir/introduction/releasenotes/index.html">What’s new</a> plank.</p> <p>Entries on th' <a href="/hugo-theme-relearn/pir/introduction/releasenotes/index.html">What’s new</a> plank be checked an' enforced dur'n th' <code>version-release</code> GitHub Act'n.</p> <h2 id="managing-issues">Manag'n Issues</h2> <p>Issues be categorized an' managed by assign'n <a href="/hugo-theme-relearn/pir/development/maintaining/index.html#labels">labels</a> t' it.</p> <p>Once work'n on an issue, assign it t' a fitt'n maintainer.</p> <p>When done, close th' ticket. Once an issue be closed, it needs t' be assigned t' next release milestone.</p> <p>A once released ticket be not allowed t' be reopened an' rereleased 'n a different milestone. This would cause th' changelog t' be changed even fer th' milestone th' issue was previously released 'n. Instead write a new ticket.</p> <h2 id="managing-pull-requests">Manag'n Pull Requests</h2> <p>If a PR be merged an' closed it needs an accompanied issue assigned t'. If there be no issue fer a PR, th' maintainer needs t' create one.</p> <p>Ye can assign multiple PRs t' one issue as long as they belong together.</p> <p>Usually set th' same labels an' milestone fer th' PR as fer th' accompanied issue.</p> <h2 id="labels">Labels</h2> <h3 id="kind">Kind</h3> <p>An issue that results 'n changesets must have exactly one o' th' follow'n labels. This needs t' be assigned latest before release.</p> <table> <thead> <tr> <th>Label</th> <th>Descript'n</th> <th>Changelog section</th> </tr> </thead> <tbody> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #5498d8;">documentat'n</span></span></td> <td>Improvements or addit'ns t' documentat'n</td> <td>-</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #99d856;">discussion</span></span></td> <td>This issue was converted t' a discussion</td> <td>-</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #d8d104;">task</span></span></td> <td>Maintenance work</td> <td>Maintenance</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #d8ae04;">feature</span></span></td> <td>New feature or request</td> <td>Features</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #d88704;">bug</span></span></td> <td>Someth'n isn’t work'n</td> <td>Fixes</td> </tr> </tbody> </table> <h3 id="impact">Impact</h3> <p>If th' issue would cause a new main release due t' <a href="/hugo-theme-relearn/pir/development/maintaining/index.html#semver">semver semantics</a> it needs one o' th' accord'n labels an' th' match'n badge on th' <a href="/hugo-theme-relearn/pir/introduction/releasenotes/index.html">What’s new</a> plank.</p> <table> <thead> <tr> <th>Label</th> <th>Descript'n</th> </tr> </thead> <tbody> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #d73a4a;">change</span></span></td> <td>Introduces changes wit' exist'n installat'ns</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #d73a4a;">break'n</span></span></td> <td>Introduces break'n changes wit' exist'n installat'ns</td> </tr> </tbody> </table> <h3 id="declination">Declinat'n</h3> <p>If an issue does not result 'n changesets but be closed anyways, it must have exactly one o' th' follow'n labels.</p> <table> <thead> <tr> <th>Label</th> <th>Descript'n</th> </tr> </thead> <tbody> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">duplicate</span></span></td> <td>This issue or pull request already exists</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">invalid</span></span></td> <td>This doesn’t seem right</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">support</span></span></td> <td>Request fer achiev'n a special goal</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">unresolved</span></span></td> <td>No progress on this issue</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">update</span></span></td> <td>A change 'n behavior after updat</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #9fa2a5;">wontchange</span></span></td> <td>This will not be worked on</td> </tr> </tbody> </table> <h3 id="halt">Halt</h3> <p>Ye can assign one further label out o' th' follow'n list t' signal readers that development on an open issue be currently halted fer different reasons.</p> <table> <thead> <tr> <th>Label</th> <th>Descript'n</th> </tr> </thead> <tbody> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #998f6b;">blocked</span></span></td> <td>Depends on other issue t' be fixed first</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #998f6b;">idea</span></span></td> <td>A valu'ble idea that’s currently not worked on</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #998f6b;">undecided</span></span></td> <td>No decision was made yet</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #6426ff;">helpwanted</span></span></td> <td>Great idea, send 'n a PR</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #6426ff;">needsfeedback</span></span></td> <td>Further informat'n be needed</td> </tr> </tbody> </table> <h3 id="3rd-party">3rd-Party</h3> <p>If th' issue be not caused by a programm'n error 'n th' themes own code, ye can label th' caus'n program or library.</p> <table> <thead> <tr> <th>Label</th> <th>Descript'n</th> </tr> </thead> <tbody> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #e550a7;">asciidoc</span></span></td> <td>This be a topic related t' process'n o' AsciiDoc</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #e550a7;">browser</span></span></td> <td>This be a topic related t' th' browser but not th' theme</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #e550a7;">device</span></span></td> <td>This be a topic related t' a certain device</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #e550a7;">hugo</span></span></td> <td>This be a topic related t' Cap'n Hugo itself but not th' theme</td> </tr> <tr> <td><span class="badge cstyle default"><span class="badge-content" style="background-color: #e550a7;">mermaid</span></span></td> <td>This be a topic related t' Merrrmaid itself but not th' theme</td> </tr> </tbody> </table> <h2 id="setting-up-a-development-environment">Sett'n Up a Development Environment</h2> <p>Git Hooks be used t' automate some tasks. They be stored 'n th' <code>.githooks</code> root folder.</p> <p>Documentat'n fer each hook be contained 'n each file.</p> <p>At least th' <code>pre-commit</code> hook be required, as it updates th' version number on each commit. This helps t' help debugg'n o' user related issues.</p> <h2 id="making-releases">Mak'n Releases</h2> <p>A release be based on a milestone named like th' release itself - just th' version number, eg: <code>1.2.3</code>. It’s 'n th' maintainers responsibility t' check <a href="/hugo-theme-relearn/pir/development/maintaining/index.html#semver">semver semantics</a> o' th' milestone’s name prior t' release an' change it if necessary.</p> <p>Mak'n releases be automated by th' <code>version-release</code> GitHub Act'n. It requires th' version number o' th' milestone that should be released. Th' release will be created from th' <code>main</code> branch o' th' repository.</p> <p>Treat released milestones as immut'ble. Don’t rerelease an already released milestone. An already released milestone may already been consumed by yer users.</p> <p>Dur'n execut'n o' th' act'n a few th'ns be checked. If a check fails th' act'n fails, result'n 'n no new release. Ye can correct th' errors afterwards an' rerun th' act'n.</p> <p>Th' follow'n checks will be enforced</p> <ul> <li>th' milestone exists</li> <li>there be at least one closed issue assigned t' th' milestone</li> <li>all assigned issues fer this milestone be closed</li> <li>if it’s a main release, there must be an accompany'n releasenotes file present 'n th' repo at <code>introduction/releasenotes/<major>/<minor>.en.md</code></li> </ul> <p>Aft a successful run o' th' act'n</p> <ul> <li>th' changelog at <code>introduction/changelog/<major>/<minor>/<patch>.<lang>.md</code> be created fer english an' piratish, includ'n miss'n generic upper level files</li> <li>th' <code>CHANGELOG.md</code> be updated</li> <li>th' releasenotes at <code>introduction/releasenotes/<major>/<minor>.en.md</code> be updated, includ'n release version an' release date</li> <li>miss'n generic upper level files fer english an' piratish be created</li> <li>th' version number fer th' <code><meta generator></code> be updated</li> <li>th' updated files be committed</li> <li>th' milestone be closed</li> <li>th' repository be tagged wit' th' version number (eg. <code>1.2.3</code>), th' main version number (eg. <code>1.2.x</code>) an' th' major version number (eg. <code>1.x</code>)</li> <li>a new entry 'n th' <a href="https://github.com/McShelby/hugo-theme-relearn/releases" rel="external" target="_self">GitHub release list</a> wit' th' accord'n changelog will be created</li> <li>th' <a href="https://mcshelby.github.io/hugo-theme-relearn/" rel="external" target="_self">official documentat'n</a> be built an' deployed</li> <li>th' version number fer th' <code><meta generator></code> be updated t' a temporary an' committed (this helps t' determine if users be runn'n directly on th' main branch or be us'n releases)</li> <li>a new milestone fer th' next patch release be created (this can later be renamed t' a main release if necessary)</li> </ul> <footer class="footline"> <div class="R-taxonomy taxonomy-categories cstyle" title="Categorrries" style="--VARIABLE-TAGS-BG-color: var(--INTERNAL-TAG-BG-color);"> <i class="fa-fw fas fa-layer-group"></i> <ul> <li><a class="term-link" href="/hugo-theme-relearn/pir/categories/explanation/index.html">Explanation</a></li> <li><a class="term-link" href="/hugo-theme-relearn/pir/categories/howto/index.html">Howto</a></li> </ul> </div> </footer> </article> </div> </main> </div> <script src="/hugo-theme-relearn/js/clipboard.min.js?1732916755" defer></script> <script src="/hugo-theme-relearn/js/perfect-scrollbar.min.js?1732916755" defer></script> <script src="/hugo-theme-relearn/js/theme.js?1732916755" defer></script> </body> </html>