Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > use make and version control system for every project?

Reply
Thread Tools

use make and version control system for every project?

 
 
AK
Guest
Posts: n/a
 
      10-06-2003
Hi, I recently read an advice here that one should try to use make and
version control system even if you're the only one working on the
program. Is that a good advice? How many of you do that?

Thanks,

-AK
 
Reply With Quote
 
 
 
 
Carl Banks
Guest
Posts: n/a
 
      10-06-2003
AK wrote:
> Hi, I recently read an advice here that one should try to use make and
> version control system even if you're the only one working on the
> program. Is that a good advice? How many of you do that?



Personally, I use make on every single one of my projects. I even use
make to run setup.py in my pure Python packages. (Cause it's just
easier to 'type make install' than 'python setup.py install--home=~'.)
It's not necessary, but it can save a lot of work and keep everything
up-to-date.

Version control, it depends. I've used CVS for some personal projects
before, and can't say I've ever found it useful, and it's definitely a
pain to keep things up-to-date. I recommend, for personal projects,
not bothering with version control at least until the project is
fairly stable.

But if you don't use version control, be sure to make frequent backups
(and store the backups on another medium; hard disks crash; it
happened to me).


my-2-cents-ly yr's,

--
CARL BANKS http://www.aerojockey.com/software

As the newest Lady Turnpot descended into the kitchen wrapped only in
her celery-green dressing gown, her creamy bosom rising and falling
like a temperamental souffle, her tart mouth pursed in distaste, the
sous-chef whispered to the scullery boy, "I don't know what to make of
her."
--Laurel Fortuner, Montendre, France
1992 Bulwer-Lytton Fiction Contest Winner
 
Reply With Quote
 
 
 
 
Erik Max Francis
Guest
Posts: n/a
 
      10-06-2003
AK wrote:

> Hi, I recently read an advice here that one should try to use make and
> version control system even if you're the only one working on the
> program. Is that a good advice? How many of you do that?


Yes, and yes. All my Web sites and programs are built with make, even
my resume (of which a few variations are built from templates and then
each is automatically converted to a bunch of formats).

Using source control, even for your solitary projects, is always
advisable: you get a little touch of automatic backups (particularly if
your source control server is on a different machine), as well as the
ability to work on different branches simultaneously and have
authoritative information on precisely what you did to your software and
when.

--
Erik Max Francis && http://www.velocityreviews.com/forums/(E-Mail Removed) && http://www.alcyone.com/max/
__ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
/ \ Every path has its puddle.
\__/ (an English proverb)
 
Reply With Quote
 
Peter Hansen
Guest
Posts: n/a
 
      10-06-2003
AK wrote:
>
> Hi, I recently read an advice here that one should try to use make and
> version control system even if you're the only one working on the
> program. Is that a good advice? How many of you do that?


I don't use make with Python, but I use it with anything
compiled, as with embedded development.

I *always* use CVS at this point, and I deeply regret the years that
I spent not using it and the many varied ways in which I made negative
progress because of that (lost files, incompatibilities that could not
be resolved between various versions of things, inability to identify
exactly when and why a given thing was done, etc).

I _strongly_ recommend learning to use CVS, or *any equally simple
version control system*, even for personal projects, so that it becomes
second nature early on and you never find yourself without it.

-Peter
 
Reply With Quote
 
Roy Smith
Guest
Posts: n/a
 
      10-06-2003
Carl Banks <(E-Mail Removed)> wrote:
> Version control, it depends. I've used CVS for some personal projects
> before, and can't say I've ever found it useful, and it's definitely a
> pain to keep things up-to-date. I recommend, for personal projects,
> not bothering with version control at least until the project is
> fairly stable.


I suppose this is a personal preference kind of thing, but I use
revision control (CVS or RCS mostly, Clearcase when they hold a gun to
my head) for everything, from the very beginning. Source code,
documents, test notes, project plans, it all goes under revision
control. I check stuff in often and early.

I do that even if it's just something I'm working on for myself. It
might be a little silly, but that's what I've found works well for me.
For any project with more than one person working on it, however, you
would be insane not to use some sort of revision control system.

I find it gives me a lot of value. There's the built-in backups
(although, the CVS repository itself needs to be backed up). There's
the running commentary of the checkin messages (I'm pretty anal about
trying to keep a good checkin log). There's the ability to branch a
file to explore some experimental changes. If you don't like CVS, there
are plenty of other revision control systems to look at, ranging from
free to mega-bucks.

I don't see a whole lot of value for make in a python project. I use it
myself mostly to drive unit test suites, but that's more force of habit
than anything else. I should probably replace those Makefiles with
python scripts If you don't like make (and there's plenty not to
like), there are other, newer, systems around like Ant and Jam that are
worth looking at.

Of course, none of this really has much to do with Python. These are
all generic software engineering issues.
 
Reply With Quote
 
Ben Finney
Guest
Posts: n/a
 
      10-06-2003
On Mon, 06 Oct 2003 01:40:38 GMT, AK wrote:
> Hi, I recently read an advice here that one should try to use make and
> version control system even if you're the only one working on the
> program. Is that a good advice? How many of you do that?


Definitely, to both questions.

The 'make' tool allows automation of project building and other tasks,
which is immensely useful whether you work alone or not.

Revision control alows you to checkpoint particular revisions of the
project (or parts thereof) in a way much more transparent than copying
files around manually.

And you never know which lone-gun projects will require additional help,
so placing all of them under revision control and automated build will
allow you to bring people in much more easily.

--
\ "Better not take a dog on the space shuttle, because if he |
`\ sticks his head out when you're coming home his face might burn |
_o__) up." -- Jack Handey |
Ben Finney <http://bignose.squidly.org/>
 
Reply With Quote
 
Carl Banks
Guest
Posts: n/a
 
      10-06-2003
Roy Smith wrote:
> Carl Banks <(E-Mail Removed)> wrote:
>> Version control, it depends. I've used CVS for some personal projects
>> before, and can't say I've ever found it useful, and it's definitely a
>> pain to keep things up-to-date. I recommend, for personal projects,
>> not bothering with version control at least until the project is
>> fairly stable.

>
> I suppose this is a personal preference kind of thing, but I use
> revision control (CVS or RCS mostly, Clearcase when they hold a gun to
> my head) for everything, from the very beginning. Source code,
> documents, test notes, project plans, it all goes under revision
> control.


Best yet, the OP should probably try it and see if it works for him.

I recommended not bothering early on because I tend to move files
around quite a bit early on (a major pain in CVS), and I suspect I'm
not the only person to do that. But if he's the type of person whose
projects are "fairly stable" in the very beginning, by all means, he
should CVS away.

[snip]
> There's the running commentary of the checkin messages (I'm pretty
> anal about trying to keep a good checkin log).


Incidentally, this is probably greatest strength of version control
relative to frequent backups (for personal projects, of course). It's
also a feature I've found extremely little use for. I mean, it sounds
cool to be able to go back and see exactly when you made a certain
change, but is that really useful in practice?

I'm sorry, but my pragmatic mind tells me it's all wasted effort, a
lot of work for little benefit. Frequent backups do well enough for
me, with far less effort, so it's what I've been moving towards.

But whatever works for you. And, of course, the OP should try it and
decide if it works for him.


--
CARL BANKS http://www.aerojockey.com/software

As the newest Lady Turnpot descended into the kitchen wrapped only in
her celery-green dressing gown, her creamy bosom rising and falling
like a temperamental souffle, her tart mouth pursed in distaste, the
sous-chef whispered to the scullery boy, "I don't know what to make of
her."
--Laurel Fortuner, Montendre, France
1992 Bulwer-Lytton Fiction Contest Winner
 
Reply With Quote
 
Ben Finney
Guest
Posts: n/a
 
      10-06-2003
On Mon, 06 Oct 2003 03:08:57 GMT, Carl Banks wrote:
> I recommended not bothering early on because I tend to move files
> around quite a bit early on (a major pain in CVS), and I suspect I'm
> not the only person to do that.


That's a flaw of CVS, not of revision control. Other revision control
systems (Arch, Subversion, even RCS) don't suffer from this flaw; use
any of those to have *no* excuse not to use revision control from the
project's inception.

> Incidentally, this is probably greatest strength of version control
> relative to frequent backups (for personal projects, of course). It's
> also a feature I've found extremely little use for. I mean, it sounds
> cool to be able to go back and see exactly when you made a certain
> change, but is that really useful in practice?


It's more than cool.

A change history is vital on a fast-changing project; you can see when a
particular feature went in, when a bug was fixed, when a structural
change was made, etc.

A change history is vital in multi-developer projects (though that's not
what the OP asked about) to supplement fallible human memory.

A change history is required by many free software licenses (the GPL
being one) when you change another's work.

Sound useful enough?

--
\ "Last year I went fishing with Salvador Dali. He was using a |
`\ dotted line. He caught every other fish." -- Steven Wright |
_o__) |
Ben Finney <http://bignose.squidly.org/>
 
Reply With Quote
 
Carl Banks
Guest
Posts: n/a
 
      10-06-2003
Ben Finney wrote:
> On Mon, 06 Oct 2003 03:08:57 GMT, Carl Banks wrote:
>> I recommended not bothering early on because I tend to move files
>> around quite a bit early on (a major pain in CVS), and I suspect I'm
>> not the only person to do that.

>
> That's a flaw of CVS, not of revision control. Other revision control
> systems (Arch, Subversion, even RCS) don't suffer from this flaw; use
> any of those to have *no* excuse not to use revision control from the
> project's inception.


Well, I've never used Arch or Subversion, so I can't evaluate them.
I'd expect too much moving files around to be a headache in general
(even if the system used is a lot better than CVS), but maybe those
other systems make it effortless. (shrug).


>> Incidentally, this is probably greatest strength of version control
>> relative to frequent backups (for personal projects, of course). It's
>> also a feature I've found extremely little use for. I mean, it sounds
>> cool to be able to go back and see exactly when you made a certain
>> change, but is that really useful in practice?

>
> It's more than cool.
>
> A change history is vital on a fast-changing project; you can see when a
> particular feature went in, when a bug was fixed, when a structural
> change was made, etc.


Why is that important? How often do you really need to know when a
bug was fixed, for example? (I'm serious. I've never needed to know
these things. Do other people really use these features for personal
projects? And if they do, is it really that often?)


> A change history is vital in multi-developer projects (though that's not
> what the OP asked about) to supplement fallible human memory.


It's not what I was talking about, either. Of course, version control
is needed if there's more than a few people working on something.


> A change history is required by many free software licenses (the GPL
> being one) when you change another's work.


Well, that's certainly a good enough reason to use it, when such a
situation occurs.


> Sound useful enough?


I don't know. Reasons B and C don't apply to most personal projects,
and I'm not convinced of the usefulness of Reason A.


--
CARL BANKS http://www.aerojockey.com/software

As the newest Lady Turnpot descended into the kitchen wrapped only in
her celery-green dressing gown, her creamy bosom rising and falling
like a temperamental souffle, her tart mouth pursed in distaste, the
sous-chef whispered to the scullery boy, "I don't know what to make of
her."
--Laurel Fortuner, Montendre, France
1992 Bulwer-Lytton Fiction Contest Winner
 
Reply With Quote
 
David Mertz
Guest
Posts: n/a
 
      10-06-2003
|Ben Finney wrote:
|> A change history is vital on a fast-changing project; you can see when a
|> particular feature went in, when a bug was fixed, when a structural
|> change was made, etc.

Carl Banks <(E-Mail Removed)> wrote previously:
|Why is that important? How often do you really need to know when a
|bug was fixed, for example? (I'm serious. I've never needed to know
|these things. Do other people really use these features for personal
|projects? And if they do, is it really that often?)

I've been maintaining my package Gnosis Utilities for a couple years
now. It's a real public project--used by a fair number of people, and
with contributions from a couple dozen. Not a -huge- project, but more
than trivial. A bit less than a meg of pure Python and textual
documentation (I forget now what good LOC counters are, I know I tried a
couple in the past).

I've never gotten around to using any sort of version control system.
Well, unless you count keeping archives of all the old releases on my
web site. Of course, I've also never really given anyone else "check in
priviledges" either (there are some contributors I trust quite a lot--
but even there, I still eyeball their code, and make sure I understand
what it does, why it does it, and that I like the comments and variable
names).

In those couple years, I think I have wondered about exactly when a
particular fix went in exactly ONCE. Finding the answer was more
work than it should have been, I suppose. I had to glance through a
couple old versions. Actually, even then it was more about trying to
remember some old API details for backward compatibility, not really a
date question.

YMMV, of course. And I certainly think something larger and/or more
corporate should use version control. But I'm with Carl in not really
getting it for small semi-personal projects.

Yours, David...

--
mertz@ _/_/_/_/ THIS MESSAGE WAS BROUGHT TO YOU BY: \_\_\_\_ n o
gnosis _/_/ Postmodern Enterprises \_\_
..cx _/_/ \_\_ d o
_/_/_/ IN A WORLD W/O WALLS, THERE WOULD BE NO GATES \_\_\_ z e


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Where to get stand alone Dot Net Framework version 1.1, version2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? MowGreen [MVP] ASP .Net 5 02-09-2008 01:55 AM
Re: Where to get stand alone Dot Net Framework version 1.1, version 2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? PA Bear [MS MVP] ASP .Net 0 02-05-2008 03:28 AM
Re: Where to get stand alone Dot Net Framework version 1.1, version 2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? V Green ASP .Net 0 02-05-2008 02:45 AM
System.Security.SecurityException: Error de solicitud de permiso de tipo System.Net.WebPermission, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. Luis Esteban Valencia ASP .Net 0 07-14-2005 01:43 PM
RE: use make and version control system for every project? Pettersen, Bjorn S Python 3 10-06-2003 07:52 PM



Advertisments