www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - More on the necessity and difficulty of a package management system

reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Seems to be unduly difficult in Python:

http://www.google.com/buzz/michael.bruntonspall/AcMtiMEUgZ2/Packaging-and-deploying-python-web-apps

We need to have a good solution for D.


Andrei
Jan 26 2011
next sibling parent Robert Clipsham <robert octarineparrot.com> writes:
On 26/01/11 22:45, Andrei Alexandrescu wrote:
 Seems to be unduly difficult in Python:

 http://www.google.com/buzz/michael.bruntonspall/AcMtiMEUgZ2/Packaging-and-deploying-python-web-apps


 We need to have a good solution for D.


 Andrei

It's on my todo list for Serenity, which is almost able to power a complete blog now! (It already can if you don't mind guests being able to add blog posts). The exact workflow is unknown, I'm thinking a maximum of one command (or one click) to deploy development or stable versions, and switch between though. Now if only I had some clones so I could get it working faster... -- Robert http://octarineparrot.com/
Jan 26 2011
prev sibling next sibling parent reply Adam D. Ruppe <destructionator gmail.com> writes:
D's deployment is helped a lot by being compiled. We could just
use native package systems (deb, rpm; whatever works for C works
for D too) and/or static linking to ease the case of pushing
something to a live server with zero* outside dependencies.

* Well, one: libc I guess. But that's pretty easy to manage.


Of course, compiling is another story. I said my piece in a
recent thread, so I won't argue that again :)
Jan 26 2011
parent Jacob Carlborg <doob me.com> writes:
On 2011-01-27 00:06, Adam D. Ruppe wrote:
 D's deployment is helped a lot by being compiled. We could just
 use native package systems (deb, rpm; whatever works for C works
 for D too) and/or static linking to ease the case of pushing
 something to a live server with zero* outside dependencies.

That basically only works for Linux. On Mac OS X there is Macports but you would have to install that. On Windows there is no package management system available. Even if there was a package management system available on all three platforms you would still need to deploy to all these three.
 * Well, one: libc I guess. But that's pretty easy to manage.


 Of course, compiling is another story. I said my piece in a
 recent thread, so I won't argue that again :)

-- /Jacob Carlborg
Jan 27 2011
prev sibling next sibling parent spir <denis.spir gmail.com> writes:
On 01/26/2011 11:45 PM, Andrei Alexandrescu wrote:
 Seems to be unduly difficult in Python:

 http://www.google.com/buzz/michael.bruntonspall/AcMtiMEUgZ2/Packaging-and-deploying-python-web-apps

Yes, experienced. Related, but distinct, difficulty with intra-package import (inter-module references) (looks like in D as well). Denis -- _________________ vita es estrany spir.wikidot.com
Jan 26 2011
prev sibling next sibling parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
On 26/01/2011 22:45, Andrei Alexandrescu wrote:
 Seems to be unduly difficult in Python:

 http://www.google.com/buzz/michael.bruntonspall/AcMtiMEUgZ2/Packaging-and-deploying-python-web-apps


 We need to have a good solution for D.


 Andrei

I'm not really familiar with Python so I didn't understand all the implications with the issues he encountered on that article. From what I understand, Python on its own (the Python installation) does not allow multiple versions of the same library to be installed on it, thus the necessity of virtualenv. If that is the case, that seems a pretty bad design to me, for the reasons he mentioned. virtualenv should be the default way to do things. I mean, it's DLL Hell all over again, only in a different platform (Python runtime instead of Windows). People keep making the same mistakes... As for the rest of the article, well, it's mostly about web application deployment, which is a different concern (although related) to a package and version management system. We don't even have anything to deploy to in D, AFAIK. In my view, these are the features/concerns that should be considered for a package management system: 1: "package" version and dependency management (ie, verifying the correct dependencies are present) 2: A well defined, structured, and hopefully platform independent, way to compile source "packages", transforming them into binary "packages". 3: Adding, removing, or updating "packages" from some shared repository online (either a central repository or not). 4: A way to publish new "packages" into shared repositories (either a central repository or not). 5: Additional I would also like the possibility to add another layer of visibility/encapsulation to "packages", that is, to specify which modules/types/packages/etc should be visible to external "packages". This idea is taken from OSGi, and it would subsume the need for this: http://d.puremagic.com/issues/show_bug.cgi?id=2529 , and is generally a very nice mechanism to expose a clean API, that may not be possible with D's protection modifiers (public, private, etc.) alone, for large projects at least. I think concerns 1, 2, 5 are the most important ones (4 not so much). Concern 2 however, is likely also the hardest one to implement, by far. (note the "structured" and "platform-independent" qualifiers... we should strive to stay clear from make/automake crap and the likes as far away as possible) 1 and 5 are particularly of interest to me, because it is the way I would like to implement project dependencies in DDT, from the start, instead of having something which is just IDE specific. Much better to have a toolchain standard. -- Bruno Medeiros - Software Engineer
Feb 04 2011
prev sibling parent Christopher Nicholson-Sauls <ibisbasenji gmail.com> writes:
On 01/26/11 16:45, Andrei Alexandrescu wrote:
 Seems to be unduly difficult in Python:
 
 http://www.google.com/buzz/michael.bruntonspall/AcMtiMEUgZ2/Packaging-and-deploying-python-web-apps
 
 
 We need to have a good solution for D.
 
 
 Andrei

This seems related to a project I've been planning on: https://sites.google.com/site/dagazpreview/home Now if I could just find a little more spare time and get the be-damned thing's design finished and the code written. -- Chris N-S
Feb 08 2011