Compare commits

...

10 Commits

Author SHA1 Message Date
Feross Aboukhadijeh
a578d7555f CHANGELOG 2016-03-21 23:39:28 -07:00
Feross Aboukhadijeh
dff969f955 release: create fresh node_modules folder 2016-03-21 23:37:22 -07:00
Feross Aboukhadijeh
b964240a20 0.0.1 2016-03-21 23:34:48 -07:00
Feross Aboukhadijeh
7f7a395d67 AUTHORS.md: exclude duplicate author 2016-03-21 23:34:32 -07:00
Feross Aboukhadijeh
475ef8c6d0 add release scripts 2016-03-21 23:33:31 -07:00
Feross Aboukhadijeh
e269489639 fix changelog format 2016-03-21 23:24:00 -07:00
Feross Aboukhadijeh
20d5d5d60d Sign the app before producing the .zip file 2016-03-21 22:43:17 -07:00
Feross Aboukhadijeh
590dc99c51 Merge pull request #198 from feross/update
Add CHANGELOG.md; set update check delay to 10s
2016-03-21 22:01:58 -07:00
Feross Aboukhadijeh
10e9b36aea AUTO_UPDATE_CHECK_STARTUP_DELAY = 10 seconds 2016-03-21 21:45:27 -07:00
Feross Aboukhadijeh
5250f55bf7 add CHANGELOG.md 2016-03-21 21:44:49 -07:00
10 changed files with 115 additions and 34 deletions

32
CHANGELOG.md Normal file
View File

@@ -0,0 +1,32 @@
# WebTorrent.app Version History
## v0.0.1
- Wait 10 seconds (instead of 60 seconds) after app launch before checking for updates.
## v0.0.0
The first official release of WebTorrent.app, the streaming torrent client for OS X,
Windows, and Linux. For now, we're only releasing binaries for OS X.
WebTorrent.app is in ALPHA and under very active development  expect lots more polish in
the coming weeks! If you know JavaScript and want to help us out, there's
[lots to do](https://github.com/feross/webtorrent-app/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+contribution%22)!
### Features
- **Lightweight, fast torrent client**
- **Beautiful user experience**
- **Instantly stream video and audio** from torrents!
- WebTorrent fetches file pieces from the network **on-demand**, for instant playback.
- Even when the file is not fully downloaded, **seeking still works!** (Seeking just reprioritizes what pieces are fetched from the network.)
- Stream videos to **AirPlay** and **Chromecast**
- **Pure Javascript**, so it's very easy to contribute code!
- Based on the most popular and comprehensive torrent package in Node.js, [`webtorrent`](https://www.npmjs.com/package/webtorrent).
- Lots of **features**, without the bloat:
- Opens magnet links and .torrent files
- Drag-and-drop makes adding torrents easy!
- Seed files/folders by dragging them onto the app
- Discovers peers via tracker servers, DHT (Distributed Hash Table), and peer exchange
- Make the video window "float on top" for watching video while you work!
- Supports WebTorrent protocol  for connecting to WebRTC peers (i.e. web browsers)

View File

@@ -180,50 +180,59 @@ function buildDarwin (cb) {
infoPlist.NSHumanReadableCopyright = config.APP_COPYRIGHT
fs.writeFileSync(infoPlistPath, plist.build(infoPlist))
// Copy torrent file icon into app bundle
cp.execSync(`cp ${config.APP_FILE_ICON + '.icns'} ${resourcesPath}`)
var zipPath = path.join(buildPath[0], BUILD_NAME + '.zip')
cp.execSync(`zip -r -y ${zipPath} ${appPath}`)
/*
* Signing OS X apps for distribution outside the App Store requires:
*
* - Xcode
* - Xcode Command Line Tools (xcode-select --install)
* - Membership in the Apple Developer Program
*/
if (process.platform === 'darwin') {
/*
* Sign the app with Apple Developer ID certificate. We sign the app for 2 reasons:
* - So the auto-updater (Squirrrel.Mac) can check that app updates are signed by
* the same author as the current version.
* - So users will not a see a warning about the app coming from an "Unidentified
* Developer" when they open it for the first time (OS X Gatekeeper).
*
* To sign an OS X app for distribution outside the App Store, the following are
* required:
* - Xcode
* - Xcode Command Line Tools (xcode-select --install)
* - Membership in the Apple Developer Program
*/
var signOpts = {
app: appPath,
platform: 'darwin',
verbose: true
}
var dmgPath = path.join(buildPath[0], BUILD_NAME + '.dmg')
var dmgOpts = {
basepath: config.ROOT_PATH,
target: dmgPath,
specification: {
title: config.APP_NAME,
icon: config.APP_ICON + '.icns',
background: path.join(config.STATIC_PATH, 'appdmg.png'),
'icon-size': 128,
contents: [
{ x: 122, y: 240, type: 'file', path: appPath },
{ x: 380, y: 240, type: 'link', path: '/Applications' },
// Hide hidden icons out of view, for users who have hidden files shown.
// https://github.com/LinusU/node-appdmg/issues/45#issuecomment-153924954
{ x: 50, y: 500, type: 'position', path: '.background' },
{ x: 100, y: 500, type: 'position', path: '.DS_Store' },
{ x: 150, y: 500, type: 'position', path: '.Trashes' },
{ x: 200, y: 500, type: 'position', path: '.VolumeIcon.icns' }
]
}
}
sign(signOpts, function (err) {
if (err) return cb(err)
// Create .zip file (used by the auto-updater)
var zipPath = path.join(buildPath[0], BUILD_NAME + '.zip')
cp.execSync(`zip -r -y ${zipPath} ${appPath}`)
// Create a .dmg (OS X disk image) file, for easy user installation.
var dmgOpts = {
basepath: config.ROOT_PATH,
target: path.join(buildPath[0], BUILD_NAME + '.dmg'),
specification: {
title: config.APP_NAME,
icon: config.APP_ICON + '.icns',
background: path.join(config.STATIC_PATH, 'appdmg.png'),
'icon-size': 128,
contents: [
{ x: 122, y: 240, type: 'file', path: appPath },
{ x: 380, y: 240, type: 'link', path: '/Applications' },
// Hide hidden icons out of view, for users who have hidden files shown.
// https://github.com/LinusU/node-appdmg/issues/45#issuecomment-153924954
{ x: 50, y: 500, type: 'position', path: '.background' },
{ x: 100, y: 500, type: 'position', path: '.DS_Store' },
{ x: 150, y: 500, type: 'position', path: '.Trashes' },
{ x: 200, y: 500, type: 'position', path: '.VolumeIcon.icns' }
]
}
}
var dmg = appDmg(dmgOpts)
dmg.on('error', cb)
dmg.on('progress', function (info) {

8
bin/release-_post.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
git diff --exit-code
npm run package
git push
git push --tags
gh-release

9
bin/release-_pre.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
set -e
git pull
npm run update-authors
git diff --exit-code
rm -rf node_modules/
npm install
npm test

7
bin/release-major.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
BIN=`dirname $0`
$BIN/release-_pre.sh
npm version major
$BIN/release-_post.sh

7
bin/release-minor.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
BIN=`dirname $0`
$BIN/release-_pre.sh
npm version minor
$BIN/release-_post.sh

7
bin/release-patch.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
BIN=`dirname $0`
$BIN/release-_pre.sh
npm version patch
$BIN/release-_post.sh

View File

@@ -10,6 +10,7 @@ while (<>) {
next if $seen{$_};
next if /<support\@greenkeeper.io>/;
next if /<ungoldman\@gmail.com>/;
next if /<grunjol\@users.noreply.github.com>/;
$seen{$_} = push @authors, "- ", $_;
}
END {

View File

@@ -12,7 +12,7 @@ module.exports = {
APP_VERSION: APP_VERSION,
AUTO_UPDATE_URL: 'https://webtorrent.io/app/update?version=' + APP_VERSION,
AUTO_UPDATE_CHECK_STARTUP_DELAY: 60 * 1000 /* 1 minute */,
AUTO_UPDATE_CHECK_STARTUP_DELAY: 10 * 1000 /* 10 seconds */,
CONFIG_PATH: applicationConfigPath(APP_NAME),
CONFIG_POSTER_PATH: path.join(applicationConfigPath(APP_NAME), 'Posters'),

View File

@@ -1,7 +1,7 @@
{
"name": "webtorrent-app",
"description": "WebTorrent, the streaming torrent client. For OS X, Windows, and Linux.",
"version": "0.0.0",
"version": "0.0.1",
"author": {
"name": "Feross Aboukhadijeh",
"email": "feross@feross.org",
@@ -34,6 +34,7 @@
"electron-osx-sign": "^0.3.0",
"electron-packager": "^5.0.0",
"electron-prebuilt": "0.37.2",
"gh-release": "^2.0.2",
"path-exists": "^2.1.0",
"plist": "^1.2.0",
"rimraf": "^2.5.2",