﻿<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">MfGames Writing Setup Flake</title>
  <link type="application/atom+xml" href="https://mfgames.com/mfgames-writing-setup-flake/atom.xml" rel="self" />
  <link type="text/html" href="https://mfgames.com/mfgames-writing-setup-flake/" rel="alternate" />
  <updated>2026-05-20T17:37:33Z</updated>
  <id>https://mfgames.com/mfgames-writing-setup-flake/</id>
  <author>
    <name>D. Moonfire</name>
  </author>
  <rights>Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</rights>
  <entry>
    <title>Updated to NixOS 24.11 (MfGames Writing Setup Flake)</title>
    <link rel="alternate" href="https://mfgames.com/blog/2025/01/11/updated-to-nixos-25.11/" />
    <updated>2025-01-11T06:00:00Z</updated>
    <id>https://mfgames.com/blog/2025/01/11/updated-to-nixos-25.11/</id>
    <category term="mfgames-writing-setup-flake" scheme="https://mfgames.com/categories/" label="MfGames Writing Setup Flake" />
    <content type="html">&lt;p&gt;An occasional chores, we've updated the flake to be based off
&lt;a href="https://nixos.org/blog/announcements/2024/nixos-2411/"&gt;NixOS 24.11&lt;/a&gt;. From our understanding, the flake input could always be changed but this sets up a nice default using the current, non-deprecated version of NixOS.&lt;/p&gt;
&lt;p&gt;Along with this, we've also updated to the latest version of &lt;a href="https://mfgames.com/mfgames-project-setup-flake/"&gt;mfgames-project-setup-flake&lt;/a&gt; which does the same thing (and copies the same first paragraph as this post).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>v1.0.0 - Breaking Changes (MfGames Writing Setup Flake)</title>
    <link rel="alternate" href="https://mfgames.com/blog/2026/04/16/breaking-changes/" />
    <updated>2026-04-16T05:00:00Z</updated>
    <id>https://mfgames.com/blog/2026/04/16/breaking-changes/</id>
    <category term="mfgames-writing-setup-flake" scheme="https://mfgames.com/categories/" label="MfGames Writing Setup Flake" />
    <content type="html">&lt;p&gt;As the chained updates go through, we've managed to update this project to use the new options-based format of &lt;a href="https://mfgames.com/mfgames-project-setup-flake/"&gt;mfgames-project-setup-flake&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release changes a few things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are now switching to &lt;a href="https://semver.org/"&gt;semver&lt;/a&gt; with this being tagged as v1.0.0&lt;/li&gt;
&lt;li&gt;Moving from the &lt;code&gt;mkConfig&lt;/code&gt; to a NixOS-style configuration&lt;/li&gt;
&lt;li&gt;Embracing Justfile as the default build process&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Importing&lt;/h2&gt;
&lt;p&gt;Importing is slightly differen than before. Inputs should include the tags:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-nix"&gt;flake-parts.url = &amp;quot;github:hercules-ci/flake-parts&amp;quot;;
mfgames-writing-setup.url = &amp;quot;git+https://src.mfgames.com/nixos-contrib/mfgames-writing-setup-flake.git?ref=refs/tags/v1.0.0&amp;quot;;
mfgames-writing-setup.inputs.nixpkgs.follows = &amp;quot;nixpkgs&amp;quot;; # Optional
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This flake needs to be imported into the module:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-nix"&gt;  outputs =
    inputs@{ flake-parts, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [
        inputs.mfgames-writing-setup.flakeModules.default
      ];
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While we haven't figured out how to get this to play with &lt;a href="https://github.com/numtide/flake-utils"&gt;flake-utils&lt;/a&gt;, we've changed our flake to use &lt;a href="https://flake.parts/"&gt;flake-parts&lt;/a&gt; which gave us a better framework for figuring out the options. As a note, configuration is done &lt;em&gt;outside&lt;/em&gt; of the &lt;code&gt;perSystem&lt;/code&gt;, but the results (&lt;code&gt;config.mfgames.writing&lt;/code&gt;) are provided inside &lt;code&gt;perSystem&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-nix"&gt;      mfgames.writing.enable = true;

      perSystem =
        { config, pkgs, ... }:
        {
          devShells.default = pkgs.mkShell {
            packages = [ ] ++ config.mfgames.writing.packages;
            shellHook = config.mfgames.writing.shellHook;
          };
        };
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Project Setup&lt;/h2&gt;
&lt;p&gt;If you notice, this no longer requires adding the &lt;code&gt;mfgames-project-setup-flake&lt;/code&gt; settings, this flake will now automatically include that unless you need to specifically override it. However, you don't have to import the project setup if you want to use its current functionality, such as using &lt;code&gt;mfgames.project.reuse&lt;/code&gt; to license your work:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-nix"&gt;      mfgames.project.reuse.enable = true;
      mfgames.writing.enable = true;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;At the moment, there is no specific settings under &lt;code&gt;mfgames.writing&lt;/code&gt; other than &lt;code&gt;enable&lt;/code&gt;. The above example still imports everything you need to set up &lt;a href="https://mfgames.com/mfgames-writing-js/"&gt;mfgames-writing-js&lt;/a&gt; except that library itself. That is going to be the next change, to automatically package everything including the JS libraries, but not quite yet. Until then, you still need to set up your &lt;code&gt;package.json&lt;/code&gt; to include those projects. When that does it, this will be another breaking change because 99% of the time, anyone using this flake is also going to be using &lt;code&gt;mfgames-writing&lt;/code&gt; to build the projects.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Updated to NixOS 25.05 (MfGames Writing Setup Flake)</title>
    <link rel="alternate" href="https://mfgames.com/blog/2025/01/11/updated-to-nixos-25.05/" />
    <updated>2025-01-11T06:00:00Z</updated>
    <id>https://mfgames.com/blog/2025/01/11/updated-to-nixos-25.05/</id>
    <category term="mfgames-writing-setup-flake" scheme="https://mfgames.com/categories/" label="MfGames Writing Setup Flake" />
    <content type="html">&lt;p&gt;We've updated the flake to be based off &lt;a href="https://nixos.org/blog/announcements/2025/nixos-2505/"&gt;NixOS 25.05&lt;/a&gt; and the latest version of &lt;a href="https://mfgames.com/mfgames-project-setup-flake/"&gt;mfgames-project-setup-flake&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
</feed>
