didactic_cudgel: (Default)
didactic_cudgel ([personal profile] didactic_cudgel) wrote in [site community profile] dw_dev2011-05-17 02:08 pm
Entry tags:

Keeping production current.

I run a production DW-powered site and I want to keep it up to date with the latest code fixes and features.

In asking #dreamwidth-dev about following this procedure: http://wiki.dwscoalition.org/notes/Dev_Maintenance firefoxfey recommended that I find out what the latest post-release final tag is an update only to that tag to avoid getting untested dev features, but didn't know the procedure. I was advised to ask here and so I am :)

If I want to keep my code current, but reduce the chance of pulling down untested code, how do I find and limit code to the post-release final tag?

Also, Fey suggested making sure that I'm aware of any database changes. Are those announced separate from code pushes?
kareila: (Default)

[personal profile] kareila 2011-05-18 02:34 am (UTC)(link)
I think you would have to manually cd into cvs/dw-free, do "hg tags" to see what the most recent tag is (currently 1.0.0) and then "hg update -r [tagname]" to get that revision. Then use cvsreport -sync as normal to sync the files from the cvs directory to the working directory. We should probably update the cvsreport script to make this easier.

As for database changes, we've only had one of those so far and we've announced it in this community using the "dversions" tag.
kareila: (Default)

[personal profile] kareila 2011-05-18 07:32 pm (UTC)(link)
Ah, you have to do the cvsreport -update first, and then you should have 1.0.0. Sorry!
exor674: Computer Science is my girlfriend (Default)

[personal profile] exor674 2011-05-19 08:26 am (UTC)(link)
Well, there are occasional simple database changes that can be done with db-update...
For those, I'd just run cvsreport itself ( not with -sync ) and if update-db-general.pl, then you've got a simple changes.

db-update should be ran every update, anyway.

Any more complicated changes will be as [personal profile] kareila said.

It may be safest to wait a week or two after the code push before updating to the latest tag ( and stay one push behind until then ), so we can catch any lingering issues ( we are already on 1.0.1 due to some issues from the push )

For a production site, to minimize surprises:


  • You are going to want to have *all* of your configuration files copied into cvs/<dir I had you create>/etc, and compare the diffs between versions to see if there are any important changes.

  • You should probably run cvsreport first w/o args before -sync, to make sure you know what is changing.



exor674: Computer Science is my girlfriend (Default)

Re: Full Update/Upgrade/Procedure

[personal profile] exor674 2011-05-19 02:35 pm (UTC)(link)
You really should be fine waiting a week, just monitor the dw-maint post to see if there are any lingering issues and just make sure no new tags show up with the minor ( that is 1.0.x -- the x changing ) different.

6. You should not be overriding any files, really -- because you will miss out on any changes, and they could cause incompatibilities -- besides the config files.

What are you overriding? -- anything that DW has needed to should have a local component or a hook.

6b. See:

http://hg.dwscoalition.org/dw-nonfree/file/6883b468b6b7/schemes/_dreamwidth.tt
http://hg.dwscoalition.org/dw-nonfree/file/6883b468b6b7/schemes/gradation-vertical-local.tt
http://hg.dwscoalition.org/dw-nonfree/file/6883b468b6b7/cgi-bin/DW/Hooks/SiteScheme.pm

And then use grad-vertical-local in all your config places.

But any file you create yourself should be in your cvs/<blah> directory.

7. You should also do that to the closest tag before [tagname] ( or past, if there's a different minor ) in:

dw-free
bml
js
perlbal
s2

8. No, compare the config files with 'hg diff -r <last tag> etc/config.pl' ( and the same with the two templates in doc ) and merge in any relevant looking changes ( new options, etc... )

11. Yep, and you can 'cvsreport.pl --diff filename' if you want to see what changed.
exor674: Computer Science is my girlfriend (Default)

[personal profile] exor674 2011-05-19 04:10 pm (UTC)(link)
There's no explicit handling of -local, you could name your scheme didactic-cudgels-awesome-grad-horizontal-variant-of-science or whatever -- which is why you have to name the local one when you want to use it ( see http://www.dreamwidth.org/?usescheme=celerity v.s. http://www.dreamwidth.org/?usescheme=celerity-local )

Certain things look for a local file, those being, the database updater for the s2 layer list and update-db-general, as well as a few other things.


7. Yeah, Tankfully most others are very rarely updated, but you don't want to suck something in accidentally.