Skip to content

Commit

Permalink
Merge pull request ViennaRSS#123 from barijaona/build5
Browse files Browse the repository at this point in the history
Build5 : synthesize debates around pull requests ViennaRSS#121 and ViennaRSS#122, prep new build
  • Loading branch information
mstroeck committed Dec 29, 2012
2 parents 9d5567a + fb9b033 commit 74dbffa
Show file tree
Hide file tree
Showing 11 changed files with 193 additions and 49 deletions.
11 changes: 11 additions & 0 deletions CHANGES
Expand Up @@ -8,6 +8,17 @@ most recent build should be at the top of this file.

Thanks!

3.0.0 Beta 7
------------
- Reorganized on disk layout
- Reorganized build system and version numbering (thanks to dak180)
- Revised documentation (English and French)
- Revised German translation (thanks to biphuhn)
- Should be more safe for the database
- Fix issues with dates
- Fix some problems with layouts
- Fix problems with certain feeds

3.0b.2821
--------
- Refreshes do not interfere anymore with user's reading experience
Expand Down
5 changes: 5 additions & 0 deletions README.md
Expand Up @@ -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
---------------

Expand Down
34 changes: 28 additions & 6 deletions 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.
Expand All @@ -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. Review all recent code changes and make sure you should not change `MACOSX_DEPLOYMENT_TARGET` in "Configs/Project-All.xcconfig" in order to protect users whose machines do not match minimum OS X requirements from a counter-productive "upgrade".
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`, respecting the above mentioned convention (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 3.0.0_beta2, 3.0.0_rc1 and 3.0.0 as examples here.)

1. Login to SourceForge's file system with your admin account. `sftp <username>@frs.sourceforge.net` where `<username>` is your SourceForge user name, then `cd /home/frs/project/vienna-rss/`.
2. Create a new folder : for beta releases, it will be something of the form `TestVersions/3.0.0_beta2/` ; for release candidate releases, it will be like `TestVersions/3.0.0_rc1/` ; and for stable releases, something like `ReleasedVersions/3.0.0/`. _Ensure that any directories you have created are set to be group writable_.
4. Upload the two .tgz files and the .html file from the build/Deployment/Uploads folder to the newly created folder (filenames should look like "Vienna3.0.0_beta1.tgz", "Vienna3.0.0_beta1.5b272a6-dSYM.tgz" and "noteson3.0.0_beta1.html")
4. 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.
5. For stable releases only : from the Sourceforge site, edit the "Properties" of "Vienna3.0.0.tgz" and set it as default download for Mac OS X. Don't do this for beta releases!
6. Login to the Vienna web site. `sftp <username>@web.sourceforge.net` where `<username>` is your SourceForge user name.
7. Upload `changelog.xml` (or `changelog_beta.xml` or `changelog_rc` accordingly) via sftp to `/home/project-web/vienna-rss/htdocs`.
8. If you upload a release candidate, change changelog_beta.xml to be a symlink to the new changelog_rc.xml ; and if you upload a release, change changelog_rc.xml to be a symlink to the new changelog.xml
9. Ensure also that these files are set to be group writable.
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. 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>.


2 changes: 0 additions & 2 deletions Resources/Vienna-Info.plist
Expand Up @@ -102,8 +102,6 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>ViennaApp</string>
<key>SUFeedURL</key>
<string>https://github.com/downloads/ViennaRSS/vienna-rss/changelog.xml</string>
<key>SmartCrashReports_CompanyName</key>
<string>OpenCommunity</string>
<key>SmartCrashReports_EmailTicket</key>
Expand Down
29 changes: 23 additions & 6 deletions Vienna.xcodeproj/project.pbxproj
Expand Up @@ -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 for upload */,
);
dependencies = (
43501CFF165D82ED0018EDB7 /* PBXTargetDependency */,
Expand Down Expand Up @@ -940,6 +940,7 @@
344D9C020C3D4B2200498CA1 /* MainMenu.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = MainMenu.nib; path = Interfaces/MainMenu.nib; sourceTree = SOURCE_ROOT; };
3A23F13315276935008AF863 /* NSNotificationAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = NSNotificationAdditions.h; path = src/NSNotificationAdditions.h; sourceTree = SOURCE_ROOT; };
3A23F13415276935008AF863 /* NSNotificationAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNotificationAdditions.h; path = src/NSNotificationAdditions.h; sourceTree = SOURCE_ROOT; };
3A5482F7168F5F4800887F91 /* Sparkle-setup.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = "Sparkle-setup.sh"; path = "configs/scripts/Sparkle-setup.sh"; sourceTree = "<group>"; };
3ABA673414C7536D00251925 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
3AFC9FEF152B7AF2004B0537 /* libSystem.B.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libSystem.B.dylib; path = usr/lib/libSystem.B.dylib; sourceTree = SDKROOT; };
430C4ADB1661753F0079C9FC /* autorevision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autorevision.h; path = src/autorevision.h; sourceTree = SOURCE_ROOT; };
Expand Down Expand Up @@ -1047,7 +1048,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-for-upload.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "Release-for-upload.sh"; path = "configs/scripts/Release-for-upload.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; };
Expand Down Expand Up @@ -2113,11 +2114,12 @@
439824171666B31700FFE219 /* Scripts */ = {
isa = PBXGroup;
children = (
3A5482F7168F5F4800887F91 /* Sparkle-setup.sh */,
439824181666B37000FFE219 /* Acknowledgements.sh */,
439824191666B37000FFE219 /* autorevision.sh */,
4398241A1666B37000FFE219 /* Changes-and-Notes.sh */,
4398241B1666B37000FFE219 /* Make-ID-Template.sh */,
4398241C1666B37000FFE219 /* Release-to-Github.sh */,
4398241C1666B37000FFE219 /* Release-for-upload.sh */,
4398241D1666B37000FFE219 /* Translations.sh */,
);
name = Scripts;
Expand Down Expand Up @@ -3390,6 +3392,7 @@
8D15AC300486D014006FF6A4 /* Sources */,
8D15AC330486D014006FF6A4 /* Frameworks */,
8D15AC2B0486D014006FF6A4 /* Resources */,
3A5482F6168F5C1700887F91 /* Sparkle autoupdate setup */,
AAEF2001085D685900A0E675 /* Copy Shared Support Files */,
52FDC71F0C559C7700F9F29B /* Acknowledgements */,
43EE8617165EF9D7000997FB /* Translations */,
Expand Down Expand Up @@ -4073,6 +4076,20 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
3A5482F6168F5C1700887F91 /* Sparkle autoupdate setup */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Sparkle autoupdate setup";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". configs/scripts/Sparkle-setup.sh";
};
430C4ACE166172BD0079C9FC /* Run Autorevision */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -4147,19 +4164,19 @@
shellPath = /bin/sh;
shellScript = ". configs/scripts/Acknowledgements.sh";
};
EAAF336614BEF4DF002A8837 /* Release to Github */ = {
EAAF336614BEF4DF002A8837 /* Release for upload */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Release to Github";
name = "Release for upload";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = ". configs/scripts/Release-to-Github.sh";
shellScript = ". configs/scripts/Release-for-upload.sh";
};
/* End PBXShellScriptBuildPhase section */

Expand Down
18 changes: 0 additions & 18 deletions changelog.xml

This file was deleted.

3 changes: 3 additions & 0 deletions configs/Project-All.xcconfig
Expand Up @@ -14,3 +14,6 @@ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES
GCC_PRECOMPILE_PREFIX_HEADER = YES
GCC_PREFIX_HEADER = src/Vienna_Prefix.pch

BASE_URL_TYP = https
BASE_URL_LOC = downloads.sourceforge.net/project/vienna-rss
2 changes: 1 addition & 1 deletion configs/scripts/Changes-and-Notes.sh
Expand Up @@ -22,7 +22,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}.html"
fi

exit 0
45 changes: 30 additions & 15 deletions configs/scripts/Release-to-Github.sh → configs/scripts/Release-for-upload.sh 100755 → 100644
@@ -1,18 +1,30 @@
#!/bin/bash

. "${OBJROOT}/autorevision.tmp"
BUILD_NUMBER="2821"
BUILD_NUMBER="2821" # Magic number; do not touch!
N_VCS_NUM="$(echo "${BUILD_NUMBER} + ${VCS_NUM}" | bc)"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')" # for urls/files
V_VCS_TAG="$(echo "${N_VCS_TAG}" | sed -e 's:_beta: Beta :' -e 's:_rc: RC :')" # for display
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"
DOWNLOAD_BASE_URL="${BASE_URL_TYP}://${BASE_URL_LOC}" # values set in project-all.xcconfig
TGZ_FILENAME="Vienna${N_VCS_TAG}.tgz"
dSYM_FILENAME="Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}-dSYM"
if [[ "${VCS_TAG}" == *_beta* ]]; then
VIENNA_CHANGELOG="changelog_beta.xml"
else
VIENNA_CHANGELOG="changelog.xml"
fi
case "${N_VCS_TAG}" in
*_beta*)
VIENNA_CHANGELOG="changelog_beta.xml"
DOWNLOAD_SUB_DIR="TestVersions"
;;
*_rc*)
VIENNA_CHANGELOG="changelog_rc.xml"
DOWNLOAD_SUB_DIR="TestVersions"
;;
*)
VIENNA_CHANGELOG="changelog.xml"
DOWNLOAD_SUB_DIR="ReleasedVersions"
;;
esac
DOWNLOAD_TAG_DIR="${N_VCS_TAG}"
DOWNLOAD_BASE_URL="${DOWNLOAD_BASE_URL}/${DOWNLOAD_SUB_DIR}/${DOWNLOAD_TAG_DIR}"

# codesign setup
function signd {
Expand All @@ -23,7 +35,7 @@ function signd {
local appth="${BUILT_PRODUCTS_DIR}/Vienna.app"

# Sign and verify the app
if [ ! -z "${idetd}" ]; then
if [ ! -z "${resrul}" ]; then
cp -a "${resrul}" "${appth}/ResourceRules.plist"
codesign -f -s "${idetd}" --resource-rules="${appth}/ResourceRules.plist" -vvv "${appth}"
rm "${appth}/ResourceRules.plist"
Expand All @@ -32,7 +44,7 @@ function signd {
fi
codesign -vvv --verify "${appth}"
else
echo "warning: No code signing identity configured; code will not be signed."
echo "warning: No code signing identity configured; code will not be signed." 1>&2
fi
}

Expand All @@ -52,6 +64,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
Expand All @@ -63,8 +76,10 @@ mv "${TGZ_FILENAME}" "${VIENNA_UPLOADS_DIR}"

# Output the sparkle change log
cd "${VIENNA_UPLOADS_DIR}"

pubDate="$(LC_TIME=en_US date -jf '%FT%T%z' "${VCS_DATE}" '+%a, %d %b %G %T %z')"
TGZSIZE="$(stat -f %z "${TGZ_FILENAME}")"

cat > "${VIENNA_CHANGELOG}" << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
Expand All @@ -75,12 +90,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 ${V_VCS_TAG} :${VCS_SHORT_HASH}:</title>
<pubDate>${pubDate}</pubDate>
<link>${DOWNLOAD_BASE_URL}/Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}.tgz</link>
<link>${DOWNLOAD_BASE_URL}/${TGZ_FILENAME}</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}/${TGZ_FILENAME}" sparkle:version="${N_VCS_NUM}" sparkle:shortVersionString="${V_VCS_TAG} :${VCS_SHORT_HASH}:" length="${TGZSIZE}" type="application/octet-stream"/>
<sparkle:releaseNotesLink>${DOWNLOAD_BASE_URL}/noteson${N_VCS_TAG}.html</sparkle:releaseNotesLink>
</item>
</channel>
</rss>
Expand Down
24 changes: 24 additions & 0 deletions configs/scripts/Sparkle-setup.sh
@@ -0,0 +1,24 @@
#!/bin/sh

# Config
. "${OBJROOT}/autorevision.tmp"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')" # for urls/files
V_VCS_TAG="$(echo "${N_VCS_TAG}" | sed -e 's:_beta: Beta :' -e 's:_rc: RC :')" # for display

case "${N_VCS_TAG}" in
*_beta*)
SU_FEED_URL="http://vienna-rss.org/changelog_beta.xml"
;;
*_rc*)
SU_FEED_URL="http://vienna-rss.org/changelog_rc.xml"
;;
*)
SU_FEED_URL="http://vienna-rss.org/changelog.xml"
;;
esac

INFO="${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/../Info.plist"

/usr/libexec/PlistBuddy $INFO -c "add SUFeedURL string $SU_FEED_URL"
/usr/libexec/PlistBuddy $INFO -c "set :SUFeedURL $SU_FEED_URL"
exit ${?}

0 comments on commit 74dbffa

Please sign in to comment.