-
Notifications
You must be signed in to change notification settings - Fork 7
/
release_procedure.txt
135 lines (92 loc) · 4.6 KB
/
release_procedure.txt
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
Release Procedure for PAPI Apr 17, 2012 (now with git!)
Below is a step-wise procedure for making a PAPI release.
This is a living document and may not be totally current or accurate.
It is an attempt to capture current practice in making a PAPI release.
Please update it as appropriate.
One way to use this procedure is to print a copy and check off
the lines as they are completed to avoid confusion.
================================================================================
__ 0a. Notify developers that a release is imminent and the repository should be
considered frozen.
__ 0b. Update your local copy from git to make sure you have all changes.
git pull
__ 1. Update any documentation that may have changed. Pay particular attention
to INSTALL.txt.
__ 2. Check/Change the version number in: papi.spec, papi.h, configure.in, Makefile.in,
Doxyfile-common (PROJECT_NUMBER) ; and commit to the repo.
-- 2a. On most icl machines:
export PATH=/mnt/scratch/sw/doxygen-1.7.4/bin:$PATH
-- or --
setenv PATH /mnt/scratch/sw/doxygen-1.7.4/bin:$PATH
-- 2b. Rebuild the doxygen manpages ( cd doc && make && make install )
You will want to check if anything needs to be committed to git.
(Usually the $(papi_dir)/man/man1 and man3 directories)
-- 2c. Update the website docs;
We use Doxyfile-html for this,
newgrp papi # changes your defacto group to papi (starts a new shell)
$(papi_dir)/doc make clean html
rm -rf /silk/homes/icl/projectsdev/papi/docs/*
cp -R doc/html/* /silk/homes/icl/projectsdev/papi/docs;
chmod -R 775 /silk/homes/icl/projectsdev/papi/docs
__ 3. If configure.in is changed, run autoconf (2.59) and commit the resulting
configure file.
NOTE: Using an autoconf version >2.59 will work, but will produce an
inordinate number of extraneous differences between versions.
__ 4. Create a ChangeLog for the current release.
We use a python script gitlog2changelog.py to generate is for us.
It expects the tag of the last release as an argument.
./gitlog2changelog.py papi-a-b-c-t
mv ChangeLog ChangeLogP4XYZ.txt
__ 5. Scan the ChangeLog to remove extraneous fluff, like perfctr imports.
__ 6. Modfy RELEASENOTES.txt to summarize the major changes listed in the log.
__ 7. Add ChangeLogXYZ.txt to git and commit both ChangeLogXYZ.txt and
RELEASENOTES.txt.
__ 8. If this is not an incremental release, branch git.
git checkout -b stable-X.Y [starting point eg master]
__ 9. Tag git: papi-X-Y-Z-t.
git tag -a papi-X-Y-Z-t
__ 10. Push everything to the central repo.
git push --tags
-- or -- If you've created a new branch.
git push --tags origin stable-X.Y:
__ 11. Copy your working directory to papi-X.Y.Z
> cp -R papi papi-X.Y.X
> cd papi-X.Y.Z
__ 12. Delete any unneccessary files or directories
particularly .doc and .pdf files in the /doc directory
Things needed in /doc {Doxyfile, Doxyfile-everything}
You can use the delete_before_release.sh script for this.
NOTE: This deletes the .git directory,
__ 13. tar the directory:
> tar -cvf papi-X.Y.Z.tar papi-X.Y.Z
__ 14. zip the tarball:
gzip papi-X.Y.Z.tar
__ 15. Copy the tarball to /silk/homes/icl/projects/papi/downloads
__ 16. Check permissions on the tarball. 664 is good.
__ 17. Create a link with supporting text on the PAPI software web page.
__ 18. Create a News item on the PAPI Web page.
__ 19. Email the papi developer and discussion lists with an announcement.
__ 20. Post the announcement on the PAPI User Forum.
================================================================================
Patch Procedure for PAPI January 29, 2010
Below is a step-wise procedure for making a PAPI patch.
One way to use this procedure is to print a copy and check off
the lines as they are completed to avoid confusion.
================================================================================
__ 0. Make sure you're on the branch you want to patch against.
> git branch
* stable-5.0
__1. Generate the patch.
> git diff -p papi-5-0-0-t stable-5.0 > papi-5-0-1.patch
__ 2. Apply the patch.
> wget http://icl.cs.utk.edu/projects/papi/downloads/papi-5.0.0.tar.gz
> tar xzf papi-5.0.0.tar.gz && cd papi-5.0.0
> patch -p1 ../papi-5-0-1.patch
__ 3. If the patch applied cleanly, build and test on affected platforms;
otherwise clean up the patch and try again.
__ 4. Copy the diff file to icl:/sw/www/icl/projects/papi/downloads/patches
__ 5. Check permissions on the diff. 644 is good.
__ 6. Create a link with supporting text on the PAPI software web page.
__ 7. Create a News item on the PAPI Web page.
__ 8. Email the papi discussion list with an announcement.
__ 9. Post the announcement on the PAPI User Forum.