Ticket #230 (closed task: fixed)

Opened 6 years ago

Last modified 4 years ago

Fix 'release' target

Reported by: mrenzmann Assigned to: mrenzmann
Priority: minor Milestone: version 0.9.0 - move to new codebase
Component: madwifi: makefiles Version: trunk
Keywords: Cc:
Patch is attached: 1 Pending:

Description

As reported as part of ticket #142 the toplevel Makefile knows a 'release' target. This target is broken for madwifi-ng and should be fixed (by adjusting it to use svn and fitting other changes).

Attachments

madwifi-release-target.diff (13.7 kB) - added by mrenzmann on 05/18/06 17:49:29.
Proposal for "release" target
madwifi-release-target-2.diff (13.7 kB) - added by mrenzmann on 05/19/06 09:20:44.
Revised patch, includes release.h without relative path stuff
madwifi-release-target-3.diff (14.0 kB) - added by mrenzmann on 05/19/06 12:00:15.
Corrected diff which includes the previously missing changes to release.h

Change History

03/03/06 21:50:05 changed by jbicket

  • status changed from new to closed.
  • patch_attached changed.
  • resolution set to fixed.

fixed in r1460.

03/04/06 08:19:08 changed by kelmo

  • status changed from closed to reopened.
  • resolution deleted.

This is not "fixed" in the way the ticket description describes, just removed. I think this ticket should be open until a valid release target is added to the Makefile, or it is decided that a release target is not required.

03/04/06 17:23:40 changed by anonymous

but what is the point of having a release target in the makefile? no-one can use it, except for developers with svn write access, since it's supposed to tag a version in the repository. The version snapshots at http://snapshots.madwifi.org/madwifi-ng/ which kind of replace the need for releases, right?

03/04/06 22:46:01 changed by kelmo

The snapshots are snapshots, not releases. And you are correct that the release target is only for the developers to tag a final release, as that is what the general aim of all this recent development is striving to acheive!

Plus, if a release target is there, mrenzmann may be more likely to do a "make release" sometime in the not too distant future ; )

04/24/06 23:51:14 changed by dyqith

So is it true, that once this is make release is fixed, we can have a 0.9.0 version out ?

04/25/06 06:48:14 changed by mrenzmann

We're near the first release, it seems, but some things still need to get done. For example #565 is also open, and it's about an important issue (I agree with kelmo in that regard).

To stay ontopic: I think we need to tune the sources a bit in order to reflect which release is used. For example, this could be done by defining RELEASE_VERSION in release.h. And we shouldn't forget to "disable" the svnversion.h target for releases.

What other steps are needed for the release target? For now I have on my (yet unordered) list:

  • tag a release in the repository
  • add the new version to Trac's "version" list (so that tickets can be filed for the releases)
  • create a tarball for the release
  • put the release tarball to sf.net (which will be our primary release distribution site, I think)

Something's missing? Comments?

04/25/06 06:58:06 changed by mrenzmann

  • status changed from reopened to new.
  • owner set to mrenzmann.

04/25/06 07:05:42 changed by kelmo

Mike, I think you have covered all the requirements. Thanks.

Kel.

05/02/06 18:11:46 changed by mrenzmann

  • status changed from new to assigned.

After looking at sf.net's File Release System (FRS) I think that automating the "put release tarball to sf.net" step should be deferred for now. I've found two tools that allow non-browser access to the FRS: one is a QT GUI, one is a Java class. In other words: no ready-to-use command line tool, and I don't feel like writing one right now.

In addition we should add a Freshmeat announcement for every release.

Updated task-list now looks as follows:

  1. Create "release" target, which tags a release in the repository, adds a new version to Trac's (ticket) version list and creates a tarball for the release.
  2. Add a to-be-done-for-releases file to the repository as reminder for the person who makes a new release; this file would remind of creating the file release at sf.net and announcing the release on madwifi.org, the madwifi-users mailing list and freshmeat.net (including a quick'n'dirty guide)

05/18/06 17:49:29 changed by mrenzmann

  • attachment madwifi-release-target.diff added.

Proposal for "release" target

05/18/06 18:05:09 changed by mrenzmann

  • patch_attached set to 1.

Request for comments

The attached patch implements the needed "release" target, please review and give feedback.

It works like this: Joe Developer, who needs to have write access to the Subversion repository of our project, calls "make release" from the top-level directory of his working copy. make then calls a Bash-script (make-release.bash) which does the main work:

  1. determining the desired type of release (I tried to make this as comfortable as possible)
  2. tagging the new release in the repository (changes to release.h regarding the release type and release version are applied in this step)
  3. exporting the new tag to local disk for packaging
  4. creating two tarballs

Joe then has to manually handle the rest of the release procedure, such as uploading the files to the sourceforge.net File Release System.

When the tag is created in the repository, a new "version" will be added to Trac. So, as soon as the new release is tagged, users will be able to file tickets for this release version.

Give it a test

Those of you who have write access to the madwifi.org repository can play with the script in the playground I've set up at http://trac.madwifi-test.otaku42.de and http://svn.madwifi-test.otaku42.de.

Check out a working copy from the playground's latest trunk, then run "make release" inside the working copy. Use the same login credentials that you use for the main repository. Looking at the playground's Trac installation you will see that new releases will immediately be available in the "version" field for new tickets, for example.

Release planned for Monday (2006-05-29)

Given that there are no objections regarding the script/target and given that no-one speaks up and lets us know about things we have forgotten, I plan to commit the needed changes to the main repository next Monay (May 29th) and package our first release (yay!)

05/18/06 18:07:04 changed by mrenzmann

Ah, and of course:

Signed-off-by: Michael Renzmann <mrenzmann@otaku42.de>

05/18/06 23:15:54 changed by kelmo

Do we need to have:

#include "../../release.h"

and why not:

#include "release.h"

05/19/06 09:20:44 changed by mrenzmann

  • attachment madwifi-release-target-2.diff added.

Revised patch, includes release.h without relative path stuff

05/19/06 09:21:24 changed by mrenzmann

Good point, no idea why I did it that way. Revised patch attached.

05/19/06 10:47:19 changed by kelmo

Will this stop the svn printouts from non-release tarballs? svnversion.h is still created, but I don't see how it is used in preference to release.h for builds from svn snapshots or working copies. Is it like this by design? Or am i simply not seeing something ;-)

05/19/06 10:55:24 changed by kelmo

Perhaps you meant to rename svnversion.h Makefile target to release.h?

In which case the kernel patch system will require a slight name adjustment.

05/19/06 12:00:15 changed by mrenzmann

  • attachment madwifi-release-target-3.diff added.

Corrected diff which includes the previously missing changes to release.h

05/19/06 12:11:00 changed by mrenzmann

Oops, sorry, my bad. I forgot to include the very first changeset (which was the one implementing the changes to release.h) into the diff. madwifi-release-target-3 now should be correct, sorry for the confusion.

It works like this:
release.h now additionally provides RELEASE_VERSION. If MadWifi is built from either a working copy or a snapshot, svnversion.h is created; release.h includes svnversion.h and RELEASE_VERSION is set to the content of SVNVERSION. Releases won't have svnversion.h due to the forementioned changes, so make-release.bash modifies release.h such that it does not include svnversion.h and sets RELEASE_VERSION to the version of the release. The changes to release.h are committed when tagging the release, and after tagging make-release.bash reverts the changes in the local working copy.

Last but not least, version information printouts are no longer using SVNVERSION, but are switched to RELEASE_VERSION instead.

This way we have just one location in the source that needs to be adjusted when a release is tagged, which makes handling in the script a lot easier. And as a side effect release builds won't have a probably confusing svnversion.h file.

05/19/06 12:38:02 changed by kelmo

Ok, now I can see it. Thanks for clearing that up Mike.

05/22/06 06:40:21 changed by mrenzmann

Committed in r1590.

05/22/06 07:16:32 changed by mrenzmann

Wiki page for release checklist started as DevDocs/PreparingReleases. It needs further extension, but it's a start.

05/23/06 18:26:13 changed by mrenzmann

  • status changed from assigned to closed.
  • resolution set to fixed.

Closing this ticket in preparation of the 0.9.0 release.

For those who wait: the actual release will be delayed another 12 hours or so.

05/23/06 23:32:38 changed by kelmo

  • status changed from closed to reopened.
  • resolution deleted.

Sorry to be a pain, Mike, but my above comment about including release.h in the kernel patch install.sh system was not considered in the addition of the release mechanism which has undone some work from the last weekend (and I currently lack the time to fix that).

05/24/06 06:20:04 changed by mrenzmann

It would be great if you could get the patch done within the next hours, so we can get the release out of the door. If we don't make it today, it will have to wait until Monday (since I'll be offline until then).

05/24/06 08:48:06 changed by kelmo

Done.

05/24/06 08:48:34 changed by kelmo

  • status changed from reopened to closed.
  • resolution set to fixed.

05/24/06 09:00:10 changed by mrenzmann

Thanks, kelmo. Heading off to get the release out of the door now. Yeeehaaaarrr... :)