)]}'
{
  "log": [
    {
      "commit": "ffd6d2a20ef47c67fe15e5494121f88f516d67ab",
      "tree": "c72ed28cfdcb5900071808a4b6d2266b87881557",
      "parents": [
        "c48d39095bce6758a351c510055c0771fed33908"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Aug 21 12:29:32 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Aug 21 12:29:32 2026 +0200"
      },
      "message": "Bump the version and fix the CI image\n\nmetacpan/metacpan-api, which the build ran in, switched to an\nunprivileged user. apt-get cannot write /var/lib/apt/lists there and\ngives up with \"Permission denied\", so cmake never got installed and the\ncollocatordb build died with \"cmake: command not found\". The image has no\nsudo either, and a job cannot ask for another user, so this needs a\ndifferent image: the official perl one runs as root and brings cpanm,\npinned to its distribution so that an upstream rebuild cannot move\nrocksdb underneath us.\n\nTwo things follow from the change. morbo comes from the local lib now\nrather than from the image, so the server test needs perl5/bin on the\nPATH, and the cache key carries the image, because perl5/ only holds what\ncpanm found missing in the image it was built in.\n\nA failed package installation is also reported where it happens now\ninstead of surfacing much later as a missing command.\n\nVerified with gitlab-ci-local: all 12 tests pass, against the rocksdb 9.10\nof trixie.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I4ed59866b57aa10e39c28390a9a9e2b7d74780e5\n"
    },
    {
      "commit": "211fff4f5f9622419eadf2713d47b3ca8160acc1",
      "tree": "213185958a06d46c98b202816beb9ec28a917855",
      "parents": [
        "606a90995f826685fc3fdc6af9cafc9e59abcf8a"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 10:31:10 2026 +0900"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 10:31:10 2026 +0900"
      },
      "message": "CI: modernize the docker slimming\n\nFollows what Kalamar does. slimtoolkit became mintoolkit, and the invocation\nhad to change anyway: the tool has no --in-container option anymore, so the\njob would have stopped at an unknown flag. The download of the slim binary\ngoes away with it, it was never used, the containerized tool was called\ninstead.\n\nFF_NETWORK_PER_BUILD and the dns option of the dind service let the mint\ncontainer reach the container it probes, as in Kalamar.\n\nThe probe waited 10 seconds for the server, which is not enough: the image\ncompiles its Inline C at startup and then loads the model, and only answers\nafter 21 seconds, measured with the image of this commit. It waits 60 now.\n\nThe image tarball carries the version in its name, as in Kalamar, and\nupload-docker was adapted accordingly. It only runs for v tags now and has to\nbe started by hand. Before it also ran for every master commit, where\nCI_COMMIT_TAG is empty and it would have pushed a tag-less image.\n\nThe .dockerignore did not catch .gitlab-ci-local, it was written with a dot\ninstead of a hyphen. Everybody who runs gitlab-ci-local and then builds the\nimage locally packed the whole CI scratch directory into it, 549 MB in my\ncase, including job logs, which contain the CI variables. Release tarballs are\nignored now, too. This does not affect images built in CI, whose checkout is\nclean.\n\nVerified locally by running the whole chain: the large image builds, mint\nminifies it from 1.3 GB to 905 MB with the http probe answering 200, and the\nimage from Dockerfile.remove-example-data serves neighbours, collocators and\ngetVecsByRanks correctly with the compilers removed.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I0014c8d2e4f4cee667b0d1c5016f037c9aa44743\n"
    },
    {
      "commit": "e20daf1615a1cd4838f00ffacf45741e93e9477e",
      "tree": "0744f908550d2338bd542b2676dbebf6abdb76fc",
      "parents": [
        "0fc9927f75fd95e5acaa0adb0ef470fcf15207ea"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 09:55:55 2026 +0900"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 09:55:55 2026 +0900"
      },
      "message": "Bundle Devel::CheckLib in inc/\n\nMakefile.PL uses Devel::CheckLib to look for libcollocatordb, and cpanm runs\nMakefile.PL to find out about the dependencies, so it has to be there before\nanything else can be installed. That is what the \"use lib qw(inc)\" in\nMakefile.PL is for, only that inc/Devel/CheckLib.pm was never committed, so it\nexisted on developer machines but in no clean checkout.\n\nVersion 1.16 as required by Makefile.PL, distributed under the same terms as\nperl itself, with the package statement split the way Devel::CheckLib\ndocuments it for bundling, so that it is not indexed.\n\nCI and the docker image do not have to install it separately anymore. Verified\nin the CI image without Devel::CheckLib installed: Makefile.PL writes its\nMakefile and cpanm --installdeps resolves the dependencies.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I321954ce2db07dbead3a5322da0dc0385ba00c91\n"
    },
    {
      "commit": "96972c683fa6479e63ae5e8acccefc40f129efbc",
      "tree": "42def51890d796c008b8e3fb8a3f18af429c2064",
      "parents": [
        "cb6adf87e81b5199c9ee53cebcd9f1ec0cce2e9d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 09:50:14 2026 +0900"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 09:50:14 2026 +0900"
      },
      "message": "Install the rocksdb package instead of building it\n\ncollocatordb 1.5.0 builds against any recent rocksdb, so neither CI nor the\ndocker image has to build rocksdb 5.11 from source anymore. CI installs\nlibrocksdb-dev, the image rocksdb-dev.\n\nVerified with gitlab-ci-local: the job passes in 1.4 minutes instead of 5.45,\nwith librocksdb-dev 7.8.3 of the image. For the docker image, collocatordb was\nbuilt against alpine\u0027s rocksdb 11.0.4 with the package list of the Dockerfile,\nand Makefile.PL accepts the resulting library.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I24f38158ac5faed9802cf0955617de064580c016\n"
    },
    {
      "commit": "59c05367fad3782d91a9a6315870bdec6ec37bb8",
      "tree": "5f4ae7414a01ee4578363aa88078ff41f485bce1",
      "parents": [
        "25ab1702b0ae44fcd4b56fe4e6a7b5665d1e431a"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 07:58:10 2026 +0900"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 31 07:58:10 2026 +0900"
      },
      "message": "CI: install Devel::CheckLib before resolving the dependencies\n\ncpanm runs Makefile.PL to find out what a distribution needs, so everything\nMakefile.PL itself uses has to be installed before that. It uses\nDevel::CheckLib to look for libcollocatordb, which is not part of the CI image,\nso Makefile.PL aborted at its use statement, wrote no Makefile and cpanm gave\nup with \"Configuring /builds/ids-kl/derekovecs ... N/A\". Listing the module in\nPREREQ_PM cannot help, as those are only known after Makefile.PL has run.\n\nThis worked locally only because of an uncommitted inc/Devel/CheckLib.pm, which\nMakefile.PL picks up via \"use lib qw(inc)\".\n\nThe Dockerfile already installs Devel::CheckLib explicitly for the same reason,\nCI does it now as well. Makefile.PL declares it in CONFIGURE_REQUIRES, so that\ninstallations from a distribution tarball pull it in by themselves.\n\nVerified with gitlab-ci-local: build-and-test passes, 12 tests in 2 files.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Id1aee5f978092bf33594e081d43893f1ac78c692\n"
    },
    {
      "commit": "25ab1702b0ae44fcd4b56fe4e6a7b5665d1e431a",
      "tree": "1e984182b5a86bd9392e06233182cf6d36ff8ae7",
      "parents": [
        "f7003079456ddcb50e09772a426bd6c37167471e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jul 30 16:19:57 2026 +0900"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jul 30 16:19:57 2026 +0900"
      },
      "message": "CI: do not let ccache break the build\n\nThe pipeline aborted with \"ccache: command not found\" at ccache --show-stats.\nccache only makes the build faster, so nothing may depend on it being there:\nthe compiler symlinks and the cmake launcher options are only set up when it is\nactually installed, and printing the statistics can no longer fail the job.\n\nThe collocatordb build passed CMAKE_C_COMPILER_LAUNCHER, but collocatordb is\nC++, so ccache was never used for it. It sets both launchers now.\n\nAlso drops the two `env` calls, which printed all CI variables, including\nDOCKER_HUB_PASSWORD and the other secrets, into the job logs.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ib650cc7d473e837c8a47ee6f0a982d4fb335728f\n"
    },
    {
      "commit": "46b352816a6db0c6d521c350b63e9ebd3a664c1e",
      "tree": "e5e3b3122477c5bef8e0538ba2295fd81e5e9bea",
      "parents": [
        "a6a587673a1de25b0927cca5b6c73b9adcd44b35"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 19:24:52 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 19:24:52 2024 +0200"
      },
      "message": "docker-upload: push also as latest\n\nChange-Id: I4db6e8ead519104a9c162158550e6386d57ee022\n"
    },
    {
      "commit": "a9923bd6995c2a7b3811356b8c0f0743a05ae3e9",
      "tree": "3b39933094a4c425671b95ef794745aab7eb0c47",
      "parents": [
        "e82c7a077776f0e618ba87c9b9e66a9474f1ca0d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 14:49:45 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 17:35:48 2024 +0200"
      },
      "message": "CI: add docker upload job\n\nChange-Id: Ic1e079b04b4eebf6c67fb25074c57fd6f45be83b\n"
    },
    {
      "commit": "e82c7a077776f0e618ba87c9b9e66a9474f1ca0d",
      "tree": "5b1bba1ae0bc46baa9a791ca9c00ef88aed99ad7",
      "parents": [
        "0b02070e9a2435fd3b313e1751672002f519b4c5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 14:49:26 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 17:35:48 2024 +0200"
      },
      "message": "Docker don\u0027t slim the workdir\n\nFixes missing tab arrow\n\nChange-Id: If9a037a1991cd7360aff941d2b4d0322b24a3cae\n"
    },
    {
      "commit": "0b02070e9a2435fd3b313e1751672002f519b4c5",
      "tree": "bc6538fd46cd6dfa3f6c6998108673a45bac3896",
      "parents": [
        "2c1fb33b279f8446671d4dcddf1db11ed445ad17"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 13:26:15 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 13:26:15 2024 +0200"
      },
      "message": "Docker slim: wait 20s before probing\n\nChange-Id: Ia2d3eb7defc5fef8c6702dd6ad2b9d2b1b4a27f9\n"
    },
    {
      "commit": "2c1fb33b279f8446671d4dcddf1db11ed445ad17",
      "tree": "1aac3f6ef41e719af3edf871cbe19e48e835e65a",
      "parents": [
        "6d70c32905d15cd0062f532b40a6bd9fe3136119"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 12:48:55 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 12:48:55 2024 +0200"
      },
      "message": "gitlab ci: always run build-and-test\n\nChange-Id: I90f84ceac4eb7703951a6860146aed3aa5db941f\n"
    },
    {
      "commit": "10ccb98294c2ab51f547ca782a5540219d75f5e5",
      "tree": "c6ec36c6e1a572fa73f6a296eb93bad755afa78e",
      "parents": [
        "846e149dc446bb4023854fea4f028fc89ac550f8"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 12 14:15:13 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 13 12:45:46 2024 +0200"
      },
      "message": "GitLab-CI: add build-docker job with slimming\n\nChange-Id: If2b9d90d28e2637fab7aa6ea525feb446f6e05d4\n"
    },
    {
      "commit": "d196a6fce8d2fb0a6d0b396eded56de2580199b3",
      "tree": "23b77d22b374947bcdefbbedb068a7ea2880e92c",
      "parents": [
        "41d61c0bc831d007d420fad15ca72bd0d36e3939"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 05 22:18:20 2024 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 05 22:18:20 2024 +0200"
      },
      "message": "Use our own rocksdb fork\n\nChange-Id: I20c4aa9c947d7f35422c6934539340c9374ec9de\n"
    },
    {
      "commit": "18d7835dbed95ba42ec7308f6b5e77705d5c37dd",
      "tree": "6ab059a25819c8e4650a2c84bcf613544d5ba67f",
      "parents": [
        "898e548588d11c2e2142eb8c02c8b80a4a97417e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Feb 20 20:55:54 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Feb 20 20:55:54 2024 +0100"
      },
      "message": "CI: Use caching\n\nChange-Id: I4c70241b122c915195d3dbf10ef6758444c35126\n"
    },
    {
      "commit": "ddba9086ca3597459e3bc64c3ee05aba276849ed",
      "tree": "2f9f792032b1467e2a0577f3c48f68de38fa5d0b",
      "parents": [
        "043db1500f3e2677770e2701cb96cd996482062d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Nov 06 06:59:14 2023 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Nov 06 06:59:14 2023 +0100"
      },
      "message": "Add deploy CI target\n\nChange-Id: If2f954fb0556f6306ff26520d985ac903a964993\n"
    },
    {
      "commit": "a7afe931ffebe8714dfacb3355374da63455995e",
      "tree": "c9e76f401458a7974b68019da1fe58561557fe78",
      "parents": [
        "3e3e3262f2394d438e01a566f836da7cf41a20d0"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu May 19 09:21:03 2022 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu May 19 09:21:03 2022 +0200"
      },
      "message": "Rename private/collocatordb to ids-kl/collocatordb\n\nChange-Id: Ic97729ff5218735cd6495f89abab39d979a4e3a9\n"
    },
    {
      "commit": "3e3e3262f2394d438e01a566f836da7cf41a20d0",
      "tree": "071bd699045e36303ce351129ae6501bcc491a59",
      "parents": [
        "9a7996a7231b44600efdd851873e45eb38554c3b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Apr 12 23:11:45 2022 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Apr 13 11:15:49 2022 +0200"
      },
      "message": "Add example data and tests\n\nChange-Id: Ife7b03d33607ec6c27da39b783e66e28f6496bbc\n"
    },
    {
      "commit": "5b6a51e9ce1d08effb38f9647e64f58ad0ccbc36",
      "tree": "b4625273bbc0a18a84345abe07e189e75315e452",
      "parents": [
        "bf9bac048b1cd4ce56945b4c00a5065e270f9190"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Apr 11 21:23:30 2022 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Apr 11 23:23:56 2022 +0200"
      },
      "message": "Add gitlab ci script\n\nChange-Id: I826d7b22ebe8c1185f03b6cf3c744c323b87f989\n"
    }
  ]
}
