Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Building #121

Closed
wants to merge 2 commits into from

2 participants

@barijaona
Owner

More consistent with naming conventions used till 2.6.0

barijaona added some commits
@barijaona barijaona Upload binaries to Sourceforge & use VCS_NUM as a human readable refe…
…rence (rather than commit number or BUILD_NUMBER)

It is no more possible to host binaries at Github.
2821 was the last manually numbered build. From now, we use VCS_NUM handled by autorevision.
8282c85
@barijaona barijaona Updated instructions 0b8a9c2
@barijaona
Owner

@dak180 : I think commit numbers are difficult to read for humans. I prefer using VCS_NUM as a reference.
Bundle numbers would therefore be more similar to those used before, like 2.6.0.2601.
What's your opinion on this ?

@dak180
Collaborator

@barijaona it sounds like a bad idea to me; it is important to be clear about what the different version info is used for and not to use it out of scope.

VCS_TAG is the 'any human' readable portion of the the version string; users should get all the info they need just from this (see tag formating) so the second beta of 3.0.0 is tagged as v/3.0.0_beta2 and the third is v/3.0.0_beta3 and so forth. (This will pretty print as 3.0.0 Beta 2 anywhere a user will see it.)

VCS_SHORT_HASH is developer readable; it is meant to point to a particular revision in the repo for ease of testing/debugging.

VCS_NUM is launch services readable; it is meant to provide launch services with an unambiguous way to tell which of multiple copies of an app on the system is the latest version, it should not be used with anything else.

The confusion comes from the repo having previously been in svn where VCS_NUM and VCS_SHORT_HASH are effectively the same.

The important thing to remember is that for this system to work properly every beta, release candidate, and stable release needs a properly formatted tag.

@barijaona
Owner

@dak180 I probably stated it incorrectly...
My changes do not affect at all VCS_TAG, VCS_SHORT_HASH and VCS_NUM.

They just make VCS_NUM to appear more prominently :

  • in CFBundleShortVersionString (which appears in Finder's Get Info and in the About box)
  • in CFBundleGetInfoString
  • in the names of the archives which are uploaded to the website.

And of course, from now on, we will use tags the way you described ... So everything should remain consistent...
But for human beings, decimal VCS_NUM is just more readable than hexadecimal VCS_SHORT_HASH...

In fact, I maintained VCS_SHORT_HASH alongside VCS_NUM in CFBundleShortVersionString and CFBundleGetInfoString. But I am tempted to suppress it there, because ordinary users should not mind at all about commit numbers...

Am I missing something important ?

@dak180
Collaborator

@barijaona VCS_NUM should never be used anywhere but in CFBundleVersion in the info.plist; it being seen as 'human readable' is a lie (it does like to do that :smile:).
VCS_NUM is actually a poor choice (though the best available one without a lot more hoops) for use in CFBundleVersion since the number there is supposed to go up for every build done, even if nothing has actually been changed.

What I think you are looking for is the number which comes after 'beta' in the tag; that is what users should be referring to (beta 4, beta, 5, even beta 5a if you want).

The next tag (if I have counted the betas right) should be v/3.0.0_beta7 which would result in a displayed version string of 3.0.0 Beta 7 :VCS_SHORT_HASH: where 3.0.0 Beta 7 is all a user should care about and :VCS_SHORT_HASH: is there to point devs to the exact commit for bug hunting.

VCS_SHORT_HASH should never be removed from CFBundleShortVersionString or CFBundleGetInfoString (both of which can be used to populate Finder's Get Info window) because (among other things) that is how they get into crash reports which is kinda important.

@barijaona
Owner

@dak180 wrote :

VCS_NUM is actually a poor choice (though the best available one without a lot more hoops)...

I don't mind practicing some hula hoop :smiley: but I really want something legible in CFBundleGetInfoString and especially in the .tgz filenames.
So we can either :

  • stick to VCS_TAG only for the .tgz filenames and hope nobody ever forget to tag before releasing
  • try to mess with Apple's agvtool
@dak180
Collaborator

@barijaona the first part of CFBundleGetInfoString (before the comma) should always be the same as CFBundleShortVersionString (wierdness may otherwise happen) and CFBundleShortVersionString both must contain VCS_SHORT_HASH (if you want it in crash reports) and must not contain VCS_NUM if you want to be able to symbolcate crash reports after the fact. (Additionally the following stuff should never be in CFBundleShortVersionString: (, ), [, ],{ and } this list is not exhaustive.)

I do not recommend using agvtool; it brings nothing but pain and generally requires and assumes that there is a central build server which will do all builds for everyone.

@barijaona
Owner

Thanks for the clarification.

I will fix it on these basis.

@barijaona barijaona closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Dec 27, 2012
  1. @barijaona

    Upload binaries to Sourceforge & use VCS_NUM as a human readable refe…

    barijaona authored
    …rence (rather than commit number or BUILD_NUMBER)
    
    It is no more possible to host binaries at Github.
    2821 was the last manually numbered build. From now, we use VCS_NUM handled by autorevision.
  2. @barijaona

    Updated instructions

    barijaona authored
This page is out of date. Refresh to see the latest.
View
5 README.md
@@ -5,6 +5,11 @@ Vienna
Vienna can connect directly to the websites you want to track and/or sync with a Google Reader account.
+Downloading binaries
+--------------------
+
+Admins upload release and test versions at [Sourceforge](https://sourceforge.net/projects/vienna-rss/files/).
+
Getting support
---------------
View
34 Release Instructions.txt
@@ -1,3 +1,5 @@
+Instructions for building and uploading Vienna binaries to Sourceforge
+
## One time setup step: ##
- To ensure that releases are properly codesigned make sure that you have properly edited `configs/CS-ID.xcconfig` for your setup.
@@ -7,21 +9,41 @@
## Tag Formatting ##
Tags should be in one of the following formats:
+
- Normal release: (3.0.0)
v/3.0.0
+
- Beta release (Second beta for 3.0.0)
v/3.0.0_beta2
+
- Release candidate (first for 3.0.0)
v/3.0.0_rc1
## Steps to release Vienna: ##
- 1. Make sure `CHANGES` is up to date.
- 2. Copy the most recent part of `CHANGES` in a new text document and process it with Markdown to get a new `notes.html`.
- 3. Make a new tag using `git tag -s` (if you do not have a gpg key you can use `git tag -a` instead).
- 4. Run `make clean`.
- 5. Run `make release`.
- 6. Upload the contents of `Deployment/Uploads` (found in the build directory).
+ 1. Make sure that `MACOSX_DEPLOYMENT_TARGET` is entered correctly in "Configs/Project-All.xcconfig" to match minimum OS X requirements.
+ 2. Make sure that the "CHANGES" file is up to date.
+ 3. Copy the most recent part of "CHANGES" in a new text document and process it with Markdown to get a new "notes.html".
+ 4. Commit anything unstaged
+ 5. Make a new tag using `git tag -s` (if you do not have a gpg key you can use `git tag -a` instead).
+ 6. Run `make clean`.
+ 7. Run `make release`.
+ 8. Upload the contents of `Deployment/Uploads` (found in the build directory) using the following steps.
+ (Note: I'm using Vienna 2.6.0 and 3.0.0_beta1 as examples here.)
+
+ 1. Login to SourceForge with your admin account and go to <https://sourceforge.net/projects/vienna-rss/files>.
+ 2. Create a new folder "2.6.0" under "Released Versions" for stable releases or "3.0.0_beta1" under "Test Versions" for beta releases.
+ 3. Upload "Vienna2.6.0.2601.zip" from the build/Deployment/Uploads folder to the "2.6.0" folder.
+ 4. For stable releases, from the Sourceforge site, edit the "Properties" of "Vienna2.6.0.2601.zip" and set it as default download for Mac OS X. Don't do this for beta releases!
+ 5. Verify the downloads. Load the SourceForge Downloads page for Vienna at <https://sourceforge.net/projects/vienna-rss/files/>, download new zip files, uncompress them, and run the apps.
+ 6. Login to the Vienna web site. `sftp <username>@web.sourceforge.net` where `<username>` is your SourceForge user name, then `cd /home/project-web/vienna-rss/htdocs`.
+ 7. For stable releases, backup the changelog.xml ; for beta releases, backup the changelog_beta.xml
+ 8. Upload "changelog.xml" and "noteson2.6.0.2601.html" (or "changelog_beta.xml" and "noteson3.0.0_beta1.4652.html) via ssh or sftp to `/home/project-web/vienna-rss/htdocs`.
+ 9. Make sure that the files uploaded in step (8) are group-writable on the server, in case someone else needs to edit them. `chmod g+w changelog.xml noteson2.6.0.2601.html`
+ 10. Run the previous version of Vienna, and make sure that the Sparkle update mechanism works correctly to display and download the latest version. After updating, check again to make sure Sparkle is showing that you have the latest version.
+ 11. Upload "Vienna2.6.0.2601.dSYM.zip" via ssh or sftp to `/home/project-web/vienna-rss/htdocs/debugging`.
+ 12. Post an announcement of the new release on the CocoaForge Vienna forum at <http://forums.cocoaforge.com/viewforum.php?f=18> and/or <http://vienna-rss.org>.
+
View
4 Resources/Vienna-Info.plist
@@ -52,7 +52,7 @@
<key>CFBundleExecutable</key>
<string>Vienna</string>
<key>CFBundleGetInfoString</key>
- <string>Vienna version VCS_TAG :VCS_SHORT_HASH:, Copyright 2004-2012 Contributors. See Help/Acknowledgements for list of contributors.</string>
+ <string>Vienna version VCS_TAG (VCS_NUM) - commit VCS_SHORT_HASH, Copyright 2004-2012 Contributors. See Help/Acknowledgements for list of contributors.</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2004-2012 Contributors. See Help/Acknowledgements for list of contributors.</string>
<key>CFBundleHelpBookFolder</key>
@@ -70,7 +70,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>VCS_TAG :VCS_SHORT_HASH:</string>
+ <string>VCS_TAG (VCS_NUM) - commit VCS_SHORT_HASH</string>
<key>CFBundleSignature</key>
<string>Vnna</string>
<key>CFBundleURLTypes</key>
View
12 Vienna.xcodeproj/project.pbxproj
@@ -45,7 +45,7 @@
isa = PBXAggregateTarget;
buildConfigurationList = EAAF335914BDE402002A8837 /* Build configuration list for PBXAggregateTarget "Archive and Prep for Upload" */;
buildPhases = (
- EAAF336614BEF4DF002A8837 /* Release to Github */,
+ EAAF336614BEF4DF002A8837 /* Release to Sourceforge */,
);
dependencies = (
43501CFF165D82ED0018EDB7 /* PBXTargetDependency */,
@@ -1047,7 +1047,7 @@
439824191666B37000FFE219 /* autorevision.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = autorevision.sh; path = configs/scripts/autorevision.sh; sourceTree = SOURCE_ROOT; };
4398241A1666B37000FFE219 /* Changes-and-Notes.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "Changes-and-Notes.sh"; path = "configs/scripts/Changes-and-Notes.sh"; sourceTree = SOURCE_ROOT; };
4398241B1666B37000FFE219 /* Make-ID-Template.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "Make-ID-Template.sh"; path = "configs/scripts/Make-ID-Template.sh"; sourceTree = SOURCE_ROOT; };
- 4398241C1666B37000FFE219 /* Release-to-Github.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "Release-to-Github.sh"; path = "configs/scripts/Release-to-Github.sh"; sourceTree = SOURCE_ROOT; };
+ 4398241C1666B37000FFE219 /* Release-to-Sourceforge.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "Release-to-Sourceforge.sh"; path = "configs/scripts/Release-to-Sourceforge.sh"; sourceTree = SOURCE_ROOT; };
4398241D1666B37000FFE219 /* Translations.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = Translations.sh; path = configs/scripts/Translations.sh; sourceTree = SOURCE_ROOT; };
4398241E1666B3DB00FFE219 /* Acknowledgements.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Acknowledgements.rtf; sourceTree = SOURCE_ROOT; };
439824201666B3DB00FFE219 /* CHANGES */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CHANGES; sourceTree = SOURCE_ROOT; };
@@ -2117,7 +2117,7 @@
439824191666B37000FFE219 /* autorevision.sh */,
4398241A1666B37000FFE219 /* Changes-and-Notes.sh */,
4398241B1666B37000FFE219 /* Make-ID-Template.sh */,
- 4398241C1666B37000FFE219 /* Release-to-Github.sh */,
+ 4398241C1666B37000FFE219 /* Release-to-Sourceforge.sh */,
4398241D1666B37000FFE219 /* Translations.sh */,
);
name = Scripts;
@@ -4147,19 +4147,19 @@
shellPath = /bin/sh;
shellScript = ". configs/scripts/Acknowledgements.sh";
};
- EAAF336614BEF4DF002A8837 /* Release to Github */ = {
+ EAAF336614BEF4DF002A8837 /* Release to Sourceforge */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
- name = "Release to Github";
+ name = "Release to Sourceforge";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
- shellScript = ". configs/scripts/Release-to-Github.sh";
+ shellScript = ". configs/scripts/Release-to-Sourceforge.sh";
};
/* End PBXShellScriptBuildPhase section */
View
18 changelog.xml
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
- <channel>
- <title>Vienna Changelog</title>
- <link>http://www.vienna-rss.org/vienna_chglist.html</link>
- <description>Vienna Changelog.</description>
- <language>en-us</language>
- <copyright>Copyright 2007, Steve Palmer</copyright>
- <item>
- <title>Vienna $(VIENNA_VERSION_NUMBER).$(BUILD_NUMBER)</title>
- <pubDate>Thu, 5 Jul 2007 00:00:00 +0100</pubDate>
- <link>http://kent.dl.sourceforge.net/sourceforge/vienna-rss/Vienna$(VIENNA_VERSION_NUMBER).$(BUILD_NUMBER).zip</link>
- <enclosure sparkle:version="$(BUILD_NUMBER)" url="http://kent.dl.sourceforge.net/sourceforge/vienna-rss/Vienna$(VIENNA_VERSION_NUMBER).$(BUILD_NUMBER).zip"
-type="application/octet-stream"/>
- <sparkle:releaseNotesLink>http://www.vienna-rss.org/noteson$(VIENNA_VERSION_NUMBER).$(BUILD_NUMBER).html</sparkle:releaseNotesLink>
- </item>
- </channel>
-</rss>
View
4 configs/scripts/Changes-and-Notes.sh
@@ -2,6 +2,8 @@
. "${OBJROOT}/autorevision.tmp"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')"
+BUILD_NUMBER="2821"
+N_VCS_NUM="$(echo "${BUILD_NUMBER} + ${VCS_NUM}" | bc)"
VIENNA_UPLOADS_DIR="${BUILT_PRODUCTS_DIR}/Uploads"
VIENNA_NOTES="${SRCROOT}/notes.html"
@@ -22,7 +24,7 @@ fi
cd "${VIENNA_UPLOADS_DIR}"
if [ -f "${VIENNA_NOTES}" ] ; then
- cp -a "${VIENNA_NOTES}" "noteson${N_VCS_TAG}.${VCS_SHORT_HASH}.html"
+ cp -a "${VIENNA_NOTES}" "noteson${N_VCS_TAG}.${N_VCS_NUM}.html"
fi
exit 0
View
18 configs/scripts/Release-to-Github.sh → configs/scripts/Release-to-Sourceforge.sh
@@ -5,13 +5,16 @@ BUILD_NUMBER="2821"
N_VCS_NUM="$(echo "${BUILD_NUMBER} + ${VCS_NUM}" | bc)"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')"
VIENNA_UPLOADS_DIR="${BUILT_PRODUCTS_DIR}/Uploads"
-DOWNLOAD_BASE_URL="https://github.com/downloads/ViennaRSS/vienna-rss"
-TGZ_FILENAME="Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}.tgz"
-dSYM_FILENAME="Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}-dSYM"
+DOWNLOAD_BASE_URL="http://sourceforge.net/projects/vienna-rss/files"
+MAIN_BASE_URL="http://vienna-rss.sourceforge.net"
+TGZ_FILENAME="Vienna${N_VCS_TAG}.${N_VCS_NUM}.tgz"
+dSYM_FILENAME="Vienna${N_VCS_TAG}.${N_VCS_NUM}-dSYM"
if [[ "${VCS_TAG}" == *_beta* ]]; then
VIENNA_CHANGELOG="changelog_beta.xml"
+ DOWNLOAD_BASE_URL="${DOWNLOAD_BASE_URL}/TestVersions"
else
VIENNA_CHANGELOG="changelog.xml"
+ DOWNLOAD_BASE_URL="${DOWNLOAD_BASE_URL}/ReleasedVersions"
fi
# codesign setup
@@ -52,6 +55,7 @@ mkdir -p "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
cp -a *.dSYM "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
cd "${VIENNA_UPLOADS_DIR}"
tar -czf "${dSYM_FILENAME}.tgz" --exclude '.DS_Store' "${dSYM_FILENAME}"
+rm -rf "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
# Zip up the app
@@ -75,12 +79,12 @@ cat > "${VIENNA_CHANGELOG}" << EOF
<language>en-us</language>
<copyright>Copyright 2010-2012, Steve Palmer and contributors</copyright>
<item>
- <title>Vienna ${N_VCS_TAG} :${VCS_SHORT_HASH}:</title>
+ <title>Vienna ${N_VCS_TAG}.${N_VCS_NUM}</title>
<pubDate>${pubDate}</pubDate>
- <link>${DOWNLOAD_BASE_URL}/Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}.tgz</link>
+ <link>${DOWNLOAD_BASE_URL}/${N_VCS_TAG}/Vienna${N_VCS_TAG}.${N_VCS_NUM}.tgz/download</link>
<sparkle:minimumSystemVersion>${MACOSX_DEPLOYMENT_TARGET}.0</sparkle:minimumSystemVersion>
- <enclosure url="${DOWNLOAD_BASE_URL}/Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}.tgz" sparkle:version="${N_VCS_NUM}" sparkle:shortVersionString="${N_VCS_TAG} :${VCS_SHORT_HASH}:" length="${TGZSIZE}" type="application/octet-stream"/>
- <sparkle:releaseNotesLink>${DOWNLOAD_BASE_URL}/noteson${N_VCS_TAG}.${VCS_SHORT_HASH}.html</sparkle:releaseNotesLink>
+ <enclosure url="${DOWNLOAD_BASE_URL}/${N_VCS_TAG}/Vienna${N_VCS_TAG}.${N_VCS_NUM}.tgz/download" sparkle:version="${N_VCS_NUM}" sparkle:shortVersionString="${N_VCS_TAG}.${N_VCS_NUM}" length="${TGZSIZE}" type="application/octet-stream"/>
+ <sparkle:releaseNotesLink>${MAIN_BASE_URL}/noteson${N_VCS_TAG}.${N_VCS_NUM}.html</sparkle:releaseNotesLink>
</item>
</channel>
</rss>
Something went wrong with that request. Please try again.