Re: best production practice?

2005-02-10 Thread bobby temper
Hello,
Thanks for the answers.
I also agree with Jim, but it might be hard to convince content people that 
they have to go throught a staging first, for simple stuff. I will definitly 
do whatever i can, tho :).

Todd, what you're saying refers actually to what i'm asking: the production 
code is a checked out copy? (with the cvs folders, etc...). We already have 
a tag/branch procedure. The problem is, as now, we have a cvs export copy 
on production (and no cvs client on production either...). I'm wondering if 
it would be better to install a cvs client, and have the code being a cvs 
checkout copy. That way, we could do like you're proposing, with cvs diff. 
I'm actually just wondering if doing it that way has some drawbacks, vs 
doing a cvs export/tar-gzip/scp procedure.

Regards,
Bobby
From: Todd Denniston [EMAIL PROTECTED]
To: Jim.Hyslop [EMAIL PROTECTED]
CC: 'bobby temper' [EMAIL PROTECTED], info-cvs@gnu.org
Subject: Re: best production practice?
Date: Wed, 09 Feb 2005 17:18:36 -0500
Jim.Hyslop wrote:

 bobby temper wrote:
  What i meant is that, we have the code running on a
  production machine. Now
  and then, that code gets changed, and sometimes, it's content
  gets out of
  sync with whats on production (ie. for example. someone edit
  directly on
  production, for a hotfix (i know this is bad, but fast for
  changing a simple
  text, link, etc...) and forget to do the changes in cvs.
 This practise *MUST* stop. Do whatever it takes to make it stop, 
otherwise
 one day you *will* get burned, and badly. Changing a simple text is no
 excuse.

 Problem solved.
I agree with Jim that you must stop the practice, as it *will* get 
burned,
however Jim he still needs a method to DETECT violation of the integrity of
the production set, for as long as he is still working with his bosses to
get the policy fixed.

for detection, the following might do it.
if  you use tags to checkout for a release,
try `cd head/of/project/; cvs diff -rTagShownInThisSet`, if you get
anything, a violation has occurred, attempt to find the violator and use a
LART as necessary.
without tags just using `cvs diff ` might get you started, if you get
anything, a violation has occurred, attempt to find the violator and use a
LART as necessary.
Also without tags, it is time to talk to the boss and get the procedure
changed at least to indicate releases shall be made only from tags.
All Production releases should be if possible made by using your build
system, or a release build system, to do a checkout, tag if the checkout 
was
not of a tag, build  package, in this way you can be sure to be able to
recreate releases.
--
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter
The opinions expressed here are not sanctioned by and do not necessarily
represent those of my employer.
_
FREE pop-up blocking with the new MSN Toolbar – get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: best production practice?

2005-02-10 Thread Jim.Hyslop
bobby temper wrote:
 I also agree with Jim, but it might be hard to convince 
 content people that 
 they have to go throught a staging first, for simple stuff.
In my experience, it's usually the simple stuff that causes the most
headaches ;=)

 I'm wondering if 
 it would be better to install a cvs client, and have the code 
 being a cvs 
 checkout copy. That way, we could do like you're proposing, 
 with cvs diff. 
 I'm actually just wondering if doing it that way has some 
 drawbacks, vs 
 doing a cvs export/tar-gzip/scp procedure.
The drawback would be having to administer another installation of a cvs
client. Not much overhead, I think.

One advantage - you can check in changes directly from any production
hot-fixes.

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


[slightly OT] Re: best production practice?

2005-02-10 Thread Todd Denniston
bobby temper wrote:
 
 Hello,
 
 Thanks for the answers.
 
 I also agree with Jim, but it might be hard to convince content people that
 they have to go throught a staging first, for simple stuff. I will definitly
 do whatever i can, tho :).
 
 Todd, what you're saying refers actually to what i'm asking: the production
 code is a checked out copy? (with the cvs folders, etc...). We already have
 a tag/branch procedure. The problem is, as now, we have a cvs export copy
 on production (and no cvs client on production either...). I'm wondering if
 it would be better to install a cvs client, and have the code being a cvs
 checkout copy. That way, we could do like you're proposing, with cvs diff.
 I'm actually just wondering if doing it that way has some drawbacks, vs
 doing a cvs export/tar-gzip/scp procedure.

OUCH.
OK, I am sometimes considered an SOB by those that work with me when it
comes to releases, but it sounds like it is time for 
1) the production machine to have the number of user names reduced to
root+otherinstalleddefaultusers  projectadmin

or
2) the production area locked down so only root  project admin can make
modifications. 

If I was the person who had to answer what is in the production machine
today?, I would make three documents 
document 1) I, [my name], have permission to [insert lock down method] the
production [machine|area], and anyone who subverts that gets [insert
appropriate punishment]. This will be implementing an industry best practice
[site sources (besides/in addition to Jim  me)][1]
boss_signature_hereDate.

document 2) I, [my name], am not responsible for the content of the
production machine even though it has been suggested to customers we have
someone in that job. boss_signature_hereDate.

document 3) I, [my name], have informed [boss's name] that the production
[machine|area], is out of control, and anyone with [insert level of access]
can modify it at will and the changes will not be recorded in version
control, so we can not track who or when a change was made. I, [my name],
have informed [boss's name] of the following method for correcting the
situation and been denied. [insert method(s) here]
boss_signature_hereDate.

I would then take them to my boss, and indicate s/he should pick one and
sign it. BTW I am camping as physically close to my boss's person as is
possible during working hours until one is signed. :)

1 gets you the ability to fix the problem.
2 indicates it should not be your butt that is the one to kick if there is a
problem with what is on the production machine/area.
3 indicates the boss's butt is the one to kick _if/WHEN_ there is a problem
with what is on the production machine/area.
If the boss refuses to sign any of them... 
1) email the concerns and fixes to the boss, and print a copy.
2) keep a note book recording the documents, the email  when they were
presented.  
3) consider if it is worth going to the boss's boss with the notebook.

Sometimes you just have to drop back to these kind of strong arm tactics to
get what is needed, and keep your own head.
if the boss picks #1 (this is what you hope for), you can implement the
corrective change ... tell the complaining people the boss indicated it
should be done, and (to relieve some of the stress you just applied to
his/her arm) tell the boss to tell them we are implementing industry best
practices...(pause to see if they complain more, if so finish with) you will
work with it. If you do not feel it is best practice, document why, and site
your sources. before they show up in the bosses office.

 
 Regards,
 Bobby
 
SNIP

[1] you could start by searching the mailing list for other people dealing
with release management
http://www.cmcrossroads.com/bradapp/acme/
http://www.cmcrossroads.com/bradapp/acme/#BuildRepro
http://www.cmcrossroads.com/bradapp/acme/repro/SoftwareReconstruction.html
http://lists.gnu.org/pipermail/info-cvs
http://www.google.com/search?hl=enq=release+managmentbtnG=Google+Search
http://www.google.com/search?hl=enlr=q=%22release+managment%22+CVSbtnG=Search
http://www.google.com/search?hl=enlr=q=%22release+management%22btnG=Search
http://www.google.com/search?hl=enlr=q=%22release+management%22+CVSbtnG=Search
http://www.google.com/search?hl=enlr=q=%22release+management%22+%22best+practices%22btnG=Search
http://www.google.com/search?hl=enlr=q=%22release+management%22+%22best+practices%22+cvs+-pvcsbtnG=Search
http://www.w3.org/OOP/9606_Workshop/submissions/31-W3COMG.html
http://www.wipro.com/prodesign/focusareas/complatforms/complatpcasestudy8.htm
you get the picture right?
-- 
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane) 
Harnessing the Power of Technology for the Warfighter


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


[slightly OT] Re: best production practice?

2005-02-10 Thread Matthew Herrmann
Hi,

A pragmatic way to do it is to do put updates on the server using:

cvs co -rRELEASE_20 proj

Then, ... To make a quick fix, get the latest source code on your dev
environment, bump up the version number in your dev environment (even on
your local machine running apache/iis/whatever). Tag it using cvs rtag, then
do an rdiff to examine changes. Go through any change procedure (which for a
single textbox caption should not be too onerous).

Then, update the production server using:

cvs up -rRELEASE_21

It shouldn't be too hard. The key is to make sure there is an easy place to
edit the site in a dev environment. So, for a start -- don't version control
the database config files or you'll have pain where prod and dev are
fighting over which database connection to use. People can then go up and
fiddle with the labels in 5 seconds -- but it doesn't show up to customers
until you hit the big button.

If you make it easy for people they shouldn't complain. You definitely want
a release controlled environment, but at the same time, a system which
involves lots of work just to change a single line of code is problematic
and needs to be automated at some level (the grunt work, not the decisions,
that is).

Another thing -- don't be shy about creating versions: there's no problem
with making several hundred versions which include nothing more than minor
fixes to things here and there. Given that, no prob in making a script which
fetches all tags, gets the highest release number, tags the next increment,
and spits out a diff and patchset onto the desktop. People will love you for
it. :)

My 5 new/250 old francs,

Cheers,

Matthew Herrmann
---
Far Edge Pty Ltd
http://www.faredge.com.au/

Level 6, 35 Chandos Street
St Leonards 2065
Ph: +612 8425 1400 
 

-Original Message-
bobby temper wrote:
 
 Hello,
 
 Thanks for the answers.
 
 I also agree with Jim, but it might be hard to convince content people
that
 they have to go throught a staging first, for simple stuff. I will
definitly
 do whatever i can, tho :).
 
 Todd, what you're saying refers actually to what i'm asking: the
production
 code is a checked out copy? (with the cvs folders, etc...). We already
have
 a tag/branch procedure. The problem is, as now, we have a cvs export
copy
 on production (and no cvs client on production either...). I'm wondering
if
 it would be better to install a cvs client, and have the code being a cvs
 checkout copy. That way, we could do like you're proposing, with cvs
diff.
 I'm actually just wondering if doing it that way has some drawbacks, vs
 doing a cvs export/tar-gzip/scp procedure.

OUCH.
OK, I am sometimes considered an SOB by those that work with me when it
comes to releases, but it sounds like it is time for 
1) the production machine to have the number of user names reduced to
root+otherinstalleddefaultusers  projectadmin

or
2) the production area locked down so only root  project admin can make
modifications. 

If I was the person who had to answer what is in the production machine
today?, I would make three documents 
document 1) I, [my name], have permission to [insert lock down method] the
production [machine|area], and anyone who subverts that gets [insert
appropriate punishment]. This will be implementing an industry best practice
[site sources (besides/in addition to Jim  me)][1]
boss_signature_hereDate.

document 2) I, [my name], am not responsible for the content of the
production machine even though it has been suggested to customers we have
someone in that job. boss_signature_hereDate.

document 3) I, [my name], have informed [boss's name] that the production
[machine|area], is out of control, and anyone with [insert level of access]
can modify it at will and the changes will not be recorded in version
control, so we can not track who or when a change was made. I, [my name],
have informed [boss's name] of the following method for correcting the
situation and been denied. [insert method(s) here]
boss_signature_hereDate.

I would then take them to my boss, and indicate s/he should pick one and
sign it. BTW I am camping as physically close to my boss's person as is
possible during working hours until one is signed. :)

1 gets you the ability to fix the problem.
2 indicates it should not be your butt that is the one to kick if there is a
problem with what is on the production machine/area.
3 indicates the boss's butt is the one to kick _if/WHEN_ there is a problem
with what is on the production machine/area.
If the boss refuses to sign any of them... 
1) email the concerns and fixes to the boss, and print a copy.
2) keep a note book recording the documents, the email  when they were
presented.  
3) consider if it is worth going to the boss's boss with the notebook.

Sometimes you just have to drop back to these kind of strong arm tactics to
get what is needed, and keep your own head.
if the boss picks #1 (this is what you hope for), you can implement 

Re: best production practice?

2005-02-09 Thread Alex v . Below
Hello bobby,
I am not sure what you mean, but I have written a litte script which 
activates on tag commands with certain names, as I do not want every 
checkin from everybody to go into the production environment.

Then it does a cvs export, builds the sources and - if no error - 
emails the source and installs the binaries.

Is that like something you are looking for?
Bye
Alex
Am 09.02.2005 um 04:17 schrieb Rachel Burns:
bobby temper wrote:
Hello CVS users,
The company i work for is having difficulties keeping production and 
the repository in sync'.

Not sure what you mean by production and repository in sync ?  Did you
mean to say you want to have two repositories that need to be kept in 
sync ?
If yes you may want to look at http://www.wandisco.com/cvs for keeping
multiple replicas in sync.

I would like to know, what is the best practice to achieve this? I'm 
thinking of having a cvs client on production, and having the 
production code being a checked out copy, with a cron job doing a cvs 
-n update, and emailing the results. But I am not sure thats the best 
way, as

Looks like you want to determine what changed against a poduction 
tag/branch ? If yes
you might want to create a tag and diff against that.
other problems might occur with this solution. I would like to know 
if any of you have a better solution, or see the pitfalls in such 
solution.

Thanks for your help,
Best regards,
Bobby
_
Express yourself instantly with MSN Messenger! Download today - it's 
FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs

___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs

___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: best production practice?

2005-02-09 Thread bobby temper
Hello,
What i meant is that, we have the code running on a production machine. Now 
and then, that code gets changed, and sometimes, it's content gets out of 
sync with whats on production (ie. for example. someone edit directly on 
production, for a hotfix (i know this is bad, but fast for changing a simple 
text, link, etc...) and forget to do the changes in cvs.

I would like a way to know when the code on production isn't the same as the 
one in the source control (not to update production, but to update the 
repository). So far, the best  way i thought of doing this was to have a cvs 
client on the production servers, and periodically (cron job) do a cvs -n 
update, logging the results.

Now that means all our sites will have CVS folders, large updates will go 
throught cvs update, etc.

I would like to know if that's the best method of doing what i would like.
Best regards,
Bobby
From: Rachel Burns [EMAIL PROTECTED]
To: bobby temper [EMAIL PROTECTED]
CC: info-cvs@gnu.org
Subject: Re: best production practice?
Date: Tue, 08 Feb 2005 19:17:36 -0800
bobby temper wrote:
Hello CVS users,
The company i work for is having difficulties keeping production and the 
repository in sync'.

Not sure what you mean by production and repository in sync ?  Did you
mean to say you want to have two repositories that need to be kept in sync 
?
If yes you may want to look at http://www.wandisco.com/cvs for keeping
multiple replicas in sync.

I would like to know, what is the best practice to achieve this? I'm 
thinking of having a cvs client on production, and having the production 
code being a checked out copy, with a cron job doing a cvs -n update, and 
emailing the results. But I am not sure thats the best way, as

Looks like you want to determine what changed against a poduction 
tag/branch ? If yes
you might want to create a tag and diff against that.

other problems might occur with this solution. I would like to know if any 
of you have a better solution, or see the pitfalls in such solution.

Thanks for your help,
Best regards,
Bobby
_
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs

_
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: best production practice?

2005-02-09 Thread Bill Moseley
On Wed, Feb 09, 2005 at 03:52:29PM +, bobby temper wrote:
 Hello,
 
 What i meant is that, we have the code running on a production machine. Now 
 and then, that code gets changed, and sometimes, it's content gets out of 
 sync with whats on production (ie. for example. someone edit directly on 
 production, for a hotfix (i know this is bad, but fast for changing a 
 simple text, link, etc...) and forget to do the changes in cvs.

I would cvs checkout to a staging server and then make a package to
install on the production server, such as rpm or deb.  That allows you
to give your production releases version numbers.

I've also used tagged cvs check outs to mark releases.  And also just
simply cvs for simple sites.  But being structured with packaged
releases is nice.

 I would like a way to know when the code on production isn't the same as 
 the one in the source control (not to update production, but to update the 
 repository). So far, the best  way i thought of doing this was to have a 
 cvs client on the production servers, and periodically (cron job) do a cvs 
 -n update, logging the results.

That's to check for changes on the production server?

-- 
Bill Moseley
[EMAIL PROTECTED]



___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: best production practice?

2005-02-09 Thread Jim.Hyslop
bobby temper wrote:
 What i meant is that, we have the code running on a 
 production machine. Now 
 and then, that code gets changed, and sometimes, it's content 
 gets out of 
 sync with whats on production (ie. for example. someone edit 
 directly on 
 production, for a hotfix (i know this is bad, but fast for 
 changing a simple 
 text, link, etc...) and forget to do the changes in cvs.
This practise *MUST* stop. Do whatever it takes to make it stop, otherwise
one day you *will* get burned, and badly. Changing a simple text is no
excuse.

Problem solved.

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )


 


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: best production practice?

2005-02-09 Thread Todd Denniston
Jim.Hyslop wrote:
 
 bobby temper wrote:
  What i meant is that, we have the code running on a
  production machine. Now
  and then, that code gets changed, and sometimes, it's content
  gets out of
  sync with whats on production (ie. for example. someone edit
  directly on
  production, for a hotfix (i know this is bad, but fast for
  changing a simple
  text, link, etc...) and forget to do the changes in cvs.
 This practise *MUST* stop. Do whatever it takes to make it stop, otherwise
 one day you *will* get burned, and badly. Changing a simple text is no
 excuse.
 
 Problem solved.
I agree with Jim that you must stop the practice, as it *will* get burned,
however Jim he still needs a method to DETECT violation of the integrity of
the production set, for as long as he is still working with his bosses to
get the policy fixed. 

for detection, the following might do it.
if  you use tags to checkout for a release, 
try `cd head/of/project/; cvs diff -rTagShownInThisSet`, if you get
anything, a violation has occurred, attempt to find the violator and use a
LART as necessary.

without tags just using `cvs diff ` might get you started, if you get
anything, a violation has occurred, attempt to find the violator and use a
LART as necessary.
Also without tags, it is time to talk to the boss and get the procedure
changed at least to indicate releases shall be made only from tags.


All Production releases should be if possible made by using your build
system, or a release build system, to do a checkout, tag if the checkout was
not of a tag, build  package, in this way you can be sure to be able to
recreate releases.
-- 
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane) 
Harnessing the Power of Technology for the WarfighterThe opinions expressed here are not sanctioned by and do not necessarily 
represent those of my employer.
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


best production practice?

2005-02-08 Thread bobby temper
Hello CVS users,
The company i work for is having difficulties keeping production and the 
repository in sync'.

I would like to know, what is the best practice to achieve this? I'm 
thinking of having a cvs client on production, and having the production 
code being a checked out copy, with a cron job doing a cvs -n update, and 
emailing the results. But I am not sure thats the best way, as other 
problems might occur with this solution. I would like to know if any of you 
have a better solution, or see the pitfalls in such solution.

Thanks for your help,
Best regards,
Bobby
_
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs