!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

403 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.136 Servers

Load older messages


SenderMessageTime
23 Oct 2025
@raitobezarius:matrix.orgraitobezariusnot install software usability19:24:25
@raitobezarius:matrix.orgraitobezariushonestly, i'd be more than happy to have someone help on Gerrit!19:24:34
@raitobezarius:matrix.orgraitobezariusGerrit already benefited from UX designs / stories in the past fwiw19:24:47
@raitobezarius:matrix.orgraitobezariushttps://www.gerritcodereview.com/about.html19:26:27
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping
In reply to @raitobezarius:matrix.org
Gerrit already benefited from UX designs / stories in the past fwiw
And someone should really take a look at the mobile layouts
19:27:14
@raitobezarius:matrix.orgraitobezariusI sent an email to the mailing list19:29:48
@raitobezarius:matrix.orgraitobezariusactuallyyyyyyyyyyyy19:29:52
@raitobezarius:matrix.orgraitobezariusi would say this is a feature!19:29:54
@raitobezarius:matrix.orgraitobezariusI'm anti Gerrit on the phone otherwise you cannot "disconnect"19:30:09
@raitobezarius:matrix.orgraitobezarius(at least, this is a trap I see a lot of people getting into once they have $WORK_PROJECT_TOOL on their phone)19:30:31
@raitobezarius:matrix.orgraitobezarius(and I have GitHub on my phone and I do merge things from my phone, yes.)19:30:39
@piegames:flausch.socialpiegamesHow about making the mobile UI read-only?19:54:28
@raitobezarius:matrix.orgraitobezariuswould be interesting19:57:47
@kfears:matrix.orgKFears (burnt out)
In reply to @piegames:flausch.social
How about making the mobile UI read-only?
I think it could still create an incentive to spend time looking over CLs even read-only
20:14:55
24 Oct 2025
@cjablons:matrix.orgcjab joined the room.02:01:11
25 Oct 2025
@rainbowcat:xmr.seRcat πŸ³οΈβ€πŸŒˆπŸ³οΈβ€βš§οΈ changed their profile picture.06:15:01
@emilazy:matrix.orgemilyGerrit login appears to be broken14:38:16
@emilazy:matrix.orgemilyhm, it fixed itself14:44:59
@raitobezarius:matrix.orgraitobezariuswhat error did you get?16:04:32
@raitobezarius:matrix.orgraitobezarius(alerting shows me nothing for today for Gerrit)16:04:45
@emilazy:matrix.orgemily it was some text/plain page when bouncing out of Keycloak 17:49:08
@emilazy:matrix.orgemilyI forget the exact wording but it was literally just "Server Error" or something with nothing else17:49:18
@raitobezarius:matrix.orgraitobezariusyeah, indeed21:18:16
@raitobezarius:matrix.orgraitobezariusi can confirm it21:18:24
28 Oct 2025
@lillecarl:matrix.orglillecarl
diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
     SQLiteStmt QueryDerivationOutputs;
     SQLiteStmt QueryPathFromHashPart;
     SQLiteStmt QueryValidPaths;
+    SQLiteStmt UpdateRegTime;
 };
 
 int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->RegisterValidPath = state.db.create(
         "insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
     state.stmts->UpdatePathInfo = state.db.create(
-        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
     state.stmts->AddReference = state.db.create(
         "insert or replace into Refs (referrer, reference) values (?, ?);");
     state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->QueryPathFromHashPart = state.db.create(
         "select path from ValidPaths where path >= ? limit 1;");
     state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+    state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
 }
 
 
@@ -715,6 +717,7 @@ try {
 
 std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     /* Get the path info. */
     auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
 
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
 
 uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
     if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
         throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 
 bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
 }
 

How on earth does this not update registrationTime on a package when I build it? πŸ€”

01:56:19
@lillecarl:matrix.orglillecarl *
diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
     SQLiteStmt QueryDerivationOutputs;
     SQLiteStmt QueryPathFromHashPart;
     SQLiteStmt QueryValidPaths;
+    SQLiteStmt UpdateRegTime;
 };
 
 int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->RegisterValidPath = state.db.create(
         "insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
     state.stmts->UpdatePathInfo = state.db.create(
-        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
     state.stmts->AddReference = state.db.create(
         "insert or replace into Refs (referrer, reference) values (?, ?);");
     state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->QueryPathFromHashPart = state.db.create(
         "select path from ValidPaths where path >= ? limit 1;");
     state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+    state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
 }
 
 
@@ -715,6 +717,7 @@ try {
 
 std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     /* Get the path info. */
     auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
 
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
 
 uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
     if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
         throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 
 bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
 }
 

~~How on earth does this not update registrationTime on a package when I build it?~~ AAaaaaaaa I'm running the Nixpkgs daemon. It's getting too late πŸ€”

01:57:59
@lillecarl:matrix.orglillecarl *
diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
     SQLiteStmt QueryDerivationOutputs;
     SQLiteStmt QueryPathFromHashPart;
     SQLiteStmt QueryValidPaths;
+    SQLiteStmt UpdateRegTime;
 };
 
 int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->RegisterValidPath = state.db.create(
         "insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
     state.stmts->UpdatePathInfo = state.db.create(
-        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+        "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
     state.stmts->AddReference = state.db.create(
         "insert or replace into Refs (referrer, reference) values (?, ?);");
     state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
     state.stmts->QueryPathFromHashPart = state.db.create(
         "select path from ValidPaths where path >= ? limit 1;");
     state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+    state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
 }
 
 
@@ -715,6 +717,7 @@ try {
 
 std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     /* Get the path info. */
     auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
 
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
 
 uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
     if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
         throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
 
 bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
 {
+    state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
     return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
 }
 

How on earth does this not update registrationTime on a package when I build it? Edit: AAaaaaaaa I'm running the Nixpkgs daemon. It's getting too late πŸ€”

01:58:34
@lillecarl:matrix.orglillecarl
[lillecarl@shitbox] in [☸ kubernetes-admin@shitbox (nix-csi)]~/C/lix [πŸŽ‹ main][!][πŸ¦€ v1.86.0][❄️  impure (lix-shell-env-env)][πŸ—€ loaded/allowed][🐚fish][asπŸ§™]
[03:00:38]❯ sudo -E ./build/lix/nix/nix path-info --store local /nix/store/0fc5496qwndd1m5lhxk58alv28ga0dn4-manifest.json --json | jq '.[0].registrationTime'
warning: $HOME ('/home/lillecarl') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
1761616839
[lillecarl@shitbox] in [☸ kubernetes-admin@shitbox (nix-csi)]~/C/lix [πŸŽ‹ main][!][πŸ¦€ v1.86.0][❄️  impure (lix-shell-env-env)][πŸ—€ loaded/allowed][🐚fish][asπŸ§™]
[03:00:39]❯ sudo -E ./build/lix/nix/nix path-info --store local /nix/store/0fc5496qwndd1m5lhxk58alv28ga0dn4-manifest.json --json | jq '.[0].registrationTime'
warning: $HOME ('/home/lillecarl') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
1761616840

That's more like it, thanks!

02:01:13
@shine:proqqul.netTaeer Bar-Yam joined the room.22:47:00
29 Oct 2025
@lillecarl:matrix.orglillecarl#maybe I was painting with a bit of a broad brush, when I implemented that update "so low" any command and his uncle will update regtime, can't query the store at all without touching πŸ˜„ I'm happy to see it working though10:53:16

Show newer messages


Back to Room ListRoom Version: 10