Merged revisions 1582-1665 via svnmerge from
[scons.git] / HOWTO / release.txt
1 __COPYRIGHT__
2
3 This document covers how to prepare major releases of SCons--that is,
4 releases numbered with X.Y format, such as 0.93, 1.0, etc.
5
6 If you need to prepare a specific subrelease (X.Y.Z, such as 0.94.1),
7 then see the document HOWTO/subrelease.txt.
8
9 Things to do to release a new X.Y version of SCons:
10
11         Prepare the describe-the-release section for the announcements
12
13                 summarize changes from src/CHANGES.txt
14
15                 template is below, search for "describe-the-release"
16
17                 send this out for review while you get the rest of the
18                 release ready!
19
20         Build and test candidate packages
21
22                 test on Linux
23
24                 test on Windows NT
25
26                         1) tar zxf scons-src-{version}.tar.gz
27                            cd scons-src-{version}
28                            python runtest.py -a
29
30                         2) tar zxf scons-{version}.tar.gz
31                            cd scons-{version}
32                            python setup.py install
33                            cd scons-src-{version}
34                            python runtest.py -a -X -x C:\Python20\scons.bat
35
36                         3) scons-{verson}.win32.exe
37                            cd scons-src-{version}
38                            python runtest.py -a -X -x C:\Python20\scons.bat
39
40                         4) mkdir temporary_directory
41                            cd temporary_directory
42                            tar zxf scons-local-{version}.tar.gz
43                            cd scons-src-{version}
44                            python runtest.py -a -x C:\temporary_directory\scons.py
45
46                 Checkin any changes necessary to make everything work
47
48         END THE CURRENT DEVELOPMENT BRANCH
49
50                 ae_p scons.0
51
52                 aede {96}
53
54                 aerpass {96}
55
56                 aeib {96}
57
58                 aed
59
60                 aeb
61
62                 aet
63
64                 aet -reg
65
66                 aeipass
67
68         START THE NEW BRANCH FOR RELEASE
69
70                 aenbr -p scons.0 {97}
71
72                 aenc -p scons.0.{97}
73
74                         Call it something like,
75                         "Initialize the new branch for release."
76                         Cause = internal_enhancement.
77                         Exempt it from all tests (*_exempt = true).
78
79                 ae_p scons.0.{97}
80
81                 aedb 100
82
83                 aecd
84
85                 # Change the hard-coded package version numbers
86                 # in the following files.
87                 aecp README
88                 vi README
89
90                 aecp SConstruct
91                 vi SConstruct
92
93                 aecp rpm/scons.spec.in
94                 vi rpm/scons.spec.in
95
96                 aecp QMTest/TestSCons.py
97                 vi QMTest/TestSCons.py
98
99                 # Read through and update the README files if necessary
100                 [optional] aecp README
101                 [optional] vi README
102
103                 [optional] aecp src/README.txt
104                 [optional] vi src/README.txt
105
106                 # Prepare src/CHANGES.txt
107                 aecp src/CHANGES.txt
108                 vi src/CHANGES.txt
109
110                         date -R the latest release
111
112                         should be current if this has been updated
113                         as each change went in.
114
115                 # Prepare src/RELEASE.txt
116                 aecp src/RELEASE.txt
117                 vi src/RELEASE.txt
118
119                         date -R the latest release
120
121                         Read through and edit appropriately.
122
123                         Can probably keep most of the existing text
124
125                         Add any new known problems
126
127                 # Prepare debian/changelog
128                 aecp debian/changelog
129                 vi debian/changelog
130
131                         date -R the latest release
132
133                 # Now build and prepare the release itself.
134                 aeb
135
136                 aed
137
138                 aet -reg
139
140                 aede
141
142                 etc.
143
144
145
146         Read through the FAQ for any updates
147
148
149
150         Upload the packages to the SourceForge incoming FTP:
151
152                 ftp upload.sourceforge.net
153                 anonymous
154                 <your email>
155                 cd incoming
156                 bin
157                 put scons-0.{97}-1.noarch.rpm
158                 put scons-0.{97}-1.src.rpm
159                 put scons-0.{97}.tar.gz
160                 put scons-0.{97}.win32.exe
161                 put scons-0.{97}.zip
162                 put scons-local-0.{97}.tar.gz
163                 put scons-local-0.{97}.zip
164                 put scons-src-0.{97}.tar.gz
165                 put scons-src-0.{97}.zip
166                 put scons_0.{97}-1_all.deb
167
168         Create the new release at the SourceForge project page:
169
170                 Go to the File Release page
171
172                 Package Name:  scons
173
174                 => Add Release
175
176                 New release name:  0.{97}
177
178                 Cut-and-paste or upload the RELEASE.txt file.
179
180                 Cut-and-paste or upload the CHANGES.txt file.
181
182                 (If you cut-and-paste, check the "Preserve my
183                 pre-formatted text." box!)
184
185                 Click "Submit/Refresh"  (IMPORTANT!)
186
187                 Check the SCons files you uploaded
188
189                 Click "Add Files and/or Refresh View"
190
191                 Edit the file info:
192
193                         scons-0.{97}-1.noarch.rpm       Any     .rpm
194                         scons-0.{97}-1.src.rpm          Any     Source .rpm
195                         scons-0.{97}.tar.gz             Any     .gz
196                         scons-0.{97}.win32.exe          i386    .exe (32-bit Windows)
197                         scons-0.{97}.zip                Any     .zip
198                         scons_0.{97}-1_all.deb          Any     .deb
199
200                 Click "Update/Refresh" for each file; this must be done
201                 one at a time.
202
203                 Check "I'm sure." and click "Send Notice" in the Email
204                 Release Notice section.
205
206
207                 Go to the File Release page
208
209                 Package Name:  scons-local
210
211                 => Add Release
212
213                 New release name:  0.{97}
214
215                 Cut-and-paste or upload the RELEASE.txt file.
216
217                 Cut-and-paste or upload the CHANGES.txt file.
218
219                 (If you cut-and-paste, check the "Preserve my
220                 pre-formatted text." box!)
221
222                 Click "Submit/Refresh"  (IMPORTANT!)
223
224                 Check the SCons files you uploaded
225
226                 Click "Add Files and/or Refresh View"
227
228                 Edit the file info:
229
230                         scons-local-0.{97}.tar.gz       Any     .gz
231                         scons-local-0.{97}.zip          Any     .zip
232
233                 Click "Update/Refresh" for each file; this must be done
234                 one at a time.
235
236                 Check "I'm sure." and click "Send Notice" in the Email
237                 Release Notice section.
238
239
240                 Go to the File Release page
241
242                 Package Name:  scons-src
243
244                 => Add Release
245
246                 New release name:  0.{97}
247
248                 Cut-and-paste or upload the RELEASE.txt file.
249
250                 Cut-and-paste or upload the CHANGES.txt file.
251
252                 (If you cut-and-paste, check the "Preserve my
253                 pre-formatted text." box!)
254
255                 Click "Submit/Refresh"  (IMPORTANT!)
256
257                 Check the SCons files you uploaded
258
259                 Click "Add Files and/or Refresh View"
260
261                 Edit the file info:
262
263                         scons-src-0.{97}.tar.gz         Any     .gz
264                         scons-src-0.{97}.zip            Any     .zip
265
266                 Click "Update/Refresh" for each file; this must be done
267                 one at a time.
268
269                 Check "I'm sure." and click "Send Notice" in the Email
270                 Release Notice section.
271
272
273         Hide release 0.{95} at the SourceForge download page:
274
275                 Go to the Admin page
276
277                 => Edit/Add File Releases
278
279                 Package Name:  scons
280
281                 => Edit Releases
282
283                 Release Name: 0.{95}
284
285                 => Edit This Release
286
287                 Status: => Hidden
288
289                 Click Submit/Refresh
290
291
292                 Go to the Admin page
293
294                 => Edit/Add File Releases
295
296                 Package Name:  scons-local
297
298                 => Edit Releases
299
300                 Release Name: 0.{95}
301
302                 => Edit This Release
303
304                 Status: => Hidden
305
306                 Click Submit/Refresh
307
308
309                 Go to the Admin page
310
311                 => Edit/Add File Releases
312
313                 Package Name:  scons-src
314
315                 => Edit Releases
316
317                 Release Name: 0.{95}
318
319                 => Edit This Release
320
321                 Status: => Hidden
322
323                 Click Submit/Refresh
324
325
326
327         In the Bugs Tracker, add a Group for the new release 0.{97}
328
329
330
331         Test downloading from the SourceForge project page
332
333                 You may need to wait a good bit; they seem to update
334                 this on half-hour cycles.
335
336
337
338         Update the web site:
339
340                 template:  new version number
341
342                 src/doc.py:  new version number
343
344                 src/download.py:  new version number
345
346                 src/index.py:  announcement on the home page
347
348                 src/scons-doc.tar.gz:  update
349
350                 src/CHANGES.txt:  update
351
352         Test downloading from the web site download page
353
354
355
356         Add news item to the SourceForge project page
357
358
359
360         Announce to the following mailing lists (template below):
361
362                 scons-announce@lists.sourceforge.net
363                 scons-users@lists.sourceforge.net
364                 scons-devel@lists.sourceforge.net
365
366                         [right away]
367
368                 python-announce@python.org
369
370                         [right away, it's moderated and will take
371                         some time to get through]
372
373                 linux-announce@news.ornl.gov
374
375                         [right away, it's moderated and will take
376                         some time to get through]
377
378                 [optional] cons-discuss@gnu.org
379
380                         [only if it's a really big announcement,
381                         I said we wouldn't bug this list]
382
383                 python-list@python.org
384
385                         [wait until business hours so the announcement
386                         hits mailboxes while U.S. workers are active]
387
388         Notify Gentoo Linux of the update
389
390                 For now, we will do this by entering a bug report, and
391                 attaching the files in build/gentoo to the report.  Go
392                 to:
393
394                         http://bugs.gentoo.org/
395
396                 This requires an account (based on your email address)
397                 and a certain amount of Bugzilla-based navigation,
398                 but nothing that's too difficult.
399
400                 This is just my best stab at a process that will work
401                 for Gentoo.  This process may change if the Gentoo
402                 developers come back and want something submitted in
403                 some other form.
404
405         Notify www.cmtoday.com/contribute.html
406
407                 [This guy wants an announcement no more frequently than
408                 once a month, so save it for a future release if it's
409                 been too soon since the previous one.]
410
411         Notify freshmeat.net
412
413                 [Wait until the morning so the announcement hits the
414                 main freshmeat.net page while people in the U.S. are
415                 awake and working]
416
417
418
419         Checkin another change to prepare for development on this branch.
420
421                 # Prep the following files to track the changes
422                 # made during the next development cycle
423                 aecp src/CHANGES.txt src/RELEASE.txt
424                 vi src/CHANGES.txt src/RELEASE.txt
425
426                 # Optionally, update release numbers in the following:
427                 [optional] aecp HOWTO/change.txt
428                 [optional] vi HOWTO/change.txt
429
430                 [optional] aecp HOWTO/release.txt
431                 [optional] vi HOWTO/release.txt
432
433
434
435
436 =======================
437 Template describe-the-release section:
438
439 IMPORTANT:  Release 0.95 contains the following interface changes:
440
441   - XXX
442
443   See the release notes for more information about these changes.
444
445 This release adds the following features:
446
447   - XXX
448
449 This release enhances the following existing features:
450
451   - XXX
452
453 The following fixes have been added:
454
455   - XXX
456
457 Performance has been improved as follows:
458
459   - XXX
460
461 The following changes have been made to the SCons packaging:
462
463   - XXX
464
465 The documentation has been improved:
466
467   - XXX
468 =======================
469 Template scons-devel announcement:
470
471 SConspirators--
472
473 SCons beta release 0.95 is now available for download.
474
475 XXX Template describe-the-release section goes here XXX
476
477 Special thanks to XXX, XXX, and XXX for their contributions to this
478 release.
479
480         --SK
481 =======================
482 Template scons-users + scons-announce announcement:
483
484 Version 0.95 of SCons has been released and is available for download
485 from the SCons web site:
486
487         http://www.scons.org/
488
489 Or through the download link at the SCons project page at SourceForge:
490
491         http://sourceforge.net/projects/scons/
492
493 RPM and Debian packages and a Win32 installer are all available, in
494 addition to the traditional .tar.gz and .zip files.
495
496
497 WHAT'S NEW IN THIS RELEASE?
498
499 XXX Template describe-the-release section goes here XXX
500
501
502 ACKNOWLEDGEMENTS
503
504 Special thanks to XXX, XXX, and XXX for their contributions to this
505 release.
506
507 On behalf of the SCons team,
508
509         --SK
510 =======================
511 Template python-announce, linux-announce and python-list announcement:
512
513 SCons is a software construction tool (build tool, or make tool) written
514 in Python.  It is based on the design which won the Software Carpentry
515 build tool competition in August 2000.
516
517 Version 0.95 of SCons has been released and is available for download
518 from the SCons web site:
519
520         http://www.scons.org/
521
522 Or through the download link at the SCons project page at SourceForge:
523
524         http://sourceforge.net/projects/scons/
525
526 RPM and Debian packages and a Win32 installer are all available, in
527 addition to the traditional .tar.gz and .zip files.
528
529
530 WHAT'S NEW IN THIS RELEASE?
531
532 XXX Template describe-the-release section goes here XXX
533
534
535 ABOUT SCONS
536
537 Distinctive features of SCons include:
538
539   - a global view of all dependencies; no multiple passes to get
540     everything built properly
541   - configuration files are Python scripts, allowing the full use of a
542     real scripting language to solve difficult build problems
543   - a modular architecture allows the SCons Build Engine to be
544     embedded in other Python software
545   - the ability to scan files for implicit dependencies (#include files);
546   - improved parallel build (-j) support that provides consistent
547     build speedup regardless of source tree layout
548   - use of MD5 signatures to decide if a file has really changed; no
549     need to "touch" files to fool make that something is up-to-date
550   - easily extensible through user-defined Builder and Scanner objects
551   - build actions can be Python code, as well as external commands
552
553 An scons-users mailing list is available for those interested in getting
554 started using SCons.  You can subscribe at:
555
556         http://lists.sourceforge.net/lists/listinfo/scons-users
557
558 Alternatively, we invite you to subscribe to the low-volume
559 scons-announce mailing list to receive notification when new versions of
560 SCons become available:
561
562         http://lists.sourceforge.net/lists/listinfo/scons-announce
563
564
565 ACKNOWLEDGEMENTS
566
567 Special thanks to XXX, XXX, and XXX for their contributions to this
568 release.
569
570 On behalf of the SCons team,
571
572         --SK