google / cmockery

A lightweight library to simplify and generalize the process of writing unit tests for C applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Re-create historical releases (0.1.0, 0.1.1, 0.1.2) on GitHub

mbrukman opened this issue · comments

We can see the past release history in the ChangeLog:

Mon Sep 15 17:21:22 2008 Google Inc. <opensource@google.com>
	* cmockery: version 0.12
	* Made it possible to specify additional compiler, lib tool and link 
	flags on Windows.
	* Added Windows makefile to the tar ball.

Fri Aug 29 10:50:46 2008  Google Inc. <opensource@google.com>

	* cmockery: version 0.11
	* Made it possible to specify executable, library and object output 
	  directories.

Tue Aug 26 10:18:02 2008  Google Inc. <opensource@google.com>

	* cmockery: initial release:
	  A lightweight library to simplify and generalize the process of 
	  writing unit tests for C applications.

We just need to find the right commits that were the cut-offs for each of the release, and create an appropriate release tag for each of those points.

For v0.1.2, since that was the last release, we also have a pointer to the full tarball courtesy of Homebrew which is hosted on GCS which can be used to identify the right commit point.

Interestingly enough, git log also shows the release tags added to the repo in SVN, but there are several such commits for every SVN tag. We can also look at the commit history of the ChangeLog itself to identify the release points.

Turns out, we actually have a branch for each release:

and we can just use the last commit on each of these branches to create a release tag on GitHub.

However, all of the historical releases will have everything under the trunk directory since the cleanup happened in 2015 while these releases happened much earlier in 2008.

What we can do to create clean historical releases is as follows:

  • for each branch (cmockery-0.1, cmockery-0.11, cmockery-0.12), add another commit to move everything from trunk/* to top-level
  • create a release for each of the historical versions
  • resume future releases to be done from the relevant commit on master

@stewartmiles, thoughts / concerns on this proposed plan?

By "restoring" I simply mean creating appropriate version tags, such that they show up on https://github.com/google/cmockery/releases and are easily downloadable; it also makes it trivial for users to diff two releases to see what changed, e.g., from 0.1.2 to the next release.

Also, for continuity, so that it's always easy to download a 0.1 or 0.1.2 release; right now, there's only the archive on GCS from the Google Code export that's referenced in Homebrew (see first comment), but the GCS archives may be theoretically removed in the future; this makes this repo self-contained from here on out.