blob: 409905b10c6e7502409b65a325cbb6a2433e34b0 [file] [log] [blame]
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -07001Daily Use Guide for using Savannah for lwIP
2
3Table of Contents:
4
51 - Obtaining lwIP from the CVS repository
62 - Committers/developers CVS access using SSH (to be written)
73 - Merging from DEVEL branch to main trunk (stable branch)
84 - How to release lwIP
9
10
11
121 Obtaining lwIP from the CVS repository
13----------------------------------------
14
15To perform an anonymous CVS checkout of the main trunk (this is where
16bug fixes and incremental enhancements occur), do this:
17
18cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip
19
20Or, obtain a stable branch (updated with bug fixes only) as follows:
21cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
22 -r STABLE-0_7 -d lwip-0.7 lwip
23
24Or, obtain a specific (fixed) release as follows:
25cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
26 -r STABLE-0_7_0 -d lwip-0.7.0 lwip
27
283 Committers/developers CVS access using SSH
29--------------------------------------------
30
31The Savannah server uses SSH (Secure Shell) protocol 2 authentication and encryption.
32As such, CVS commits to the server occur through a SSH tunnel for project members.
33To create a SSH2 key pair in UNIX-like environments, do this:
34
35ssh-keygen -t dsa
36
37Under Windows, a recommended SSH client is "PuTTY", freely available with good
38documentation and a graphic user interface. Use its key generator.
39
40Now paste the id_dsa.pub contents into your Savannah account public key list. Wait
41a while so that Savannah can update its configuration (This can take minutes).
42
43Try to login using SSH:
44
45ssh -v your_login@cvs.sv.gnu.org
46
47If it tells you:
48
49Authenticating with public key "your_key_name"...
50Server refused to allocate pty
51
52then you could login; Savannah refuses to give you a shell - which is OK, as we
53are allowed to use SSH for CVS only. Now, you should be able to do this:
54
55export CVS_RSH=ssh
56cvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip
57
58after which you can edit your local files with bug fixes or new features and
59commit them. Make sure you know what you are doing when using CVS to make
60changes on the repository. If in doubt, ask on the lwip-members mailing list.
61
62(If SSH asks about authenticity of the host, you can check the key
63 fingerprint against http://savannah.nongnu.org/cvs/?group=lwip)
64
65
663 Merging from DEVEL branch to main trunk (stable)
67--------------------------------------------------
68
69Merging is a delicate process in CVS and requires the
70following disciplined steps in order to prevent conflicts
71in the future. Conflicts can be hard to solve!
72
73Merging from branch A to branch B requires that the A branch
74has a tag indicating the previous merger. This tag is called
75'merged_from_A_to_B'. After merging, the tag is moved in the
76A branch to remember this merger for future merge actions.
77
78IMPORTANT: AFTER COMMITTING A SUCCESFUL MERGE IN THE
79REPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE
80MERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME).
81
82Merge all changes in DEVEL since our last merge to main:
83
84In the working copy of the main trunk:
85cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL
86
87(This will apply the changes between 'merged_from_DEVEL_to_main'
88and 'DEVEL' to your work set of files)
89
90We can now commit the merge result.
91cvs commit -R -m "Merged from DEVEL to main."
92
93If this worked out OK, we now move the tag in the DEVEL branch
94to this merge point, so we can use this point for future merges:
95
96cvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip
97
984 How to release lwIP
99---------------------
100
101First, checkout a clean copy of the branch to be released. Tag this set with
102tag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example).
103
104Login CVS using pserver authentication, then export a clean copy of the
105tagged tree. Export is similar to a checkout, except that the CVS metadata
106is not created locally.
107
108export CVS_RSH=ssh
109cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
110 -r STABLE-0_6_3 -d lwip-0.6.3 lwip
111
112Archive this directory using tar, gzip'd, bzip2'd and zip'd.
113
114tar czvf lwip-0.6.3.tar.gz lwip-0.6.3
115tar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3
116zip -r lwip-0.6.3.zip lwip-0.6.3
117
118Now, sign the archives with a detached GPG binary signature as follows:
119
120gpg -b lwip-0.6.3.tar.gz
121gpg -b lwip-0.6.3.tar.bz2
122gpg -b lwip-0.6.3.zip
123
124Upload these files using anonymous FTP:
125ncftp ftp://savannah.gnu.org/incoming/savannah/lwip
126
127ncftp>mput *0.6.3.*
128
129Additionally, you may post a news item on Savannah, like this:
130
131A new 0.6.3 release is now available here:
132http://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3
133
134You will have to submit this via the user News interface, then approve
135this via the Administrator News interface.