Karsten Schmidt<p>Line must go down! Maintenance weeks are over![1]</p><p>Software maintenance, large scale refactoring, creating/improving documentation, deduplicating code are some the most boring & thankless tasks, but also so essential, especially on projects of the scale of <a href="https://thi.ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a> (with almost 4100 source files)</p><p>Yesterday was <a href="https://mastodon.thi.ng/tags/ReleaseFriday" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ReleaseFriday</span></a>, most prominently featuring new major version & expansion of <a href="https://thi.ng/geom" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/geom</span><span class="invisible"></span></a> (and its 20+ support packages) — I will write about it more in coming days.</p><p>Part of this major release cycle also included a repo-wide round of various cleanups, incl. updating & reviewing 425 code snippets in doc strings and preparing them for extraction[2], fixing links in docs, enforcing naming conventions for package internals across all 190+ packages, deduplicating and refactoring internals in dozens of projects, updating examples, building tools to generate diagrams for readmes etc.</p><p>These have been some intense few weeks, but I'm super glad it's all done (for now)!</p><p>Happy coding! :)</p><p>[1] The hours of tech debt auto-calculated in this diagram are a bit pointless (completely OTT and containing alot of false positives), but the graph still nicely shows the effort & progress involved... Btw. the chart is from here:</p><p><a href="https://codeclimate.com/github/thi-ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeclimate.com/github/thi-ng/</span><span class="invisible">umbrella</span></a></p><p>[2] Wherever possible, code examples/snippets in project readme's and docstrings embedded in source code can be extracted into their own source files via <a href="https://thi.ng/tangle" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/tangle</span><span class="invisible"></span></a> and then run directly (e.g. via <a href="https://bun.sh" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">bun.sh</span><span class="invisible"></span></a>). You can find more info in this section of the main readme:</p><p><a href="https://github.com/thi-ng/umbrella/blob/develop/README.md#extracting-code-examples-from-readme-files--comments" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/blo</span><span class="invisible">b/develop/README.md#extracting-code-examples-from-readme-files--comments</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Maintenance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Maintenance</span></a> <a href="https://mastodon.thi.ng/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.thi.ng/tags/TechDebt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TechDebt</span></a> <a href="https://mastodon.thi.ng/tags/Documentation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Documentation</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a></p>