SWI-Prolog/roadmap

Improve pack infrastructure

Anniepoo opened this issue · 4 comments

Recent experience with EModelWorks showed the pack infrastructure wasn't robust enough for our needs.

We were using Wouter's rdf libraries, which changed on a virtually daily basis and were often unstable, and we were using packs that depended in turn on other of his packs, and the whole was a mess.

The pack system has other issues

SWI-Prolog/swipl-devel#94

SWI-Prolog/swipl-devel#45

SWI-Prolog/swipl-devel#11

SWI-Prolog/swipl-devel#66

This one isn't really an architectural issue

SWI-Prolog/swipl-devel#44

So, this is a roadmap item to fix the pack system, something I think Jan is currently contemplating.

We were using Wouter's rdf libraries, which changed on a virtually daily basis and were often unstable, and we were using packs that depended in turn on other of his packs, and the whole was a mess.

Note that the pack system is not intended as a version control system. If you have a collection of mutually dependent and unstable collections of source files, git submodules provide the right level of control. Packs are intended to deal with stuff that has a public interface whose evolution is carefully considered and typically subject to semantic version numbering. The current system cannot deal with that properly either. That is something that needs to be addressed.

Indeed, my personal shortcomings as a software engineer are orthogonal to the problems with the current pack system. (The points enumerated by Annie still stand independent of that, of course.)

The roadmap was getting a bit cluttered by Pack Infra issues (and it was mostly myself who was to blame for that ;-)). I've created a Wiki based on all the current roadmap and swipl-devel issues: https://github.com/SWI-Prolog/roadmap/wiki/Pack-infra

(For Semweb it worked quite well to start out with separate issues and then -- at some point -- move to an integrated Wiki page that is more actionable. I'm attempting the same thing here.)

I was only peripherally involved in all that on EModelWorks, Raivo and Wouter worked it, so my report's probably muddled. The larger point is, working on the pack system is something on the roadmap.