[Idle-dev] Documentation on Unix/Linux / A different view

Stephen M. Gava elguavas@users.sourceforge.net
Sun, 14 Oct 2001 19:39:56 +1000


Bruce,
I've rolled my two cents worth on two of your messages into one reply here.

Bruce Sherwood wrote:
> community we've met a number of users who are relatively new to Linux,
> typically RedHat (because it is the best advertised), and they have
> significant difficulties putting together a workable VPython environment.

One way you could probably help this a lot would be with a couple af simple 
step by step instruction sets or FAQ's  to guide less experienced users on 
how to set up their python environment on each linux or other *nix 
environment you care about so that it will work properly with vpython.  Or 
else look at how to integrate vpython into the python installations of the 
platforms you care about  (you could try asking people who've set up vpython 
satisfactorily on those platforms how they did it).  

I don't know that you're going to acheive the total homogeniety you desire in 
your setups for vpython on platforms different from windows without some 
work on your part to adapt your setup to varying conditions on different 
platforms.

The way python is set up on many of these platforms isn't really under the 
control of the python team themselves (the way it mostly is with windows, 
with the one big installer they release that does everything for a base 
system, even Tk), as I've tried to point out previously. In the case of Linux 
or the BSD's (Free, Open, Net)  for instance, the person who maintains the 
python packages for that platform will actually be compiling each python 
release from source with the right switches and set up in such a way that it 
will install sensibly and seamlessly into their system with its particular 
set of system libraries and locations for shared libraries etc. etc..  

The person who maintains or packages other python components (all the various 
3rd party modules, tools and libraries for instance, like numeric, or various 
database bindings or possibly vpython itself for that matter)  may not even 
be the same person who maintains the core python packages, but they would in 
each case be working to a core set of guidelines or rules or agreements on 
how these packages should all hang together with python core in on that 
platform.  What you really need to do is get in touch with the people 
packaging or porting python for each platform you have an interest in and 
find out from them how to bundle vpython so that it will fit in properly with 
the rest of python (*including the python documentation packages that are 
already available on each platform*) on that platform .

As many of these platforms have the similarity of a general "unixness" under 
the skin  (even the mac now with OSX!)  this won't be anywhere near as 
daunting as it might sound since there will be a lot of simillarities and 
variations within a relitaively low number of themes for how things are layed 
out.  It will just be a matter of exchanging a bit of email, maybe reading a 
bit of documentation or floating some questions on some mailing lists, and 
then you should be able to come up with a good set of notes and resources of 
your own on how to accomodate the platforms you are interested in.

> learned a lot, experimentally, about what makes an installer for Windows
> robust against novice user actions and expectations. We'd like to exploit
> this to make a robust installer for Linux.

The best way to make things as simple as possible for the user in this case 
may be to arrange to have your vpython setup packaged (either by yourselves 
or somone else interested in supporting vpython on your target platfroms) in 
a way that is native to the packaging and software installation system used 
on that platform. For example, a correctly set up redhat .rpm for redhat 
linux (or a mandrake or suse .rpm for those rpm based distro's) a .deb 
package for debian, a port and binary package for FreeBSD, etc. etc.   That 
way the user will be installing, updating and maintaining vpython on their 
platform in just the same way they install, update and maintain the rest of 
python, and all the rest of the software on their system.  This would surely 
be the simplest solution from the users point of view as they wouldn't have 
to do anything different or non standard for vpython, just treat it the same 
as any other software they install on their system, but then this solution 
might require a little extra work on the vpython end.

> This includes packaging together
> everything the user needs to get started, which definitely includes
> documentation for Python and for VPython. 

Vpython docs sure, but why package and distribute the python documentation 
again when it's already available packaged for all the platforms python is 
packaged for, and in the same way python is on those platforms?

> It is of course true that we can hack EditorWindow.py (or some
> configuration file) for our own installer, but the fewer hacks the better.

Well I wouldn't actually qualify changing and entry in an .ini file as 
'hacking'.  In my discussions with Guido on idle's configuration system one 
of the reasons the 'site default' configuration is available as text based 
.ini style files is just for this purpose: so that a simple change can be 
made to the default setup to adapt to any local requirements or special or 
un-thought-of requirements.  If this wasn't a useful function that we 
expected users (meaning here administrators, or people setting up packages or 
working environments, etc.  in a standard way for others)  to actually make 
use of then it would be simpler and safer to store the default configuration 
within the program. 

> And I do see some virture in looking for local documentation, then
> reverting to the Web address if there is no local docs, 

I think this would be a good thing for idle to do on more than just windows 
too, it would just need to look in a range of the likely local places and 
then drop back to the web if it doesn't seem to be in any of them.   If it's 
somewhere non standard (say if the user just downloaded the doc tarball from 
the python site and unpacked it in a directory of their choice) then the user 
should be able to enter or overrride the location as a configuration option 
as well.  With that final fallback  *every* eventuality should be covered.

> because it will
> encourage people to make installers that include documentation.

If you're talking about the python documentation here, every packaged version 
of python also has packaged docs available.  The user may have to ask their 
install  program to install the docs as well as to install python core, but 
the python docs are always available to be installed just as easily as python 
itself was. But then I can't really think of a case where it would make sense 
for anyone to package or distribute software they expect or want others to 
use, without documentation.

On Sun, 14 Oct 2001 12:15:pm, Bruce Sherwood wrote:
> A different colleague tells me this:
> > Um, /usr/doc may not exist, and only /usr/share/doc may be present.
> > That's the way Debian is, and RH may do the same (I believe this is what
> > the FHS suggests).
>
> I'm getting conflicting signals as to whether /usr/doc or /usr/share/doc
> would be the natural/expected place to put Python-related
> documentation.....

Debian used to use /usr/doc but is moving toward /usr/share/doc as mandated 
by the FHS. If you look in /usr/doc on a recent debian system you will find 
that all the entries there are just symlinks to the actual files that exist 
in /usr/share/doc .   The FHS should result in a little more  similarity in 
the places where things are stored on linux systems over time, but it depends 
on how much the FHS is embraced or implemented by the various distros... it's 
not like there are any 'Linux Police' who are going to be making folks follow 
it.  More importantly though, as I mentionned above, because of the general  
'unixishness' of Linux there are really only a small number of ways for 
things to be sensibly set up anyway.   Don't forget though that platforms 
like the various 'libre' bds's  and other *nixes are not linux systems (and 
certainly don't want to be!)  so the FHS is completely irrelevant there 
anyway, but, the important thing is that those "unixish" similarities are 
still there in the range of possible places particular things can or should 
be on the system.

The last thing that comes to mind on the topic of 'packaging stuff for linux' 
 (*I hear you sighing with relief*)  is please don't overlook debian.  I know 
that a lot of universities and colleges (here in australia at least) set up 
debian linux by deafualt or encourage its use by their students (for a lot of 
reasons including it being the main fully non-commercial linux and therefore 
free in ALL senses [you just need an internet connection], and a darn fine 
distribution besides).  I know that they are even currently debating and 
about to put in place their new policy on python packaging on the python 
developers list there ( debian-python@lists.debian.org  ,  you can subscribe 
at  http://www.debian.org/MailingLists/subscribe  )  so that might be a good 
place to start asking quastions on how to provide a debian friendly vpython! 

Hmm, reading back over this I'm wondering if the discussion is starting to 
stray a little far from idle development...  if anyone feels it is  (and if 
you could be bothered reading this far  *L*) ,  say so and Bruce and I can 
continue the discussion in private email if he wishes.

Stephen.
-- 
Stephen M. Gava  <elguavas@users.sourceforge.net>
IDLEfork ( http://idlefork.sourceforge.net )  " just like IDLE, only crunchy "