We've talked about before, and Aaron and I have recently talked about it, should we package extensions? I'd like put some ideas and questions forward so that people can rip them apart and we'll end up with something good :)
The basic idea is that we may want to start shipping extensions packages somehow separately from the core Inkscape package. There are several reasons for this:
-- Dependencies. The dependency checking in Inkscape will always be a toy when compared to dpkg and rpm. And, we don't want to require every package in Debian just to install Inkscape.
-- Versioning. It might be more reasonable to have effects on a different release schedule if there were a larger collection of authors. Something more like OpenClipart's monthly release.
-- Modularity. If we ever expect for people to be able to ship extensions for Inkscape from outside the project umbrella the tools to do so need to be good, and packing some of our own extensions externally would force use to make them reasonable.
Reasons to just throw everything into the Inkscape tarball and live with it:
-- Simple. Releases are a pain, more releases need to be justified.
-- Complete Solution. Have you ever seen a public forum where someone posts a new program, and then 90% of the questions are "What theme did you use in the screenshots?" Multiple places to get extensions means that everyone won't have the same set.
I think, that there is compelling reasons to start a new package for extensions, which brings the next points: how should it work?
-- Granularity. Should each extension be it's own package? Should they be grouped by functionality (input/output/effect)? Should they be grouped by common dependencies (inkscape-extensions-{python,perl,pstoedit})
-- Versioning. I'm kinda thinking that we should just do <inkscape major>.<inkscape minor>.<extension release> That way extensions could be released independent of Inkscape, but still, you know what version of Inkscape they are tied to.
Okay, I think that was verbose enough for now, if you made it this far I'm impressed.
--Ted
On Tue, Apr 19, 2005 at 11:25:51PM -0700, Ted Gould wrote:
We've talked about before, and Aaron and I have recently talked about it, should we package extensions? I'd like put some ideas and questions forward so that people can rip them apart and we'll end up with something good :)
I'm of similar mind; you listed a good pro/con consideration, and I agree it looks most sensible to break them out separately from the core.
I think, that there is compelling reasons to start a new package for extensions, which brings the next points: how should it work?
-- Granularity. Should each extension be it's own package? Should they be grouped by functionality (input/output/effect)? Should they be grouped by common dependencies (inkscape-extensions-{python,perl,pstoedit})
From a project organizational point of view, making each extension be
its own package has a benefit in that each extension author can take complete ownership of the whole thing. If we have a combined package, then we'd need to have someone act as 'integrator' of other people's extensions.
The flip side of that argument is that having someone act as an integrator of multiple extensions into one package allows establishment of some quality control checking, and may reduce the quantity of effort required of the extension developer.
A compromise between the two would be to set things up such that extensions could either be individually packaged, or grouped into and distributed as collections. That way, we gain the benefits of both approaches.
-- Versioning. I'm kinda thinking that we should just do <inkscape major>.<inkscape minor>.<extension release> That way extensions could be released independent of Inkscape, but still, you know what version of Inkscape they are tied to.
Hmm, this part I'm not so sure about. Ideally, there should not be such strong dependency between an extension and a particular version of Inkscape that we'd need to number them that way. If our extension interfaces are changing that much from release to release, then it could get messy. ;-)
Also, if we need dependency checking, wouldn't that be best to do in the packaging system? (rpm, autoconf, Makefile.PL, etc.)?
Bryce
participants (2)
-
Bryce Harrington
-
Ted Gould