-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrelease_procedure.txt
140 lines (97 loc) · 4.94 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
132
133
134
135
136
Release Procedure for PAPI 28 Oct, 2013
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. Check buildbot / make fulltest results to make sure
the codebase is bug-free.
__ 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, src/papi.h, src/configure.in, src/Makefile.in,
doc/Doxyfile-common (PROJECT_NUMBER) ; and commit to the repo.
The number may already have been updated after the last release.
-- 2a. On the icl machine gonzo:
export PATH=/mnt/scratch/sw/doxygen-1.8.5/bin:$PATH
-- or --
setenv PATH /mnt/scratch/sw/doxygen-1.8.5/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/*
(on gonzo: /mnt/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. Create a fresh clone of the papi repository.
> git clone https://icl.cs.utk.edu/git/papi.git papi-X.Y.Z
> 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, don't release out of your normal
work directory, you will loose all the marbles this way.
__ 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
(gonzo: /mnt/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.