root/swish-e/branches/rel-2-4-0-patches/swish-e/README.cvs

Revision 1438, 4.6 kB (checked in by whmoseley, 5 years ago)

Tags can't have dots.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 Using CVS
2 ---------
3
4 Swish-e is available via cvs from SourceForge.  See http://swish-e.org for
5 links to SourceForge and instructions downloading via cvs.
6
7 Much of the documentation is not stored in cvs, but rather built from source
8 files (mostly .pod files in the pod directory).
9
10 Documentation is built with Perl code that's part of the swish-e
11 distribution.  Still, your system may not have the required tools for this
12 operation.  If that is the case you can disable much of the documentation
13 building by building with:
14
15   ./configure --disable-docs
16   make
17   make check
18   make install
19
20 Developer Notes:
21
22 Release and Tag
23 ---------------
24
25 1) Run cvs update to make sure have current sources and cvs -nq update to
26    make sure there's nothing left to check in
27
28 2) Edit the pod/CHANGES.pod file to update the date of the release
29
30 3) Edit the version in configure.in
31
32 4) run ./bootstrap to create new makefile.in with new version string
33
34 5) run make distcheck to make sure it all builds correctly.  This will also
35    update the HTML documentation (since CHANGES.pod is newer).  This is
36    IMPORTANT because if the HTML docs are out of date then make on users
37    systems will attempt to build the documentation and they may not have the
38    right tools installed.
39
40 6) good idea to upload the tarball created by make distcheck someplace and
41    then test on a few platforms
42
43 7)  Check in the updated version Makefiles: 
44
45   $ cvs ci
46
47 8) Tag the release.  For example:
48
49    $ cvs tag rel-2-4-0
50
51 9) Upload to swish-e site -- see README on swish-e site for details.
52
53 Now move on to development.  Change version in configure.in (2.5.0 for example),
54 run ./bootstrap and check in.
55
56
57 Patching a previous version
58 ---------------------------
59
60 Say development has started on the next release but a bug is found in the last.
61 Development has gone on too far to use the development version.
62
63 -- Creating a Branch in CVS -
64
65 The first thing that is needed is to create a branch of the cvs tree.  This
66 only needs to be done *once*, and there's more than one way to do it: you can
67 either branch based on a checked out version (e.g. first check out the tagged
68 version), or the branch can be done on the repository.
69
70 So, to just branch the repository:
71
72   $ cvs -d :ext:<developer>@cvs.sourceforge.net:/cvsroot/swishe rtag -b -r rel-2-4-0 rel-2-4-0-patches swish-e
73
74 which says to create a branch called rel-2-4-0.patches branched off of the
75 tagged source rel-2-4-0.
76
77 [See NOTE below about before following this example]
78
79 -- Checkout branch --
80
81 Again, two ways to go here.  You can convert your existing local source tree
82 to the branch or simply do a new checkout.  I prefer to do a new checkout.
83
84   $ cvs -d :ext:<moseley>@cvs.sourceforge.net:/cvsroot/swishe -z3 checkout -r rel-2-4-0-patches -d swish-e-2.4.0.patches swish-e
85
86 This specifies the Root again with -d, -z3 is compression, we checkout
87 rel-2-4-0-patches from the swish-e module, but instead of writing to
88 the "swish-e" directory use -d to create a directory called
89 swish-e-2.4.0.patches swish-e.
90
91 -- Make chages --
92
93 Make changes as normal.  Check in as normal:
94
95   $ cvs ci
96
97 and that will ONLY update this current branch.
98
99
100 -- Merging changes back to main branch --
101
102 Changes and fixes that are done on the branch will proably need to be moved
103 to the main branch.
104
105 To merge in changs from another branch into your working copy (the main HEAD
106 branch - 2.5.x in this example)
107
108   (in your 2.5.x working copy)
109   $ cvs -j rel-2-4-0-patches
110
111 That should update your sources.  Watch out for conflicts!
112
113 Note that this is a bit tricky, because this will likely change the version
114 number in configure.in.
115
116 Verify version in configure.in (might have been changed) then don't forget to
117 check the new patches into the HEAD branch.
118
119   $ cvs ci -m "Merged patches from 2-4-0-patches"
120
121 Now, once merged go to your patches directory (swish-e-2.4.0.patches in this
122 example) and *tag* it.  That will allow merging later updates into the HEAD
123 branch without re-merging what was just merged.
124
125   (in the .patches directory)
126   $ cvs tag rel-2-4-1
127
128 that just tags the rel-2-4-0-patches branch.
129
130 Then when 2.4.2 is later created, just the changes from 2.4.1 to 2.4.2 can be
131 merged:
132
133   (in the main branch)
134   $ cvs update -j rel-2-4-1 -j rel-2-4-0-patches
135
136 which says merge from the tag rel-2-4-1 to the end of the branch
137 rel-2-4-0-patches into the current directory.
138
139 At least I think that's how it works.
140
141
142 NOTE: The example for naming the branch may not be best.  In this example we
143 are fixing a bug in 2.4.0 so will likely release a 2.4.1.  Development is now
144 in 2.5.x.  So it may be better to create the branch as rel-2-4-patches (instead
145 of rel-2-4-0-patches) and then all 2.4.x updates will get added there.
146
Note: See TracBrowser for help on using the browser.