Re: new eggs: split schematra's modules into their own eggs + hiredis egg

Mario Domenech Goulart via Chicken-users <[email protected]>
Newsgroups gmane.lisp.scheme.chicken
Message-ID <[email protected]>
Hi Rolando,

On Mon, 25 Aug 2025 19:43:12 -0700 Rolando Abarca via Chicken-users <[email protected]> wrote:

> I should've test this a bit more, I had to split one more egg. Now all deps should be properly packaged.
>
> * [new] schematra-csrf
>   * release info: https://raw.githubusercontent.com/schematra/schematra/refs/heads/main/schematra-csrf.release-info
>   * docs: http://wiki.call-cc.org/eggref/5/schematra-csrf
>
> Thanks!
> - Rolando
>
> On Mon, Aug 25, 2025 at 4:30 PM Rolando Abarca <[email protected]> wrote:
>
>  Hi everyone,
>
>  Following some feedback I decided to split schematra into 3 (for now) different eggs:
>  * schematra (no changes to this one, but I updated the tarball url in the release info)
>  * [new] schematra-session: cookie-based session middleware
>    * release info:
>  https://raw.githubusercontent.com/schematra/schematra/refs/heads/main/schematra-session.release-info
>    * docs: http://wiki.call-cc.org/eggref/5/schematra-session
>  * [new] oauthtoothy (oauth2 middleware)
>    * release info: https://raw.githubusercontent.com/schematra/schematra/refs/heads/main/oauthtoothy.release-info
>    * docs: http://wiki.call-cc.org/eggref/5/oauthtoothy
>  * [new] chiccup (html rendering middleware)
>    * release info: https://raw.githubusercontent.com/schematra/schematra/refs/heads/main/chiccup.release-info
>    * docs: http://wiki.call-cc.org/eggref/5/chiccup
>
>  I'm trying to see if it would work to have some sort of mono-repo for the schematra eggs. They're all hosted here:
>  https://github.com/schematra/schematra

Thanks for splitting the schematra egg into separate eggs.  So far I've
added chiccup to the coop.

A couple of notes and questions for me to understand the current
situation.

If I understand correctly, we have the following dependencies:

* schematra-session -> schematra
* schematra-csrf -> schematra, schematra-session
* oauthtoothy -> schematra, schematra-session

* The currently released version of schematra (0.2.2) depends on
  chiccup, but doesn't declare it a dependency, so installation fails:
  http://salmonella-linux-x86.call-cc.org/chicken-5/clang/linux/x86/2025/08/26/salmonella-report/install/schematra.html

* Even if chiccup is installed, the installation of schematra fails with
  Error: (open-input-file) during expansion of (define-version-constants ...) - cannot open file - No such file or directory: "schematra.release-info"

* At the moment, assuming the schematra installation issues get solved
  schematra will install a schematra-csrf module, which will conflict
  with the schematra-csrf module installed by the schematra-csrf egg.

* schematra-csrf (the module of schematra), depends on
  schematra-session.  Since schematra-session depends on schematra, we
  have a circular dependency.

* oauthtoothy has a duplicated dependency on schematra in its egg file
  (not an issue, but since I was looking into it, I thought it would be
  good to point it out).

Considering these issues, if we add those eggs, they won't be
installable in their current state.  I don't have a good idea about the
architecture of the schematra-related eggs.  Do you have a plan on how
to make the eggs installable?

It's possible that I'm missing something.  If that's the case, please
let me know.

>  I'm also releasing a new hiredis-based redis egg:
>  * hiredis
>    * available at: https://github.com/schematra/chicken-hiredis
>    * release info: https://raw.githubusercontent.com/schematra/chicken-hiredis/refs/heads/main/hiredis.release-info
>    * docs: http://wiki.call-cc.org/eggref/5/hiredis

This one has an invalid category.  You probably mean `db' instead of
`databases'.

What are the requirements regarding the version of libhiredis?  With
version 0.14 from Debian 12 I get the following error:

executing: "sh /tmp/temp16ea.2571894/hiredis/0.1.0/hiredis.build.sh"
   /tmp/temp16ea.2571894/hiredis/0.1.0/build-redis -host -D compiling-extension -J -s -regenerate-import-libraries -setup-mode -I /tmp/temp16ea.2571894/hiredis/0.1.0 -C -I/tmp/temp16ea.257189
4/hiredis/0.1.0 -O2 -d1 hiredis.scm -o /tmp/temp16ea.2571894/hiredis/0.1.0/hiredis.so
In file included from /tmp/temp16ea.2571894/hiredis/0.1.0/hiredis.c:11:
/tmp/temp16ea.2571894/hiredis/0.1.0/redis_helpers.c: In function `redisReplyDouble':
/tmp/temp16ea.2571894/hiredis/0.1.0/redis_helpers.c:14:11: error: `redisReply' has no member named `dval'
   14 |   return r->dval;
      |           ^~

All the best.
Mario
-- 
https://parenteses.org/mario
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.