-
Notifications
You must be signed in to change notification settings - Fork 286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to using Github Release Page for archives #2727
Comments
Can you clarify what you mean? 2.0.3 is both codesigned and the tag / release is GPG signed as well (green checkbox): Can we check that one off?
It looks like you can cut a release from an existing tag: https://github.com/quicksilver/Quicksilver/releases/new, so it looks like we should be able to select e.g. v1.0.0 and create a release et voila. However, I assume this would mess with efforts like Homebrew/homebrew-cask#121662; I'm pretty sure Homebrew will be relying on the chronological order of a release irrespective of a tag name, and this would bump all Homebrew cask users (likely a nontrivial chunk of the userbase) back to an earlier version. @timvisher is that your understanding? @pjrobertson @skurfer do you think migrating old releases is worth possibly disrupting Homebrew users? @timvisher you asked about pre-releases -- is there an escape hatch where we could add a suffix like The last 3 tasks should be relatively easy! |
Sorry, I think I meant a checksums. I saw somewhere you said you wanted to find a way to add MD5 checksums for homebrew or something. |
Ah, makes sense! |
@n8henrie I wasn't actually familiar with this particular piece of the machinery in Homebrew but I did some digging and I think I can answer these questions now. I think your concern about the backporting of older releases to the GitHub release page may be unfounded. If I'm reading the code right, what this strategy actually does is visit the Finally, if I'm wrong about any of the above I think it would be as simple as burning a patch version to get people back on to the 'real' latest. But I'm pretty sure that should be unnecessary. That all sound right to you? |
The latest release is the most recent non-prerelease, non-draft release,
sorted by the created_at attribute. The created_at attribute is the date of
the commit used for the release, and not the date when the release was
drafted or published.
Yup, did not know that. Thanks!
Busy few days at work, next week I'll punch a release for `1.0.0` and we'll
see how it goes.
Thanks again for the digging!
|
Well, the good news is that creating https://github.com/quicksilver/Quicksilver/releases/tag/v1.0.0 was quite easy, and doesn't seem to have messed up the ordering of https://github.com/quicksilver/Quicksilver/releases (as noted by @timvisher). The bad news is that the GitHub Action obvious didn't exist in the repo at that commit, so it didn't run and doesn't provide a But it looks like I can manually attach something later. |
Hmmm, trying to batch download so I can manually upload, and there are a lot of 404s here. $ BASE='https://github.qsapp.com'; curl -s "${BASE}" |
xmllint 2>/dev/null --html --xpath '//a[starts-with(@href, "downloads/Quicksilver")]/@href' - |
awk -F'"' -v BASE="${BASE}" '{ print BASE "/" $2 }' |
parallel 'curl -I -s -w "%{url} :: %{http_code}\n" -o /dev/null' |
sort -k3
https://github.qsapp.com/downloads/Quicksilver%201.0.0.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.1.0.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.1.1.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.1.2.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.1.3.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.2.0.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.2.1.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.2.2.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.2.2.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.3.0.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.3.1.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%202.0.0.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B36.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B54.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B59.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B60.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B61.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B62.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B63.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B65.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B66.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B67.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B68.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B69.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B70.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%20B71.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver_B64.dmg :: 200
https://github.qsapp.com/downloads/Quicksilver%201.3.2.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.3.3.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.3.4.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.4.0.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.4.1.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.4.2.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.1.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.2.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.3.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.4.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.5.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.6.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.7.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.8.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.5.9.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.6.0.dmg :: 404
https://github.qsapp.com/downloads/Quicksilver%201.6.1.dmg :: 404 Manually confirming in my web browser that the link for |
Manually uploaded the DMG for https://github.com/quicksilver/Quicksilver/releases/tag/v1.0.0. Pretty easy and seems to have worked, I'll chug away at this. |
I was expecting a typo or escaping error, but looks like the files just aren't there: https://github.com/quicksilver/Quicksilver/tree/gh-pages/downloads The effort isn't monumental, but if the page has been relatively unmaintained for so long, I'm questioning the effort of updating the releases page with binaries for every release. Seems certainly worthwhile for "last supported version" for the last couple of MacOS releases, but 1.6.2 vs 1.6.1... ¯\_(ツ)_/¯ Also, when I rsync them from the server they have odd names: I suppose I could just script something to checkout each tag and build locally, but that would take a while and frankly I'd rather just use the official release files that we've been distributing. |
Agreed. Just the last supported versions for each release should be enough. You can find the original DMGs on the update server, if they're not in the GH repo. They're in |
I see @n8henrie has made a start on uploading releases to the GH releases page. I've updated https://qsapp.com/download.php so that the 'other versions' now points to https://github.com/quicksilver/Quicksilver/releases Sidenote: we should make clear on every release which version of macOS it's compatible for, to help people find the version they need. |
I wonder if this is something that Homebrew Cask can do as well. I think Homebrew has become increasingly aggressive about dropping support for older macOS versions but I bet there's an easy way to pin a release to a particular macOS version set and use that one if you're on an older macOS version. Going to add that to my list of things to explore. :) |
#!/usr/bin/env bash
set -Eeuf -o pipefail
set -x
cleanup() {
diskutil unmount /Volumes/Quicksilver
}
trap cleanup EXIT
main() {
rsync -a 'qs0.qsapp.com:www/qs0/plugins/files/*.dmg' .
local ver dmg dest
while read -r dmg; do
hdiutil mount "${dmg}"
ver=$(defaults read /Volumes/Quicksilver/Quicksilver.app/Contents/Info.plist CFBundleShortVersionString || true)
hdiutil unmount /Volumes/Quicksilver/
# Skip undetected version
[[ -z "${ver-}" ]] && continue
# Skip existing from prior runs
[[ -d "${ver}" ]] && continue
mkdir -p "${ver}"
pushd "${ver}"
# Match the format of GH Releases
cp "../${dmg}" "Quicksilver.${ver}.dmg"
shasum --algorithm 256 "Quicksilver.${ver}.dmg" > checksum.txt
popd
done < <(find . -maxdepth 1 -iname 'com.blacktree.Quicksilver__*.dmg')
}
main "$@" EDIT: This clones all the dmgs from the servers and then renames them based on the human-readable string ( |
I think the "upload old release dmgs" part is about done; I've uploaded at least one for each $ curl -s 'https://api.github.com/repos/quicksilver/Quicksilver/releases' | jq -r .[].tag_name
v2.1.0
v2.0.3
v2.0.2
v2.0.1
v2.0.0
1.6.1
v1.6.0
v1.5.9
v1.5.8
v1.5.7
v1.4.2
v1.4.1
v1.3.4
v1.3.3
v1.2.2
v1.2.0-final
v1.1.0
v1.0.1-pre
v1.0.0 A few minor issues:
I'm not worried about anything other than the 1.6.2 version. |
@skurfer @pjrobertson -- I think this is reasonable to do now. I assume this needs to be changed at the hosting / DNS level -- can you take are of that? I don't think I have the relevant credentials. |
It's in the nginx conf file on the server. You should have access, but I'm happy to make the change if nginx conf files isn't your thing.
I think there's one vital bit of information missing before we can do that - I added an extra task to the first post here: make sure we clearly document which release works with which version of QS. It will make it easier for people going back and trying to find the relevant QS versions for them |
Sounds important, though I have no idea how to test! I always run the latest release supported by my hardware, and I'm writing this from my only MacOS device. Based on https://github.qsapp.com/, the only listed requirements I see are:
I added the requirements to 2.0.0 and 1.6.0; I didn't find a copy of |
So it looks like we could test (EDIT: some versions) in CI if we wanted, though I imagine we need to fix the tests before that would be helpful. |
Ah, found it, thanks. New to BSD. |
Most of the 'requires macOS XXX' info is in the current archives page. It just needs copying over: https://github.qsapp.com/ |
Yup, that's what I went off of as per above. Sorry that likely got lost in the multiple replies. |
@n8henrie - I think this can be closed now right? I see all the 'Requires macOS XXX' in there, and the qsapp.com redirecting is working :) |
I was waiting on confirmation that the "requires macos" info I'd provided was sufficient -- I have not yet changed the nginx conf.
Not for me? https://qsapp.com/archives/ -> https://github.qsapp.com/ which still shows the old page. CDN or maybe my DNS is cached somewhere? |
OK, I've changed the nginx conf and fixed the redirect.
What you've said looks sufficient! If you haven't already made the changes, then go ahead and do so. Only a few outstanding tasks here! |
It looks like you completed this one as well -- thanks! I deleted the gh-pages branch. I edited the nginx config to try to 301 redirect
This final task -- is there something actionable here? Or can we close this? |
I don't think so, perhaps just adding that to the 'QS Release process' in the Wiki, which I've done. |
Closed! :) |
I know I’ve been too busy to contribute much (even to discussions), but stuff like this is great. Thanks! |
Replace the existing qsapp.com/archives and github.qsapp.com/ pages with GH Releases. Here are the steps we need to do:
gh-pages
branch in the main repo and turn of GH Pages integration.The text was updated successfully, but these errors were encountered: