Python, licenses and CVS

Kragen Sitaker kragen at canonical.org
Sun Nov 25 22:07:57 EST 2001


Hans Nowak <wurmy at earthlink.net> writes:
> - should I use a license / copyright notice?

If you want people to use the code, yes; if they don't have a written
license, the code is still copyrighted by you (assuming you live in a
Berne Convention country) and they can still infringe your copyright.
They might have an 'implied license', consisting basically of what
you've encouraged them to do, but I feel a lot more comfortable with
an explicit license.

> - if so, which one would you recommend? 

A popular one, because if you don't use a popular one, people who take
this stuff seriously and hate legalese won't even consider using your
software, because they'd have to read another license.

> I know of the GPL, Python license, BSD license etc, and opensource.org
> has a long list of them, but I absolutely hate legalese, and reading
> all of this and pondering the possible consequences of picking one
> over the other makes me cringe. Does someone have a pointer to a
> page with some concise explanations of these licenses?

The Free Software foundation has a page at
http://www.fsf.org/licenses/license-list.html that is more or less
what you want.  My summary is as follows:

- GPL: you can use this software freely but can't incorporate it into
  proprietary software without negotiating with the author for special
  permission

- BSD: you can do whatever you want with this software.  (There's an
  older version of the BSD license which includes a clause that
  requires credit be given; this is generally considered annoying.)

> Then there's a second point: I see that many projects use version
> control (usually CVS). I tried using DJGPP's cvs, but it 
> (unsurprisingly) doesn't work well on WinXP. There's such a thing
> as WinCVS, but the whole process strikes me as clumsy... checking
> in and out and committing every time something changes... what is
> the point of this? What happens if you forget a step? Does it have
> substantial benefits over versioning your files by hand, aside from
> having a repository through which you can undo changes?

Cygwin cvs works well on pre-XP versions of NT.  I haven't tried XP.

CVS doesn't require you to check out repeatedly, and you only check in
when there are changes.

Version control is a huge benefit when you're trying to work on
something with other people; it keeps you from accidentally destroying
their work.  It's not as big a win with individual projects, but it
still has some advantages:
- I can type 'cvs annotate' to see when each line of code in my work
  area was added --- what date, what time.  (And by whom.)
- I can type 'cvs diff -D 2001-10-25' and see the changes since
  October 25th.
- I can type 'cvs diff' and see what changes I haven't committed,
  which often keeps me from committing typos in comments (where I typed
  some character in the wrong window)
- saving my current work state is quicker than with a copy-tree, and
  it takes less disk space, which makes it easier to back up my entire
  work history.

That said, I still mostly use it when I'm working with somene else, or
when I have multiple copies of files on different machines that I
might edit independently.  (I keep my PIM stuff --- calendar,
addresses --- this way.)




More information about the Python-list mailing list