OProfile release checklist
Note: The OProfile maintainer must give you admin privileges to
put out a release.
- Run Coverity against oprofile source before putting out a new release.
Note: Details about running Coverity
can be found at the Coverity web site
(The OProfile project has been registered, and the maintainer (Maynard Johnson) has
a Coverity account.) All issues identified by Coverity should be addressed before
putting out a new release.
Create/update Release Notes for new release
- Checkout or create release-notes/oprofile-<new-version> from
the oprofile-www project. Any changelog entry that fixes a user-visible bug should be
in the new release notes unless it was not reproducible in the last release.
All new user-visible features should also be in the release notes.
Check if sample data file format has changed (libop/op_sample_file.h) the since previous release. If so,
bump OPD_VERSION (in libop/op_config.h) if it hasn't already been done.
Change version to non-git and commit
- Change version in configure.ac's AM_INIT_AUTOMAKE
- Probably want to start with a
<v.r.m>-rc<n>. Since this has to be
every release candidate, it's best not to commit this until the final
GA of the release.
Make a release (candidate) publicly available.
- If there are any ChangeLog-xxxx files that are not listed in
the EXTRA_DIST target in Makefile.am, add them to the list and commit this Makefile.am
change (commit this now, otherwise you'll be making the exact same
change for every release candidate. NOTE: ChangeLogs are no longer
used now that we've switched to git.
- ./autogen.sh; ./configure; make dist. This produces a
tarball called oprofile-<release>.tar.gz,
where "release" is what
you specified in AM_INIT_AUTOMAKE.
- With a browser, go to the OProfile website and click on the
"SOURCEFORGE.NET" at the bottom left of the screen. Sign in with
your admin user ID. Click on "Files" tab, navigate into the "oprofile"
folder, and then click the "Add Folder"
button. Name the folder "oprofile-<release>" (without the -rc<n>. ).
Start with uploading the Release Notes file you created in step 1, but
first, make a copy of it and rename it to oprofile-<release>_readme.
Now go into the folder you just created, click the "Add File" button to upload
the release notes "readme" file. Now click "Add File" and upload
the new oprofile-<release>.tar.gz file.
- For each successive release candidate (and, eventually, for the GA), upload
your release tar ball the into the "oprofile-<release>" folder you created above.
Put a copy of the tar ball from the previous release candidate into the "oldfiles" folder;
then delete it from the folder it was in. If the Release Notes file has changed,
delete the old one and upload the new one.
- Go to project download page on SourceForge and verify that
the new release tar ball is listed there. It will take some time for
the new release to be mirrored to all of the mirror sites. Once you
can successfully download the tar ball from a SourceForge mirror, got
to the next step.
- For release candidates, post a message to the oprofile-list
with a URL to the download page for the release you just created and
paste the Release Notes into the message. For GA release, continue
to the "Close fixed bugs" step.
- Get testing feedback from the community. Return to
step 1 for each new release candidate (and, eventually, for the
The following steps are to be done once the decision is made
to GA and you've iterated over the previous steps again for the GA
Close fixed bugs
- Log into SourceForge with admin ID and close oprofile bugs that
fixed in this release. Note:
Bugs for problems that are not
reproducible in previous releases should
have been closed already.
CD into the checked-out oprofile directory and open the configure.ac file.
Specify the GA release in the AM_INIT_AUTOMAKE (i.e., <v.r.m>).
Now commit and push this change.
Tag the release by running the following commands:
- Create an account for yourself on freshmeat (http://freshmeat.net/projects/oprofile)
and have the OProfile maintainer give you developer permissions.
Log in and click on the "add release" URL and follow the bouncing
ball. If unsure about some of the fields, look at how previous
releases were specified.
'git tag RELEASE_<v_r_m>'; e.g, 'git tag RELEASE_0_9_4'
'git push --tags'
Update web page release-notes/, news, download, srcdoc/, doc/
Sync website to oprofile-www git
- Do a 'git clone' of oprofile and
- In oprofile-www, make the following updates:
Do 'git commit' of these changes.
- Edit the news/index.php and
download/index.php files to point to the new release.
- Regenerate events files documentation. To do this, you must first make
a temporary change in the oprofile source code -- change the value of LINE_LEN
in utils/ophelp from 99 to 999. Do a 'make install' to put this change into effect for
the actual generation of event doc. Add new .php files in the docs directory for any
new processor type that was added since last regeneration. Also, add a new
'do_events ...' line in the all-events-doc.sh file for each new processor type.
Now run 'sh all-events-doc.sh'.
Finally, edit the doc/index.php file and add a link to each new events PHP file generated.
Do a 'git diff' to verify the updates to the docs dir.
- Verify correctness/completeness
of the new release-notes. Any meaningful change seen when diffing docs/ subdir
should be reported in the release-notes file.
- In oprofile, do ./autogen.sh, ./configure, and then cd into
doc/ and run 'make chunk'. Tar up the doc/ directory that gets created inside of
cd into doc/srcdoc/ and run 'make'. Tar up the srcdoc/ directory.
Send release email.
Change AM_INIT_AUTOMAKE in configure.ac to '<v.r.m>git'; commit and push this change.
- Navigate to SourceForge's site documentation (Help | Site Documentation | Complete Documentation).
Then go to "Interactive Shell Services (https://sourceforge.net/p/forge/documentation/Shell%20Service/).
See instructions there on how to do ssh and scp. Then ssh into SF with your admin ID
and cd to oprofile's www directory
(/home/project-web/oprofile/htdocs/). There's a git dir there; CD into that directory and do a 'git
pull' to update that directory with current data from the shared repo.
- scp the new doc and srcdoc tar balls created in the previous
step over to SF and untar them into the git dir.
- Ensure that any new files you create have write access for the
group (do 'chmod g+w' if necessary).
- CD into the srcdoc/html directory and copy all files to the parent directory (i.e., "srcdoc").
- Point your browser at http://oprofile.sourceforge.net/git/ and
verify the website, documentation, etc. looks OK.
- Make a backup of the parent (htdocs) directory; then copy all
the stuff from the git dir into the parent dir to make it live.
Now use your browser to verify that the actual OProfile website looks