<feed xmlns='http://www.w3.org/2005/Atom'>
<title>contracts/modules, branch main</title>
<subtitle>TODO</subtitle>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/'/>
<entry>
<title>add `declarativeUsers` contract</title>
<updated>2025-09-08T09:06:49+00:00</updated>
<author>
<name>Alexander Foremny</name>
<email>aforemny@posteo.de</email>
</author>
<published>2025-09-08T09:06:49+00:00</published>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/commit/?id=b55e007a15bf251156a59d7c5eaa9fc54dcd6cd8'/>
<id>b55e007a15bf251156a59d7c5eaa9fc54dcd6cd8</id>
<content type='text'>
- example consumer `users.declarativeUsers` (creates users as Linux
  users)
- example provider `hardcodedUsers.&lt;group&gt;` (static configuration of
  user groups (each group is a `declarativeUsers` provider)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- example consumer `users.declarativeUsers` (creates users as Linux
  users)
- example provider `hardcodedUsers.&lt;group&gt;` (static configuration of
  user groups (each group is a `declarativeUsers` provider)
</pre>
</div>
</content>
</entry>
<entry>
<title>extend userSecret implementation to all users (not only root)</title>
<updated>2025-09-07T22:11:23+00:00</updated>
<author>
<name>Alexander Foremny</name>
<email>aforemny@posteo.de</email>
</author>
<published>2025-09-07T22:10:35+00:00</published>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/commit/?id=a485724fdc452fa19b337c2364a105243635acb3'/>
<id>a485724fdc452fa19b337c2364a105243635acb3</id>
<content type='text'>
requires a patch of nixpkgs:

```diff
--- a/nixos/modules/contracts/default.nix       2025-09-07 16:15:41.381243855 +0200
+++ b/nixos/modules/contracts/default.nix       2025-09-08 00:05:58.218489096 +0200
@@ -87,7 +87,8 @@ in
               default = submodule (consumer: {
                 options = {
                   provider = mkOption {
-                    type = interface.config.provider;
+                    type = lib.types.nullOr interface.config.provider;
+                    default = null;
                   };
                   input = mkOption {
                     type = submodule interface.config.input;`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
requires a patch of nixpkgs:

```diff
--- a/nixos/modules/contracts/default.nix       2025-09-07 16:15:41.381243855 +0200
+++ b/nixos/modules/contracts/default.nix       2025-09-08 00:05:58.218489096 +0200
@@ -87,7 +87,8 @@ in
               default = submodule (consumer: {
                 options = {
                   provider = mkOption {
-                    type = interface.config.provider;
+                    type = lib.types.nullOr interface.config.provider;
+                    default = null;
                   };
                   input = mkOption {
                     type = submodule interface.config.input;`
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor user secret implementation</title>
<updated>2025-09-07T11:21:11+00:00</updated>
<author>
<name>Fabian Kirchner</name>
<email>kirchner@posteo.de</email>
</author>
<published>2025-09-07T11:21:11+00:00</published>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/commit/?id=3e4da4404a1b1eca40f7fbdd566800936456ac03'/>
<id>3e4da4404a1b1eca40f7fbdd566800936456ac03</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add asecret secret provider</title>
<updated>2025-09-06T17:49:51+00:00</updated>
<author>
<name>Fabian Kirchner</name>
<email>kirchner@posteo.de</email>
</author>
<published>2025-09-06T17:49:37+00:00</published>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/commit/?id=889ed2458bc82ccc69787974569e2eb6d30c56b0'/>
<id>889ed2458bc82ccc69787974569e2eb6d30c56b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>another take on basic contracts</title>
<updated>2025-09-05T21:52:28+00:00</updated>
<author>
<name>Alexander Foremny</name>
<email>aforemny@posteo.de</email>
</author>
<published>2025-09-05T21:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://code.nomath.org/contracts/commit/?id=7132c52c038de995eb291070a4cda3eaf975635b'/>
<id>7132c52c038de995eb291070a4cda3eaf975635b</id>
<content type='text'>
- adds "secret" consumer `nixosModules.userSecret`
- binds secret provider `testing.hardcodedSecret.rootPassword` with
  secret consumer `users.users.root.passwordSecret`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- adds "secret" consumer `nixosModules.userSecret`
- binds secret provider `testing.hardcodedSecret.rootPassword` with
  secret consumer `users.users.root.passwordSecret`
</pre>
</div>
</content>
</entry>
</feed>
