mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 12:46:46 +00:00
[GODT-961] Update release notes link
* on release notes, check updates if link missing * on update set release note link * update version and links with every check * clean old release notes * change paths to IEapp notes
This commit is contained in:
8
Makefile
8
Makefile
@ -268,13 +268,13 @@ updates: install-go-mod-outdated
|
|||||||
doc:
|
doc:
|
||||||
godoc -http=:6060
|
godoc -http=:6060
|
||||||
|
|
||||||
release-notes: release-notes/bridge.html release-notes/import-export.html
|
release-notes: release-notes/bridge.html release-notes/ie.html
|
||||||
|
|
||||||
release-notes/bridge.html:
|
release-notes/bridge.html:
|
||||||
./utils/release_notes.sh Bridge
|
./utils/release_notes.sh bridge
|
||||||
|
|
||||||
release-notes/import-export.html:
|
release-notes/ie.html:
|
||||||
./utils/release_notes.sh Import-Export
|
./utils/release_notes.sh ie
|
||||||
|
|
||||||
.PHONY: gofiles
|
.PHONY: gofiles
|
||||||
# Following files are for the whole app so it makes sense to have them in bridge package.
|
# Following files are for the whole app so it makes sense to have them in bridge package.
|
||||||
|
|||||||
@ -147,6 +147,9 @@ func checkAndHandleUpdate(u types.Updater, f frontend.Frontend, autoUpdate bool)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update links in UI
|
||||||
|
f.SetVersion(version)
|
||||||
|
|
||||||
if !u.IsUpdateApplicable(version) {
|
if !u.IsUpdateApplicable(version) {
|
||||||
logrus.Debug("No need to update")
|
logrus.Debug("No need to update")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -95,6 +95,9 @@ func checkAndHandleUpdate(u types.Updater, f frontend.Frontend, autoUpdate bool)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update links in UI
|
||||||
|
f.SetVersion(version)
|
||||||
|
|
||||||
if !u.IsUpdateApplicable(version) {
|
if !u.IsUpdateApplicable(version) {
|
||||||
logrus.Debug("No need to update")
|
logrus.Debug("No need to update")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -230,8 +230,6 @@ func (f *frontendCLI) NotifyManualUpdate(update updater.VersionInfo, canInstall
|
|||||||
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *frontendCLI) NotifySilentUpdateInstalled() {
|
func (f *frontendCLI) SetVersion(version updater.VersionInfo) {}
|
||||||
}
|
func (f *frontendCLI) NotifySilentUpdateInstalled() {}
|
||||||
|
func (f *frontendCLI) NotifySilentUpdateError(err error) {}
|
||||||
func (f *frontendCLI) NotifySilentUpdateError(err error) {
|
|
||||||
}
|
|
||||||
|
|||||||
@ -257,8 +257,6 @@ func (f *frontendCLI) NotifyManualUpdate(update updater.VersionInfo, canInstall
|
|||||||
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *frontendCLI) NotifySilentUpdateInstalled() {
|
func (f *frontendCLI) SetVersion(version updater.VersionInfo) {}
|
||||||
}
|
func (f *frontendCLI) NotifySilentUpdateInstalled() {}
|
||||||
|
func (f *frontendCLI) NotifySilentUpdateError(err error) {}
|
||||||
func (f *frontendCLI) NotifySilentUpdateError(err error) {
|
|
||||||
}
|
|
||||||
|
|||||||
@ -42,6 +42,7 @@ var (
|
|||||||
type Frontend interface {
|
type Frontend interface {
|
||||||
Loop() error
|
Loop() error
|
||||||
NotifyManualUpdate(update updater.VersionInfo, canInstall bool)
|
NotifyManualUpdate(update updater.VersionInfo, canInstall bool)
|
||||||
|
SetVersion(update updater.VersionInfo)
|
||||||
NotifySilentUpdateInstalled()
|
NotifySilentUpdateInstalled()
|
||||||
NotifySilentUpdateError(error)
|
NotifySilentUpdateError(error)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -135,9 +135,7 @@ Item {
|
|||||||
textColor : Style.main.textDisabled
|
textColor : Style.main.textDisabled
|
||||||
fontSize : Style.main.fontSize
|
fontSize : Style.main.fontSize
|
||||||
textUnderline : true
|
textUnderline : true
|
||||||
onClicked : {
|
onClicked : gui.openReleaseNotes()
|
||||||
Qt.openUrlExternally(go.updateReleaseNotesLink)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -303,6 +303,13 @@ Item {
|
|||||||
winMain.bubbleNote.show()
|
winMain.bubbleNote.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openReleaseNotes(){
|
||||||
|
if go.updateReleaseNotesLink == "" {
|
||||||
|
go.checkForUpdates()
|
||||||
|
}
|
||||||
|
Qt.openUrlExternally(go.updateReleaseNotesLink)
|
||||||
|
}
|
||||||
|
|
||||||
// On start
|
// On start
|
||||||
Component.onCompleted : {
|
Component.onCompleted : {
|
||||||
// set messages for translations
|
// set messages for translations
|
||||||
|
|||||||
@ -405,6 +405,14 @@ Item {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
function openReleaseNotes(){
|
||||||
|
if go.updateReleaseNotesLink == "" {
|
||||||
|
go.checkForUpdates()
|
||||||
|
}
|
||||||
|
Qt.openUrlExternally(go.updateReleaseNotesLink)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
property string areYouSureYouWantToQuit : qsTr("There are incomplete processes - some items are not yet transferred. Do you really want to stop and quit?")
|
property string areYouSureYouWantToQuit : qsTr("There are incomplete processes - some items are not yet transferred. Do you really want to stop and quit?")
|
||||||
// On start
|
// On start
|
||||||
Component.onCompleted : {
|
Component.onCompleted : {
|
||||||
|
|||||||
@ -127,9 +127,7 @@ Item {
|
|||||||
font.underline: true
|
font.underline: true
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked : {
|
onClicked : gui.openReleaseNotes()
|
||||||
Qt.openUrlExternally(go.updateReleaseNotesLink)
|
|
||||||
}
|
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -248,9 +248,7 @@ Rectangle {
|
|||||||
target: linkText
|
target: linkText
|
||||||
visible: true
|
visible: true
|
||||||
text: "(" + qsTr("view release notes", "display the release notes from the new version") + ")"
|
text: "(" + qsTr("view release notes", "display the release notes from the new version") + ")"
|
||||||
onClicked: {
|
onClicked: gui.openReleaseNotes()
|
||||||
Qt.openUrlExternally(go.updateReleaseNotesLink)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: actionText
|
target: actionText
|
||||||
|
|||||||
@ -118,14 +118,18 @@ func (f *FrontendQt) Loop() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *FrontendQt) NotifyManualUpdate(update updater.VersionInfo, canInstall bool) {
|
func (f *FrontendQt) NotifyManualUpdate(update updater.VersionInfo, canInstall bool) {
|
||||||
f.Qml.SetUpdateVersion(update.Version.String())
|
f.SetVersion(update)
|
||||||
f.Qml.SetUpdateLandingPage(update.LandingPage)
|
|
||||||
f.Qml.SetUpdateReleaseNotesLink(update.ReleaseNotesPage)
|
|
||||||
f.Qml.SetUpdateCanInstall(canInstall)
|
f.Qml.SetUpdateCanInstall(canInstall)
|
||||||
f.updateInfo = update
|
|
||||||
f.Qml.NotifyManualUpdate()
|
f.Qml.NotifyManualUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *FrontendQt) SetVersion(version updater.VersionInfo) {
|
||||||
|
f.Qml.SetUpdateVersion(version.Version.String())
|
||||||
|
f.Qml.SetUpdateLandingPage(version.LandingPage)
|
||||||
|
f.Qml.SetUpdateReleaseNotesLink(version.ReleaseNotesPage)
|
||||||
|
f.updateInfo = version
|
||||||
|
}
|
||||||
|
|
||||||
func (f *FrontendQt) NotifySilentUpdateInstalled() {
|
func (f *FrontendQt) NotifySilentUpdateInstalled() {
|
||||||
f.Qml.NotifySilentUpdateRestartNeeded()
|
f.Qml.NotifySilentUpdateRestartNeeded()
|
||||||
}
|
}
|
||||||
@ -428,6 +432,8 @@ func (f *FrontendQt) checkForUpdates() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
f.SetVersion(version)
|
||||||
|
|
||||||
if !f.updater.IsUpdateApplicable(version) {
|
if !f.updater.IsUpdateApplicable(version) {
|
||||||
logrus.Debug("No need to update")
|
logrus.Debug("No need to update")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -47,6 +47,9 @@ func (s *FrontendHeadless) NotifyManualUpdate(update updater.VersionInfo, canIns
|
|||||||
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FrontendHeadless) SetVersion(update updater.VersionInfo) {
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FrontendHeadless) NotifySilentUpdateInstalled() {
|
func (s *FrontendHeadless) NotifySilentUpdateInstalled() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -163,14 +163,18 @@ func (s *FrontendQt) Loop() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *FrontendQt) NotifyManualUpdate(update updater.VersionInfo, canInstall bool) {
|
func (s *FrontendQt) NotifyManualUpdate(update updater.VersionInfo, canInstall bool) {
|
||||||
s.Qml.SetUpdateVersion(update.Version.String())
|
s.SetVersion(update)
|
||||||
s.Qml.SetUpdateLandingPage(update.LandingPage)
|
|
||||||
s.Qml.SetUpdateReleaseNotesLink(update.ReleaseNotesPage)
|
|
||||||
s.Qml.SetUpdateCanInstall(canInstall)
|
s.Qml.SetUpdateCanInstall(canInstall)
|
||||||
s.updateInfo = update
|
|
||||||
s.Qml.NotifyManualUpdate()
|
s.Qml.NotifyManualUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FrontendQt) SetVersion(version updater.VersionInfo) {
|
||||||
|
s.Qml.SetUpdateVersion(version.Version.String())
|
||||||
|
s.Qml.SetUpdateLandingPage(version.LandingPage)
|
||||||
|
s.Qml.SetUpdateReleaseNotesLink(version.ReleaseNotesPage)
|
||||||
|
s.updateInfo = version
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FrontendQt) NotifySilentUpdateInstalled() {
|
func (s *FrontendQt) NotifySilentUpdateInstalled() {
|
||||||
s.Qml.NotifySilentUpdateRestartNeeded()
|
s.Qml.NotifySilentUpdateRestartNeeded()
|
||||||
}
|
}
|
||||||
@ -420,6 +424,8 @@ func (s *FrontendQt) checkForUpdates() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.SetVersion(version)
|
||||||
|
|
||||||
if !s.updater.IsUpdateApplicable(version) {
|
if !s.updater.IsUpdateApplicable(version) {
|
||||||
logrus.Debug("No need to update")
|
logrus.Debug("No need to update")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -48,6 +48,9 @@ func (s *FrontendHeadless) NotifyManualUpdate(update updater.VersionInfo, canIns
|
|||||||
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
// NOTE: Save the update somewhere so that it can be installed when user chooses "install now".
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FrontendHeadless) SetVersion(update updater.VersionInfo) {
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FrontendHeadless) NotifySilentUpdateInstalled() {
|
func (s *FrontendHeadless) NotifySilentUpdateInstalled() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
• Message corruption - rare cases of overly long headers
|
|
||||||
• AppleMail crashes (related to timestamps)
|
|
||||||
• Sending messages from aliases in combined inbox mode
|
|
||||||
• Fedora font issues
|
|
||||||
|
|
||||||
For more detailed summary of the changes see https://github.com/ProtonMail/proton-bridge/blob/master/Changelog.md
|
|
||||||
|
|
||||||
|
|
||||||
@ -1 +0,0 @@
|
|||||||
• Installation issues on linux
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
• Improvements to message parsing
|
|
||||||
• Better error handling
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
• Allow an import of already encrypted messages (as cypher text)
|
|
||||||
• Cosmetic GUI changes
|
|
||||||
• Better error handling
|
|
||||||
@ -1,22 +1,23 @@
|
|||||||
// Copyright (c) 2021 Proton Technologies AG
|
|
||||||
//
|
|
||||||
// This file is part of ProtonMail Bridge.
|
|
||||||
//
|
|
||||||
// ProtonMail Bridge is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
//
|
|
||||||
// ProtonMail Bridge is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021 Proton Technologies AG
|
||||||
|
#
|
||||||
|
# This file is part of ProtonMail Bridge.
|
||||||
|
#
|
||||||
|
# ProtonMail Bridge is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# ProtonMail Bridge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
# create QML JSON object from list of golang constants
|
# create QML JSON object from list of golang constants
|
||||||
# run this script and output line stored in `out.qml` insert to `Gui.qml`
|
# run this script and output line stored in `out.qml` insert to `Gui.qml`
|
||||||
|
|
||||||
|
|||||||
@ -1,37 +1,42 @@
|
|||||||
// Copyright (c) 2021 Proton Technologies AG
|
|
||||||
//
|
|
||||||
// This file is part of ProtonMail Bridge.
|
|
||||||
//
|
|
||||||
// ProtonMail Bridge is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
//
|
|
||||||
// ProtonMail Bridge is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021 Proton Technologies AG
|
||||||
|
#
|
||||||
|
# This file is part of ProtonMail Bridge.
|
||||||
|
#
|
||||||
|
# ProtonMail Bridge is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# ProtonMail Bridge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
# Generate HTML release notes
|
# Generate HTML release notes
|
||||||
# hosted at https://protonmail.com/download/{ie,bridge}/release_notes.html
|
# hosted at https://protonmail.com/download/{ie,bridge}/release_notes.html
|
||||||
|
|
||||||
# Load props
|
# Load props
|
||||||
APP_NAME=$1
|
APP_TYPE=$1
|
||||||
if [ "$APP_NAME" == "" ]; then
|
if [ "$APP_TYPE" == "" ]; then
|
||||||
APP_NAME="Bridge"
|
APP_TYPE="bridge"
|
||||||
|
fi
|
||||||
|
|
||||||
|
APP_NAME="Bridge"
|
||||||
|
if [ "$APP_TYPE" == "ie" ]; then
|
||||||
|
APP_NAME="Import-Export app"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
APP_TYPE=$(echo "$APP_NAME"|tr [A-Z] [a-z])
|
|
||||||
INFILE="release-notes/${APP_TYPE}.md"
|
INFILE="release-notes/${APP_TYPE}.md"
|
||||||
OUTFILE="release-notes/${APP_TYPE}.html"
|
OUTFILE="release-notes/${APP_TYPE}.html"
|
||||||
|
|
||||||
# Check dependencies
|
# Check dependencies
|
||||||
if ! which -s pandoc; then
|
if ! which pandoc; then
|
||||||
echo "PANDOC NOT FOUND!\nPlease install pandoc in order to build release notes."
|
echo "PANDOC NOT FOUND!\nPlease install pandoc in order to build release notes."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user