mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-01 02:25:45 +08:00
feat(update): autoupdater adds an updateLevel
param
Summary: There's now an `updateLevel` that can be set in the config file. It has the valid values of "major", "minor", "patch", and "commit". By default it upgrades on the "patch" level. If you want to be on the bleeding edge, manually change the config file to add `updateLevel: 'commit'` Test Plan: A new `auto-update-manager-spec` :) Reviewers: bengotow Reviewed By: bengotow Differential Revision: https://phab.nylas.com/D1567
This commit is contained in:
parent
4f62a7c9e1
commit
d7f12873b3
7 changed files with 55 additions and 7 deletions
|
@ -7,3 +7,4 @@
|
|||
"calendar-bar",
|
||||
"salesforce"
|
||||
]
|
||||
'updateLevel': 'patch'
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
.attachment-upload-progress {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0px;
|
||||
bottom: 0;
|
||||
height: 2px;
|
||||
width: 0; // Changed by React
|
||||
z-index: 3;
|
||||
|
@ -110,7 +110,7 @@
|
|||
.attachment-bar-bg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0px;
|
||||
bottom: 0;
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
|
|
|
@ -34,7 +34,7 @@ textFieldStub = (className) ->
|
|||
render: -> <div className={className}>{@props.children}</div>
|
||||
focus: ->
|
||||
|
||||
passThroughStub = (props={})->
|
||||
passThroughStub = (props={}) ->
|
||||
React.createClass
|
||||
render: -> <div {...props}>{props.children}</div>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "nylas",
|
||||
"productName": "Nylas",
|
||||
"version": "0.178.0",
|
||||
"version": "0.1.0",
|
||||
"description": "An email OS",
|
||||
"main": "./src/browser/main.js",
|
||||
"repository": {
|
||||
|
|
41
spec-nylas/auto-update-manager-spec.coffee
Normal file
41
spec-nylas/auto-update-manager-spec.coffee
Normal file
|
@ -0,0 +1,41 @@
|
|||
AutoUpdateManager = require '../src/browser/auto-update-manager'
|
||||
|
||||
describe "AutoUpdateManager", ->
|
||||
c1 = get: ->
|
||||
c2 = get: -> "major"
|
||||
c3 = get: -> "minor"
|
||||
c4 = get: -> "patch"
|
||||
c5 = get: -> "commit"
|
||||
c6 = get: -> "foo"
|
||||
|
||||
base = "https://edgehill.nylas.com/update-check?version="
|
||||
|
||||
beforeEach ->
|
||||
@feedUrl = (version, config) ->
|
||||
m = new AutoUpdateManager(version, config)
|
||||
spyOn(m, "setupAutoUpdater")
|
||||
return m.feedUrl
|
||||
|
||||
describe "with attached commit version", ->
|
||||
beforeEach ->
|
||||
@v = "3.222.1-abc"
|
||||
|
||||
it "correctly sets the feedURL", ->
|
||||
expect(@feedUrl(@v, c1)).toBe "#{base}3.222.1-abc&level=patch"
|
||||
expect(@feedUrl(@v, c2)).toBe "#{base}3.222.1-abc&level=major"
|
||||
expect(@feedUrl(@v, c3)).toBe "#{base}3.222.1-abc&level=minor"
|
||||
expect(@feedUrl(@v, c4)).toBe "#{base}3.222.1-abc&level=patch"
|
||||
expect(@feedUrl(@v, c5)).toBe "#{base}3.222.1-abc&level=commit"
|
||||
expect(@feedUrl(@v, c6)).toBe "#{base}3.222.1-abc&level=patch"
|
||||
|
||||
describe "with no attached commit", ->
|
||||
beforeEach ->
|
||||
@v = "3.222.1"
|
||||
|
||||
it "correctly sets the feedURL", ->
|
||||
expect(@feedUrl(@v, c1)).toBe "#{base}3.222.1&level=patch"
|
||||
expect(@feedUrl(@v, c2)).toBe "#{base}3.222.1&level=major"
|
||||
expect(@feedUrl(@v, c3)).toBe "#{base}3.222.1&level=minor"
|
||||
expect(@feedUrl(@v, c4)).toBe "#{base}3.222.1&level=patch"
|
||||
expect(@feedUrl(@v, c5)).toBe "#{base}3.222.1&level=commit"
|
||||
expect(@feedUrl(@v, c6)).toBe "#{base}3.222.1&level=patch"
|
|
@ -77,7 +77,7 @@ class Application
|
|||
|
||||
@databases = {}
|
||||
@windowManager = new WindowManager({@resourcePath, @config, @devMode, @safeMode})
|
||||
@autoUpdateManager = new AutoUpdateManager(@version)
|
||||
@autoUpdateManager = new AutoUpdateManager(@version, @config)
|
||||
@applicationMenu = new ApplicationMenu(@version)
|
||||
@nylasProtocolHandler = new NylasProtocolHandler(@resourcePath, @safeMode)
|
||||
|
||||
|
|
|
@ -16,17 +16,23 @@ module.exports =
|
|||
class AutoUpdateManager
|
||||
_.extend @prototype, EventEmitter.prototype
|
||||
|
||||
constructor: (@version) ->
|
||||
constructor: (@version, @config) ->
|
||||
@state = IdleState
|
||||
if process.platform is 'win32'
|
||||
# Squirrel for Windows can't handle query params
|
||||
# https://github.com/Squirrel/Squirrel.Windows/issues/132
|
||||
@feedUrl = 'https://edgehill.nylas.com/update-check'
|
||||
else
|
||||
@feedUrl = "https://edgehill.nylas.com/update-check?version=#{@version}"
|
||||
upgradeLevel = @getUpgradeLevel()
|
||||
@feedUrl = "https://edgehill.nylas.com/update-check?version=#{@version}&level=#{upgradeLevel}"
|
||||
|
||||
process.nextTick => @setupAutoUpdater()
|
||||
|
||||
getUpgradeLevel: ->
|
||||
lvl = @config.get("updateLevel") ? "patch"
|
||||
if lvl not in ["major", "minor", "patch", "commit"] then lvl = "patch"
|
||||
return lvl
|
||||
|
||||
setupAutoUpdater: ->
|
||||
if process.platform is 'win32'
|
||||
autoUpdater = require './auto-updater-win32'
|
||||
|
|
Loading…
Reference in a new issue