aboutsummaryrefslogtreecommitdiffstats
path: root/build/release-checklist.txt
blob: cdd57df6e1e8fc381bf383984d0e124e87ae3a46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
================================================================================
               Checklist for Preparing an AspectJ Release
================================================================================

Create a fresh copy of this file, and then record your progress in the file and
save it as part of the release notes on completion.

Before you begin... you will need:
================================================================================

* A JDK v1.4.x        java -fullversion : [                                   ]
* A JDK v1.3.x        java -fullversion : [                                   ]
* A 1.1.8 JRE         version :           [                                   ]
* A Windoze box       OS version :        [                                   ]
* A Linux box         distribution :      [                                   ]
* An iMac (nice-to-have) JDK 1.4.x :      [                                   ]
* Eclipse            version :            [                                   ]

* A pair of scissors (get an adult to help you with these)
* Some sticky-backed plastic

OK, so the last three aren't strictly necessary, but they always seem to come in
useful on the telly.

Extraction:
================================================================================

* Full CVS extract of org.aspectj/modules                               [   ]
    date and time of extract :          [                                   ]

Preparation:
================================================================================

* Create a new directory under releases for this release                [   ]
   (e.g. releases/aspectj-1.1rc1)

* Save a copy of this file there as package-and-test-notes.txt          [   ]

* Edit build/build-properties.xml and set the version properties for this
  release                                                               [   ]

  e.g.

      <property name="build.version"       value="1.1rc1"/>
      <property name="build.version.base"  value="1.1"/>
      <property name="build.version.long"  value="1.1 release candidate 1"/>
      <property name="build.version.short" value="1.1rc1"/>

* Edit org.aspectj.ajdt.core/src/org.aspectj.ajdt.ajc/messages.properties and
  set the version properties for this release                           [   ]

  e.g.

  ### AspectJ-specific messages
  configure.version = AspectJ Compiler 1.1rc1
  configure.directoryNotExist = invalid option or directory does not exist: {0}
  ## 3456789012345678901234567890123456789012345678901234567890123456789012345
  ### miscellaneous
  misc.usage = AspectJ Compiler 1.1 release candidate 1\n\
  ...

Build:
================================================================================

* Ensure JAVA_HOME is set to point to your 1.3 JDK                      [   ]
     echo $JAVA_HOME       [                                                ]

     (even when you "Run Ant..." from eclipse, the value of JAVA_HOME is
     used rather than the JRE specified in your Eclipse settings).

* When running ant, use the version in modules/lib/ant,
  i.e., modules/lib/ant/bin/ant                                         [   ]

* Run ant on build/build.xml :

    $ cd build
    $ ant clean                                                         [   ]
    $ ant fail-unless-boot-libraries-uptodate                           [   ]
    $ ant                                                               [   ]

* Save the build output (console log) as build-<version>.log.txt        [   ]
    (e.g. build-1.1rc1.log.txt)

* Save the built jar to the releases directory                          [   ]
  (releases/aspectj-<version>)

* Verify name is aspectj-<version>.jar                                  [   ]


Pre-installation tests:
================================================================================

* run junitModules.xml tests

  - go to modules/tests/ and run

     $ ant -f junitModules.xml {target} \
       -Daspectjrt.path=../aj-build/dist/tools/lib/aspectjrt.jar

     for each target:

     -- target = clean                                                  [   ]
     -- target = default                                                [   ]

  - Record any failures here (should be none)

  - Save the test results as junitModules.report.zip                    [   ]
    (zip of eclipse/workspace/tests/bin/junitXmlOutput/html)


* run Harness tests on the 1.3 vm (ajcTests.xml):

    Where {harness} is

      $ cd tests
      $ {java-1.3} -jar ../aj-build/jars/testing-drivers-all.jar

    Do:

      $ {harness} -release -logFail ajcTests.xml                        [   ]

    -- save results in ajcTests-result-<version>-JDK13.txt              [   ]
        (e.g. ajcTests-result-1.1rc1-JDK13.txt)

      -- record any failures (should be none) inline here.

      $ {harness} -release -logFail -emacssym ajcTests.xml              [   ]

    -- save results in ajcTests-result-<version>-emacssym-JDK13.txt     [   ]
        (e.g. ajcTests-result-1.1rc1-emacssym-JDK13.txt)

      -- record any failures (should be none) inline here.

* run Harness tests on the 1.4 vm:

    Where {harness} is

      $ cd tests
      $ {java-1.4} -jar ../aj-build/jars/testing-drivers-all.jar

    Do:

      $ {harness} -release -logFail ajcTests.xml                        [   ]

    -- save results in ajcTests-result-<version>-JDK14.txt              [   ]
        (e.g. ajcTests-result-1.1rc1-JDK14.txt)

      -- record any failures (should be none) inline here.

      $ {harness} -release -logFail -emacssym ajcTests.xml              [   ]

    -- save results in ajcTests-result-<version>-emacssym-JDK14.txt     [   ]
        (e.g. ajcTests-result-1.1rc1-emacssym-JDK14.txt)

      -- record any failures (should be none) inline here.

* run Harness on ajcTestsFailing.xml

    Where {harness} is

      $ cd tests
      $ {java-1.3} -jar ../aj-build/jars/testing-drivers-all.jar

    Do:

      $ {harness} -release -logFail ajcTestsFailing.xml                 [   ]

    -- save results in ajcTestsFailing-result-<version>-JDK13.txt       [   ]
        (e.g. ajcTestsFailing-result-1.1rc1-JDK13.txt)

      -- record any failures inline here (should be none. ajcTestsFailing
         should be empty for a final release.  Known exceptions are
         permissible for a non-final release.)


Installation & Verification Tests
================================================================================

* install from aspectj-<version>.jar as built above

    - verify version number and build date on splash screen             [   ]

    - save screenshot of splash screen (not essential) as               [   ]
        Installer-Splash-Screen.bmp (file format may vary)

* verify directory structure created ok                                 [   ]

* check version in README-AspectJ.html                                  [   ]

* check version in README-1.1.html (file not required)                   [   ]

* check license present and correct version (currently CPLv1.0)         [   ]

* run "ajc -version", verify version info                               [   ]

* run "ajc", verify version info                                        [   ]

* from doc/examples, run "ant", verify spacewar builds and runs ok      [   ]

* in doc/examples, build ant targets as follows:
    - bean                                                              [   ]
    - intro                                                             [   ]
    - intro-clone                                                       [   ]
    - intro-compare                                                     [   ]
    - intro-hash                                                        [   ]
    - observer                                                          [   ]
    - spacewar                                                          [   ]
    - spacewar-demo                                                     [   ]
    - telecom                                                           [   ]
    - telecom-billing                                                   [   ]
    - telecom-timing                                                    [   ]
    - tjp                                                               [   ]
    - tracing-1                                                         [   ]
    - tracing-2                                                         [   ]
    - tracing-3                                                         [   ]
    - tracing-bc                                                        [   ]
    - tracing-none                                                      [   ]

* With aspectjtools.jar in the ant/lib directory, also build
    - tracing-adapter                                                   [   ]
    - tracing-adapter-ajc                                               [   ]


* run pre-compiled version of spacewar on a 1.1.8 vm                    [   ]

* verify debug info included in class files
    - "javap -l org.aspectj.tools.ajc.Main" under jdk 1.4 or later      [   ]

* verify manual dates correct in docs                                   [   ]

* verify api docs present and correct                                   [   ]

Product Testing
================================================================================

These tests are a bit more rigorous and time-consuming.
Run at your discretion

* Compile AspectJ sources using AspectJ                                 [   ]

  cd tests/product/build-aspectj
  ant

* Perform steps specified in the Development Guide on AJBrowser         [   ]

* Perform steps specified in tests/ajdt/script.html                     [   ]

* Build/run tests/test-other-systems.xml (PARC has other sources)       [   ]


Cross-Platform Testing
================================================================================

(Assuming prior tests were done under windows)

* Install, build and run spacewar on Linux using AJBrowser              [   ]

* Install, build and run spacewar on Mac OS X using AJBrowser           [   ]

* Download from IE, Netscape, and Mozilla, new and old                  [   ]
  if they have not been validated with the current HTML.

Bug database
================================================================================

* No P1 or P2 bugs, and no lower bugs that should be P1/P2              [   ]

* All fixed bugs verified (at least by fixing developer,                [   ]
  though preferably with a test case)

* Please comment if there are compiler fixes without test cases         [   ]


Other Release Objectives
================================================================================

Record any other details or release specific objectives test results here.


Release
================================================================================

Once developer consensus is reached on the build:

* commit all releases/aspectj-<version>/*.* files created during
  this process                                                          [   ]

* tag /home/technology/org.aspectj as vM_m_r_XX (e.g. v1_1_0_RC1)       [   ]

* post aspectj-<version>.jar to
    download.eclipse.org/technology/ajdt/aspectj-<version>.jar          [   ]

* download from
  https://download.eclipse.org/technology/ajdt/aspectj-<version>.jar
  and install                                                           [   ]

* post news article on project home page                                [   ]

* post link on download page                                            [   ]

* post announce message to aspectj-users, aspectj-announce              [   ]

* buy beer                                                              [   ]