diff --git a/.gitattributes b/.gitattributes index d4ce6e8d..0f2a5847 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,24 +12,25 @@ PreBuiltFrameworks/Solar.framework.zip filter=lfs diff=lfs merge=lfs -text PreBuiltFrameworks/Sparkle.framework.zip filter=lfs diff=lfs merge=lfs -text PreBuiltFrameworks/SwiftyBeaver.framework.zip filter=lfs diff=lfs merge=lfs -text Releases/Lunar-latest.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.0.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.6.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.1.1.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.1.2.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.1.1.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.2.1.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.1.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.7.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.0.0.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.0.1.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.0.3.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.1.0.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.2.0.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.2.2.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.2.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.3.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.4.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.0.5.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-1.1.0.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.0.2.dmg filter=lfs diff=lfs merge=lfs -text -Releases/Lunar-2.3.0.dmg filter=lfs diff=lfs merge=lfs -text +Releases/Lunar-2.3.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.1.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.2.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.3.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.6.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.1.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.0.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.0.2.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.2.2.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.4.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.5.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.1.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.0.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.3.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.2.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.7.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.2.1.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-1.0.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.0.3.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.1.0.dmg filter=lfs diff=lfs merge=lfs -text +LegacyReleases/Lunar-2.1.2.dmg filter=lfs diff=lfs merge=lfs -text diff --git a/.gitsecret/paths/mapping.cfg b/.gitsecret/paths/mapping.cfg index e9657600..2948aa2b 100644 --- a/.gitsecret/paths/mapping.cfg +++ b/.gitsecret/paths/mapping.cfg @@ -1,2 +1 @@ .env.sh:4fa64b9b29471e1e73dbd99721e6cdda9efd2b753a01df1f1057ecf17f22c3f7 -Lunar/Resources/dsa_priv.pem:4724e8ee0055cf3ddc55ca528691955d68879ec8abaafd3200cdfa20298ea1d9 diff --git a/Releases/Lunar-1.0.0.dmg b/LegacyReleases/Lunar-1.0.0.dmg similarity index 100% rename from Releases/Lunar-1.0.0.dmg rename to LegacyReleases/Lunar-1.0.0.dmg diff --git a/Releases/Lunar-1.0.1.dmg b/LegacyReleases/Lunar-1.0.1.dmg similarity index 100% rename from Releases/Lunar-1.0.1.dmg rename to LegacyReleases/Lunar-1.0.1.dmg diff --git a/Releases/Lunar-1.0.2.dmg b/LegacyReleases/Lunar-1.0.2.dmg similarity index 100% rename from Releases/Lunar-1.0.2.dmg rename to LegacyReleases/Lunar-1.0.2.dmg diff --git a/Releases/Lunar-1.0.3.dmg b/LegacyReleases/Lunar-1.0.3.dmg similarity index 100% rename from Releases/Lunar-1.0.3.dmg rename to LegacyReleases/Lunar-1.0.3.dmg diff --git a/Releases/Lunar-1.0.4.dmg b/LegacyReleases/Lunar-1.0.4.dmg similarity index 100% rename from Releases/Lunar-1.0.4.dmg rename to LegacyReleases/Lunar-1.0.4.dmg diff --git a/Releases/Lunar-1.0.5.dmg b/LegacyReleases/Lunar-1.0.5.dmg similarity index 100% rename from Releases/Lunar-1.0.5.dmg rename to LegacyReleases/Lunar-1.0.5.dmg diff --git a/Releases/Lunar-1.0.6.dmg b/LegacyReleases/Lunar-1.0.6.dmg similarity index 100% rename from Releases/Lunar-1.0.6.dmg rename to LegacyReleases/Lunar-1.0.6.dmg diff --git a/Releases/Lunar-1.0.7.dmg b/LegacyReleases/Lunar-1.0.7.dmg similarity index 100% rename from Releases/Lunar-1.0.7.dmg rename to LegacyReleases/Lunar-1.0.7.dmg diff --git a/Releases/Lunar-1.1.0.dmg b/LegacyReleases/Lunar-1.1.0.dmg similarity index 100% rename from Releases/Lunar-1.1.0.dmg rename to LegacyReleases/Lunar-1.1.0.dmg diff --git a/Releases/Lunar-1.1.1.dmg b/LegacyReleases/Lunar-1.1.1.dmg similarity index 100% rename from Releases/Lunar-1.1.1.dmg rename to LegacyReleases/Lunar-1.1.1.dmg diff --git a/Releases/Lunar-2.0.0.dmg b/LegacyReleases/Lunar-2.0.0.dmg similarity index 100% rename from Releases/Lunar-2.0.0.dmg rename to LegacyReleases/Lunar-2.0.0.dmg diff --git a/Releases/Lunar-2.0.1.dmg b/LegacyReleases/Lunar-2.0.1.dmg similarity index 100% rename from Releases/Lunar-2.0.1.dmg rename to LegacyReleases/Lunar-2.0.1.dmg diff --git a/Releases/Lunar-2.0.2.dmg b/LegacyReleases/Lunar-2.0.2.dmg similarity index 100% rename from Releases/Lunar-2.0.2.dmg rename to LegacyReleases/Lunar-2.0.2.dmg diff --git a/Releases/Lunar-2.0.3.dmg b/LegacyReleases/Lunar-2.0.3.dmg similarity index 100% rename from Releases/Lunar-2.0.3.dmg rename to LegacyReleases/Lunar-2.0.3.dmg diff --git a/Releases/Lunar-2.1.0.dmg b/LegacyReleases/Lunar-2.1.0.dmg similarity index 100% rename from Releases/Lunar-2.1.0.dmg rename to LegacyReleases/Lunar-2.1.0.dmg diff --git a/Releases/Lunar-2.1.1.dmg b/LegacyReleases/Lunar-2.1.1.dmg similarity index 100% rename from Releases/Lunar-2.1.1.dmg rename to LegacyReleases/Lunar-2.1.1.dmg diff --git a/Releases/Lunar-2.1.2.dmg b/LegacyReleases/Lunar-2.1.2.dmg similarity index 100% rename from Releases/Lunar-2.1.2.dmg rename to LegacyReleases/Lunar-2.1.2.dmg diff --git a/Releases/Lunar-2.2.0.dmg b/LegacyReleases/Lunar-2.2.0.dmg similarity index 100% rename from Releases/Lunar-2.2.0.dmg rename to LegacyReleases/Lunar-2.2.0.dmg diff --git a/Releases/Lunar-2.2.1.dmg b/LegacyReleases/Lunar-2.2.1.dmg similarity index 100% rename from Releases/Lunar-2.2.1.dmg rename to LegacyReleases/Lunar-2.2.1.dmg diff --git a/Releases/Lunar-2.2.2.dmg b/LegacyReleases/Lunar-2.2.2.dmg similarity index 100% rename from Releases/Lunar-2.2.2.dmg rename to LegacyReleases/Lunar-2.2.2.dmg diff --git a/Releases/Lunar-2.3.0.dmg b/LegacyReleases/Lunar-2.3.0.dmg similarity index 100% rename from Releases/Lunar-2.3.0.dmg rename to LegacyReleases/Lunar-2.3.0.dmg diff --git a/LegacyReleases/appcast.xml b/LegacyReleases/appcast.xml new file mode 100644 index 00000000..445243de --- /dev/null +++ b/LegacyReleases/appcast.xml @@ -0,0 +1,246 @@ + + + + Lunar + + 1.0.0 + Tue, 03 Jul 2018 18:13:23 +0300 + 10.11 + + + + 1.0.1 + Thu, 05 Jul 2018 13:24:40 +0300 + 10.11 + + +

Fixes

  • Fixed crash on missing time for sunrise
  • Better check cases where Add App button layer isn't initialized
  • Make sure brightness/contrast changes contain both old and new values
]]> +
+ +

Fixes

  • Fixed crash on missing time for sunrise
  • Better check cases where Add App button layer isn't initialized
  • Make sure brightness/contrast changes contain both old and new values
]]> +
+
+ + 1.0.2 + Thu, 05 Jul 2018 15:32:05 +0300 + 10.11 + + +

Improvements

  • Use sunrise/sunset instead of civilSunrise/civilSunset
]]> +
+ +

Improvements

  • Use sunrise/sunset instead of civilSunrise/civilSunset
]]> +
+
+ + 1.0.3 + Thu, 05 Jul 2018 22:26:52 +0300 + 10.11 + + +

Additions

  • Donation link

Fixes

  • Try to get rid of crashes when readapting to max brightness change
]]> +
+ +

Additions

  • Donation link

Fixes

  • Try to get rid of crashes when readapting to max brightness change
]]> +
+
+ + 1.0.4 + Sat, 07 Jul 2018 00:34:53 +0300 + 10.11 + + +

Fixes

  • Fix compatibility with macOS 10.11
]]> +
+ +

Fixes

  • Fix compatibility with macOS 10.11
]]> +
+
+ + 1.0.5 + Sat, 07 Jul 2018 01:38:16 +0300 + 10.11 + + +

Fixes

  • Fix a crash when monitor serials aren't unique

Dev

  • Add more context to help debugging errors
]]> +
+ +

Fixes

  • Fix a crash when monitor serials aren't unique

Dev

  • Add more context to help debugging errors
]]> +
+
+ + 1.0.6 + Sat, 07 Jul 2018 12:29:29 +0300 + 10.11 + + +

Fixes

  • Cap interpolated values between 0 - 100
  • Fallback to generated display names as it is impossible to extract the real name

Dev

  • Add more logging
]]> +
+ +

Fixes

  • Cap interpolated values between 0 - 100
  • Fallback to generated display names as it is impossible to extract the real name

Dev

  • Add more logging
]]> +
+
+ + 1.0.7 + Sat, 07 Jul 2018 18:48:03 +0300 + 10.11 + + +

Dev

  • Add temporary remote logging to help fix some annoying crashes
]]> +
+ +

Dev

  • Add temporary remote logging to help fix some annoying crashes
]]> +
+
+ + 1.1.0 + Sun, 08 Jul 2018 11:49:08 +0300 + 10.11 + + +

Fixes

  • Fix stupid mistake that caused the app to crash for all users
]]> +
+ +

Fixes

  • Fix stupid mistake that caused the app to crash for all users
]]> +
+
+ + 1.1.1 + Sun, 08 Jul 2018 19:24:50 +0300 + 10.11 + + +

Fixes

  • Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
  • Fix an error that prevented the settings to persist in the database
]]> +
+ +

Fixes

  • Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
  • Fix an error that prevented the settings to persist in the database
]]> +
+
+ + 2.0.0 + Wed, 18 Jul 2018 22:22:20 +0300 + 10.11 + + +

Features

  • Sync mode
  • The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
  • The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
  • There are new configurable offsets on the settings page to make the synchronization perfect

Fixes

  • Disable adaptive brightness when no monitor is connected to get to zero energy impact
  • Fix interpolation formula
  • Disable configurable values when Manual mode is on
]]> +
+ +

Features

  • Sync mode
  • The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
  • The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
  • There are new configurable offsets on the settings page to make the synchronization perfect

Fixes

  • Disable adaptive brightness when no monitor is connected to get to zero energy impact
  • Fix interpolation formula
  • Disable configurable values when Manual mode is on
]]> +
+
+ + 2.0.1 + Thu, 19 Jul 2018 14:15:20 +0300 + 10.11 + + +

Fixes

  • Try not to insert nils in the database
]]> +
+ +

Fixes

  • Try not to insert nils in the database
]]> +
+
+ + 2.0.2 + Sat, 21 Jul 2018 19:40:13 +0300 + 10.11 + + +

Fixes

  • Fix a few crashes caused by backing layers and subviews not being available on load
]]> +
+ +

Fixes

  • Fix a few crashes caused by backing layers and subviews not being available on load
]]> +
+
+ + 2.0.3 + Tue, 24 Jul 2018 09:31:08 +0300 + 10.11 + + +

Improvements

  • Set offset limits to [-100, 90]
  • Adjust offsetting formula to get more symmetrical values
]]> +
+ +

Improvements

  • Set offset limits to [-100, 90]
  • Adjust offsetting formula to get more symmetrical values
]]> +
+
+ + 2.1.0 + Wed, 08 Aug 2018 00:50:54 +0300 + 10.11 + + +

Features

  • Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongelPR #2]
  • Add individual Lock Buttons for brightness and contrast

Improvements

  • Offsets now work in Location mode too
  • Manually adjusting brightness doesn't force Manual mode anymore

Fixes

  • The Adaptive toggle below each monitor now works properly
  • App Exceptions were not always working, fixed those cases
]]> +
+ +

Features

  • Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongelPR #2]
  • Add individual Lock Buttons for brightness and contrast

Improvements

  • Offsets now work in Location mode too
  • Manually adjusting brightness doesn't force Manual mode anymore

Fixes

  • The Adaptive toggle below each monitor now works properly
  • App Exceptions were not always working, fixed those cases
]]> +
+
+ + 2.1.1 + Tue, 14 Aug 2018 19:31:29 +0300 + 10.11 + + +

Fixes

  • Remove SwiftyBeaver dependency from LunarService
]]> +
+ +

Fixes

  • Remove SwiftyBeaver dependency from LunarService
]]> +
+
+ + 2.1.2 + Thu, 23 Aug 2018 14:08:26 +0300 + 10.11 + + + + 2.2.0 + Sun, 10 Mar 2019 20:57:54 +0200 + 10.11 + + +

Fixes

  • Make sure user can always swipe to settings page

Features

  • Add page for configuring hotkeys
  • Add menu item for toggling "Start at Login"
]]> +
+ +

Fixes

  • Make sure user can always swipe to settings page

Features

  • Add page for configuring hotkeys
  • Add menu item for toggling "Start at Login"
]]> +
+
+ + 2.2.1 + Mon, 11 Mar 2019 17:34:47 +0200 + 10.11 + + +

Fixes

  • Make the display page white when swiping back from settings
  • Reflect hotkey changes on the menu items

Improvements

  • Add button for going to hotkeys page
]]> +
+ +

Fixes

  • Make the display page white when swiping back from settings
  • Reflect hotkey changes on the menu items

Improvements

  • Add button for going to hotkeys page
]]> +
+
+ + 2.2.2 + Wed, 13 Mar 2019 19:30:24 +0200 + 10.11 + + +

Fixes

  • Don't cap brightness/contrast on manual mode
]]> +
+ +

Fixes

  • Don't cap brightness/contrast on manual mode
]]> +
+
+ + 2.3.0 + Mon, 18 Mar 2019 22:02:33 +0200 + 10.11 + + +

Fixes

  • Use brightness/contrast offsets only in Sync mode

Features

  • Smooth Transition option [Thanks to Tim Traversy! @timtraversyPR #14]
    • This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
    • Check settings page to enable the option
    • I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
  • Configurable interpolation factor for Location mode

Improvements

  • Improve charts speed and efficiency with SIMD
  • Smoother chart curves
]]> +
+ +

Fixes

  • Use brightness/contrast offsets only in Sync mode

Features

  • Smooth Transition option [Thanks to Tim Traversy! @timtraversyPR #14]
    • This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
    • Check settings page to enable the option
    • I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
  • Configurable interpolation factor for Location mode

Improvements

  • Improve charts speed and efficiency with SIMD
  • Smoother chart curves
]]> +
+
+
+
\ No newline at end of file diff --git a/Lunar.xcodeproj/project.pbxproj b/Lunar.xcodeproj/project.pbxproj index 185dccbf..019a2d6d 100644 --- a/Lunar.xcodeproj/project.pbxproj +++ b/Lunar.xcodeproj/project.pbxproj @@ -57,7 +57,6 @@ C794E1641FEE84DF00549462 /* ToggleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C794E1631FEE84DF00549462 /* ToggleButton.swift */; }; C794E1741FEFE31A00549462 /* ScrollableTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C794E1731FEFE31A00549462 /* ScrollableTextField.swift */; }; C794E1771FF01EF500549462 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = C794E1751FF01EF500549462 /* Model.xcdatamodeld */; }; - C7A2574220EA249B003B3A84 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = C7A2574120EA249B003B3A84 /* dsa_pub.pem */; }; C7A2BDDA223FC8D100C910E3 /* Surge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7A2BDD9223FC8D100C910E3 /* Surge.framework */; }; C7A2BDDB223FC8D100C910E3 /* Surge.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C7A2BDD9223FC8D100C910E3 /* Surge.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C7A2BDEC22411E9500C910E3 /* Charts.framework.dSYM in CopyFiles */ = {isa = PBXBuildFile; fileRef = C7A2BDDF22411E9300C910E3 /* Charts.framework.dSYM */; }; @@ -207,7 +206,6 @@ C794E1631FEE84DF00549462 /* ToggleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleButton.swift; sourceTree = ""; }; C794E1731FEFE31A00549462 /* ScrollableTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableTextField.swift; sourceTree = ""; }; C794E1761FF01EF500549462 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; - C7A2574120EA249B003B3A84 /* dsa_pub.pem */ = {isa = PBXFileReference; lastKnownFileType = text; name = dsa_pub.pem; path = Lunar/Resources/dsa_pub.pem; sourceTree = ""; }; C7A2BDD9223FC8D100C910E3 /* Surge.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Surge.framework; path = Frameworks/Surge.framework; sourceTree = ""; }; C7A2BDDF22411E9300C910E3 /* Charts.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = Charts.framework.dSYM; path = Frameworks/Charts.framework.dSYM; sourceTree = ""; }; C7A2BDE022411E9300C910E3 /* SwiftyJSON.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = SwiftyJSON.framework.dSYM; path = Frameworks/SwiftyJSON.framework.dSYM; sourceTree = ""; }; @@ -376,7 +374,6 @@ C750833C2222865E0020270E /* SwiftyBeaver.framework */, C750833A2222865E0020270E /* SwiftyJSON.framework */, C75083342222865D0020270E /* WAYWindow.framework */, - C7A2574120EA249B003B3A84 /* dsa_pub.pem */, C750835D2222BEAA0020270E /* Crashlytics.framework */, C750835E2222BEAA0020270E /* Fabric.framework */, C7AEC7F71FD0B4350039B562 /* Lunar */, @@ -542,7 +539,6 @@ files = ( C7AEC7FD1FD0B4350039B562 /* Assets.xcassets in Resources */, C7AEC8001FD0B4350039B562 /* Main.storyboard in Resources */, - C7A2574220EA249B003B3A84 /* dsa_pub.pem in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Lunar/Info.plist b/Lunar/Info.plist index febc8ff3..fe73277b 100644 --- a/Lunar/Info.plist +++ b/Lunar/Info.plist @@ -19,9 +19,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.3.0 + 2.3.1 CFBundleVersion - 2.3.0 + 2.3.1 Fabric Kits @@ -75,7 +75,7 @@ NSApplication SUFeedURL https://lunarapp.site/appcast.xml - SUPublicDSAKeyFile - dsa_pub.pem + SUPublicEDKey + lqnO6tg2A9evTIFo2SC9ArZ6NS84gtBshcAWdwh12xQ= diff --git a/Lunar/Resources/dsa_priv.pem.secret b/Lunar/Resources/dsa_priv.pem.secret deleted file mode 100644 index dd5fe1f5..00000000 Binary files a/Lunar/Resources/dsa_priv.pem.secret and /dev/null differ diff --git a/Lunar/Resources/dsa_pub.pem b/Lunar/Resources/dsa_pub.pem deleted file mode 100644 index 45ecf1e8..00000000 --- a/Lunar/Resources/dsa_pub.pem +++ /dev/null @@ -1,36 +0,0 @@ ------BEGIN PUBLIC KEY----- -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 -PjFF/W4wTaPnIkjt9gXkxF/K9FDkkSpbI1U= ------END PUBLIC KEY----- diff --git a/ReleaseNotes/2.3.1.md b/ReleaseNotes/2.3.1.md new file mode 100644 index 00000000..3638f96e --- /dev/null +++ b/ReleaseNotes/2.3.1.md @@ -0,0 +1,7 @@ +## Fixes + +- Check chart entries bounds before updating + +## Improvements + +- Move to edDSA key for signing updates \ No newline at end of file diff --git a/Releases/Lunar-2.3.1.dmg b/Releases/Lunar-2.3.1.dmg new file mode 100644 index 00000000..6d3be533 --- /dev/null +++ b/Releases/Lunar-2.3.1.dmg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fcdecec0f3cd92c507de202419b09fe3afb7b5fba10237c0b6db0a3bd05097e +size 14406819 diff --git a/Releases/Lunar-latest.dmg b/Releases/Lunar-latest.dmg index c9b9e297..6d3be533 100644 --- a/Releases/Lunar-latest.dmg +++ b/Releases/Lunar-latest.dmg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86de6cf6485c5a0de56d5f99f8bfeba470e14a5267a5bb8535bfb01e6d4a5acd -size 14402165 +oid sha256:3fcdecec0f3cd92c507de202419b09fe3afb7b5fba10237c0b6db0a3bd05097e +size 14406819 diff --git a/Releases/appcast.xml b/Releases/appcast.xml index 49343ca5..2c41dbf8 100644 --- a/Releases/appcast.xml +++ b/Releases/appcast.xml @@ -1,132 +1,15 @@ - - + + Lunar - 1.0.0 - Tue, 03 Jul 2018 18:13:23 +0300 + 2.3.1 + Sat, 23 Mar 2019 14:55:46 +0200 10.11 - + + +

Fixes

  • Check chart entries bounds before updating

Improvements

  • Move to edDSA key for signing updates
]]> +
- - 1.0.1 - Thu, 05 Jul 2018 13:24:40 +0300 - 10.11 - -

Fixes

  • Fixed crash on missing time for sunrise
  • Better check cases where Add App button layer isn't initialized
  • Make sure brightness/contrast changes contain both old and new values
]]>

Fixes

  • Fixed crash on missing time for sunrise
  • Better check cases where Add App button layer isn't initialized
  • Make sure brightness/contrast changes contain both old and new values
]]>
- - 1.0.2 - Thu, 05 Jul 2018 15:32:05 +0300 - 10.11 - -

Improvements

  • Use sunrise/sunset instead of civilSunrise/civilSunset
]]>

Improvements

  • Use sunrise/sunset instead of civilSunrise/civilSunset
]]>
- - 1.0.3 - Thu, 05 Jul 2018 22:26:52 +0300 - 10.11 - -

Additions

  • Donation link

Fixes

  • Try to get rid of crashes when readapting to max brightness change
]]>

Additions

  • Donation link

Fixes

  • Try to get rid of crashes when readapting to max brightness change
]]>
- - 1.0.4 - Sat, 07 Jul 2018 00:34:53 +0300 - 10.11 - -

Fixes

  • Fix compatibility with macOS 10.11
]]>

Fixes

  • Fix compatibility with macOS 10.11
]]>
- - 1.0.5 - Sat, 07 Jul 2018 01:38:16 +0300 - 10.11 - -

Fixes

  • Fix a crash when monitor serials aren't unique

Dev

  • Add more context to help debugging errors
]]>

Fixes

  • Fix a crash when monitor serials aren't unique

Dev

  • Add more context to help debugging errors
]]>
- - 1.0.6 - Sat, 07 Jul 2018 12:29:29 +0300 - 10.11 - -

Fixes

  • Cap interpolated values between 0 - 100
  • Fallback to generated display names as it is impossible to extract the real name

Dev

  • Add more logging
]]>

Fixes

  • Cap interpolated values between 0 - 100
  • Fallback to generated display names as it is impossible to extract the real name

Dev

  • Add more logging
]]>
- - 1.0.7 - Sat, 07 Jul 2018 18:48:03 +0300 - 10.11 - -

Dev

  • Add temporary remote logging to help fix some annoying crashes
]]>

Dev

  • Add temporary remote logging to help fix some annoying crashes
]]>
- - 1.1.0 - Sun, 08 Jul 2018 11:49:08 +0300 - 10.11 - -

Fixes

  • Fix stupid mistake that caused the app to crash for all users
]]>

Fixes

  • Fix stupid mistake that caused the app to crash for all users
]]>
- - 1.1.1 - Sun, 08 Jul 2018 19:24:50 +0300 - 10.11 - -

Fixes

  • Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
  • Fix an error that prevented the settings to persist in the database
]]>

Fixes

  • Make sure Adaptive activity isn't scheduled more than once so that percent hotkeys work as expected
  • Fix an error that prevented the settings to persist in the database
]]>
- - 2.0.0 - Wed, 18 Jul 2018 22:22:20 +0300 - 10.11 - -

Features

  • Sync mode
  • The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
  • The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
  • There are new configurable offsets on the settings page to make the synchronization perfect

Fixes

  • Disable adaptive brightness when no monitor is connected to get to zero energy impact
  • Fix interpolation formula
  • Disable configurable values when Manual mode is on
]]>

Features

  • Sync mode
  • The external monitor's brightness/contrast will be kept in sync with the brightness/contrast of the built-in display
  • The external monitor's brightness/contrast will still be kept within the configured per-monitor limits
  • There are new configurable offsets on the settings page to make the synchronization perfect

Fixes

  • Disable adaptive brightness when no monitor is connected to get to zero energy impact
  • Fix interpolation formula
  • Disable configurable values when Manual mode is on
]]>
- - 2.0.1 - Thu, 19 Jul 2018 14:15:20 +0300 - 10.11 - -

Fixes

  • Try not to insert nils in the database
]]>

Fixes

  • Try not to insert nils in the database
]]>
- - 2.0.2 - Sat, 21 Jul 2018 19:40:13 +0300 - 10.11 - -

Fixes

  • Fix a few crashes caused by backing layers and subviews not being available on load
]]>

Fixes

  • Fix a few crashes caused by backing layers and subviews not being available on load
]]>
- - 2.0.3 - Tue, 24 Jul 2018 09:31:08 +0300 - 10.11 - -

Improvements

  • Set offset limits to [-100, 90]
  • Adjust offsetting formula to get more symmetrical values
]]>

Improvements

  • Set offset limits to [-100, 90]
  • Adjust offsetting formula to get more symmetrical values
]]>
- - 2.1.0 - Wed, 08 Aug 2018 00:50:54 +0300 - 10.11 - -

Features

  • Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongel PR #2]
  • Add individual Lock Buttons for brightness and contrast

Improvements

  • Offsets now work in Location mode too
  • Manually adjusting brightness doesn't force Manual mode anymore

Fixes

  • The Adaptive toggle below each monitor now works properly
  • App Exceptions were not always working, fixed those cases
]]>

Features

  • Add hotkeys for increasing/decreasing brightness/contrast [Thanks Hua Duong Tran! @duongel PR #2]
  • Add individual Lock Buttons for brightness and contrast

Improvements

  • Offsets now work in Location mode too
  • Manually adjusting brightness doesn't force Manual mode anymore

Fixes

  • The Adaptive toggle below each monitor now works properly
  • App Exceptions were not always working, fixed those cases
]]>
- - 2.1.1 - Tue, 14 Aug 2018 19:31:29 +0300 - 10.11 - -

Fixes

  • Remove SwiftyBeaver dependency from LunarService
]]>

Fixes

  • Remove SwiftyBeaver dependency from LunarService
]]>
- - 2.1.2 - Thu, 23 Aug 2018 14:08:26 +0300 - 10.11 - - - - 2.2.0 - Sun, 10 Mar 2019 20:57:54 +0200 - 10.11 - -

Fixes

  • Make sure user can always swipe to settings page

Features

  • Add page for configuring hotkeys
  • Add menu item for toggling "Start at Login"
]]>

Fixes

  • Make sure user can always swipe to settings page

Features

  • Add page for configuring hotkeys
  • Add menu item for toggling "Start at Login"
]]>
- - 2.2.1 - Mon, 11 Mar 2019 17:34:47 +0200 - 10.11 - -

Fixes

  • Make the display page white when swiping back from settings
  • Reflect hotkey changes on the menu items

Improvements

  • Add button for going to hotkeys page
]]>

Fixes

  • Make the display page white when swiping back from settings
  • Reflect hotkey changes on the menu items

Improvements

  • Add button for going to hotkeys page
]]>
- - 2.2.2 - Wed, 13 Mar 2019 19:30:24 +0200 - 10.11 - -

Fixes

  • Don't cap brightness/contrast on manual mode
]]>

Fixes

  • Don't cap brightness/contrast on manual mode
]]>
- - 2.3.0 - Mon, 18 Mar 2019 22:02:33 +0200 - 10.11 - -

Fixes

  • Use brightness/contrast offsets only in Sync mode

Features

  • Smooth Transition option [Thanks to Tim Traversy! @timtraversy PR #14]
    • This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
    • Check settings page to enable the option
    • I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
  • Configurable interpolation factor for Location mode

Improvements

  • Improve charts speed and efficiency with SIMD
  • Smoother chart curves
]]>

Fixes

  • Use brightness/contrast offsets only in Sync mode

Features

  • Smooth Transition option [Thanks to Tim Traversy! @timtraversy PR #14]
    • This makes the brightness/contrast change smoothly from a value to another, instead of jumping directly to that value
    • Check settings page to enable the option
    • I left it off by default because some monitors have a slow response time and smooth transitions end up not being so smooth
  • Configurable interpolation factor for Location mode

Improvements

  • Improve charts speed and efficiency with SIMD
  • Smoother chart curves
]]>
-
+
\ No newline at end of file diff --git a/pack b/pack index 49cf6314..eedbda47 100755 --- a/pack +++ b/pack @@ -49,15 +49,13 @@ xattr -cr $appDmg codesign -fs "Mac Developer: alin.p32@gmail.com (FVP7HX44T5)" $appDmg echo \n(set_color yellow)"Generating AppCast"(set_color normal) -generate_appcast $privKey $releaseDir - -echo \n(set_color red)"Removing delta files"(set_color normal) -rm $releaseDir/*.delta +generate_appcast $releaseDir cp $appDmg $appLatestDmg git lfs track Releases/Lunar-$appVersion.dmg git lfs track Releases/Lunar-latest.dmg +git lfs track Releases/*.delta -echo \n(set_color yellow)"Signing Updates"(set_color normal) -./sign_updates.py "$privKey" +echo \n(set_color yellow)"Fixing appcast"(set_color normal) +./update_appcast.py subl $appcast \ No newline at end of file diff --git a/sign_updates.py b/update_appcast.py similarity index 62% rename from sign_updates.py rename to update_appcast.py index 3c42598e..6eec3b58 100755 --- a/sign_updates.py +++ b/update_appcast.py @@ -1,22 +1,19 @@ #!/usr/bin/env python3 -import os + +# pylint: disable=no-member import re -import subprocess -import sys from pathlib import Path from lxml import etree, html from lxml.builder import ElementMaker from markdown2 import markdown_path -key_path = Path(sys.argv[1]) release_notes = Path.cwd() / "ReleaseNotes" appcast_path = Path.cwd() / "Releases" / "appcast.xml" parser = etree.XMLParser(strip_cdata=False) appcast = etree.parse(str(appcast_path), parser=parser) SPARKLE = "http://www.andymatuschak.org/xml-namespaces/sparkle" -SIGNER = "/usr/local/sbin/sign_update" DELTA_PATTERN = re.compile( r"Lunar([0-9]+\.[0-9]+\.[0-9]+)-([0-9]+\.[0-9]+\.[0-9]+).delta" ) @@ -57,14 +54,6 @@ def sparkle(attr): return f"{{{SPARKLE}}}{attr}" -def get_signature(file): - return ( - subprocess.check_output([SIGNER, file, str(key_path)]) - .decode() - .replace("\n", "") - ) - - for item in appcast.iter("item"): enclosure = item.find("enclosure") description = item.find("description") @@ -73,9 +62,6 @@ def get_signature(file): version = enclosure.attrib[sparkle("version")] enclosure.set("url", f"https://lunarapp.site/download/{version}") - dmg = appcast_path.with_name(f"Lunar-{version}.dmg") - enclosure.set(sparkle("dsaSignature"), get_signature(dmg)) - release_notes_file = release_notes / f"{version}.md" if description is None and release_notes_file.exists(): @@ -94,26 +80,18 @@ def get_signature(file): for delta in item.findall(sparkle("deltas")): item.remove(delta) - # delta_enclosures = [] - # for delta in appcast_path.parent.glob(f"Lunar{version}-*.delta"): - # new_version, old_version = DELTA_PATTERN.match(delta.name).groups() - # enclosure = E.enclosure( - # url=f"https://lunarapp.site/{delta.name}", - # length=str(delta.stat().st_size), - # type="application/octet-stream", - # **{ - # sparkle("version"): new_version, - # sparkle("deltaFrom"): old_version, - # sparkle("dsaSignature"): get_signature(str(delta)), - # }, - # ) - # delta_enclosures.append(enclosure) - # if delta_enclosures: - # item.append( - # ElementMaker(namespace=SPARKLE, nsmap={"sparkle": SPARKLE}).deltas( - # *delta_enclosures - # ) - # ) + delta_enclosures = [] + for delta in appcast_path.parent.glob(f"Lunar{version}-*.delta"): + new_version, old_version = DELTA_PATTERN.match(delta.name).groups() + enclosure = E.enclosure( + url=f"https://lunarapp.site/delta/{new_version}/{old_version}", + length=str(delta.stat().st_size), + type="application/octet-stream", + **{sparkle("version"): new_version, sparkle("deltaFrom"): old_version}, + ) + delta_enclosures.append(enclosure) + if delta_enclosures: + item.append(E.deltas(*delta_enclosures)) appcast.write( str(appcast_path),