Skip to content

Commit

Permalink
[launcher] Use documentation subsystem for release notes (#1854)
Browse files Browse the repository at this point in the history
  • Loading branch information
matheusd authored and alexlyp committed Dec 3, 2018
1 parent 56ddc93 commit fe77412
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 109 deletions.
111 changes: 13 additions & 98 deletions app/components/views/GetStartedPage/ReleaseNotes/Form.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { FormattedMessage as T } from "react-intl";
import { LoaderBarBottom } from "indicators";
import { InvisibleButton } from "buttons";
import { LogsLinkMsg, SettingsLinkMsg } from "../messages";
import { Documentation } from "shared";

export default ({
onHideReleaseNotes,
Expand All @@ -11,10 +12,14 @@ export default ({
getCurrentBlockCount,
getNeededBlocks,
getEstimatedTimeLeft,
appVersion,
getWalletReady,
getDaemonStarted,
isDaemonRemote,
version,
docName,
imgClassName,
onNewerVersion,
onOlderVersion,
}) => (
<div className="page-body getstarted">
<div className="getstarted loader logs">
Expand All @@ -37,105 +42,15 @@ export default ({
<div className="go-back-screen-button-area">
<Tooltip text={ <T id="releaseNotes.goBack" m="Go back" /> }><div className="go-back-screen-button" onClick={onHideReleaseNotes}/></Tooltip>
</div>
<T id="getStarted.releaseNotesTitle" m="Decrediton v{version} Released" values={{ version: (appVersion) }}/>
<T id="getStarted.releaseNotesTitle" m="Decrediton v{version} Released" values={{ version }}/>
<div className="release-notes-version-navigation">
<a href="#" onClick={onNewerVersion}><T id="getStarted.releaseNotes.NewerVersion" m="Newer Version"/></a>
<a href="#" onClick={onOlderVersion}><T id="getStarted.releaseNotes.OlderVersion" m="Older Version"/></a>
</div>
</div>
<div className="release-notes">
<div className="release-notes-text">
<p>
This release of Decrediton marks the dawn of a large milestone in development.
SPV (simple payment verification) has been added in dcrwallet which allows
wallets to connect directly to peers and not required a fully synced node to be
connected. For now this feature will be turned OFF by default, then when we
have gotten thorough feedback and a confident in the usage, it will be turned
on by default.
</p>
<p>
While it's hard to give details of speed increases due to variances in systems,
we've seen roughly a 5x increase in syncing a previously used seed to tip on
mainnet. Previously, syncing the chain would take roughly 1hr plus another 5-10
mins for the wallet to become synced. Now, we're seeing about 20mins total time
to being able to fully use a wallet to send or purchase tickets.
</p>
<p>
In the coming releases, we are going to work on further speeding this process up,
as well as providing more feedback from dcrwallet to Decrediton to make a richer
user experience.
</p>
<p>
*Note: Automatic ticket purchasing has been disabled for SPV. We will be
implementing a way to start and stop the new v2 ticketbuyer in dcrwallet. This
new version is much simpler and really only has 1 option to set which would
be an absolute balance to maintain. This new version will also allow users to
run multiple ticket purchases for each account.
</p>
<p>
This release also has been audited by our design team at Eeter, LLC. Most of the
pages have received an update to the styling to add more polish and be more
resilient to various sizing and displays. In the near future, we will be
focusing on color themes and window sizing for small, medium and large displays.
</p>
<p>
We are also proud to announce the initial release of the Politeia integration.
While this functionality is still in beta-testing, what you see will be roughly
the final form. Proposals up for vote will be shown and your possible tickets
will be compared to the proposal's allowed tickets to vote. If there are
tickets available to vote, you simply make your choice, enter your passphrase
and your tickets are used to send the Politeia server your cryptographic proof
of ownership.
</p>
New Features
<ul>
<li>SPV integration - *Note: This integration is currently hidden from normal
usage, if you would like to test it, please set `"spv_mode": true`, in your
`config.json` file. With this new integration, there has been a new way of
syncing that has been added. Now instead of needing to do all of the wallet
loader processes in the proper order, one can simply call the SpvSync grpc and
that will handle everything within dcrwallet. This will lead to much less
errors and other headaches down the road. We have also added an
`"spv_connect": [],` option in the `config.json` file, which will allow users to
connect directly to a known peer instead of relying on the DNS seeders to find
peers.</li>
<li>Whitelisting and Proxy - We have added new support to control the connections
to domains that are used for various information. We have also added proxy
support for those that choose to have the extra security. These were both
necessary since the addition of Politeia wallet's communicating with the outside
world. We felt the users should have full control over where the wallet is
communicating. This support will be further improved upon in future releases
and requests for things are made.</li>
<li>Initial Politeia Integration - *Note: This integration is currently hidden
from normal usage, but can be accessed by setting `"politeia_beta": true`, in
your `config.json` file. When activated the user is shown a new page on the
side bar menu, reading "Governance." This will show them the Politeia
information, of which is pulled from a request to the proposals site.
They will be shown currently live and past votes.</li>
<li>Animated Onboarding Slides - All new animated slides were added. Big thanks
for all the hard work from @kyleFirethought and everyone at Eeter! They really
make the wallet shine.</li>
</ul>
Other improvements
<ul>
<li>Launcher - The launcher UI was audited and has most of its issues smoothed
out. There were some lingering issues and possible ways of users to get "stuck"
while loading up their wallets.</li>
<li>Inputs and Errors - All inputs have been audited for consistency and proper
input error states are now being used. We are very pleased with the look and
feel of the input errors and believe they are not too intrusive for users while
being very clear of what needs to be corrected.</li>
<li>Max Wallet Option - Users are now able to set the max wallets that are
shown on the launcher screen. The default is currentlyset to 3. But keep in mind
that it was styled assuming only 3 would be shown, so there may be some distortions
as that number grows. </li>
<li>Refined About Modal - The additional window was removed in favor of a React
modal. This allowed us to clean up the code and remove a redundant menu bar
group.</li>

<li>Long Form Translations - Due issues translating large pieces of text that were
split up into partial sentences, we are now keeping large sections of
documentation that need to be translated together. This is for things like the
onboarding slides and various informational modals.</li>
</ul>
</div>
<div className="release-notes-image" />
<Documentation name={docName} className="release-notes-text" />
<div className={[ "release-notes-image", imgClassName ].join(" ")} />
</div>
<LoaderBarBottom {...{ getCurrentBlockCount, getNeededBlocks, getEstimatedTimeLeft }} />
</div>
Expand Down
43 changes: 42 additions & 1 deletion app/components/views/GetStartedPage/ReleaseNotes/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,45 @@
import ReleaseNotesForm from "./Form";

const ReleaseNotes = ReleaseNotesForm;
// versions with release notes available. From newer to older.
const availableVersions = [
{ version: "1.3.1", docName: "ReleaseNote1_3_1", imgClassName: "release-image-v130" },
{ version: "1.3.0", docName: "ReleaseNote1_3_0", imgClassName: "release-image-v130" }
];

@autobind
class ReleaseNotes extends React.Component {

constructor(props) {
super(props);

const versionInfo = availableVersions[0];
this.state = { ...versionInfo, index: 0 };
}

showVersion(index) {
if (index < 0) index = 0;
if (index >= availableVersions.length) index = availableVersions.length-1;
if (index !== this.state.index) {
const versionInfo = availableVersions[index];
this.setState({ ...versionInfo, index });
}
}

onNewerVersion() { this.showVersion(this.state.index-1); }
onOlderVersion() { this.showVersion(this.state.index+1); }

render() {
const { onNewerVersion, onOlderVersion } = this;

return (
<ReleaseNotesForm
{...this.props}
{...this.state}
onNewerVersion={onNewerVersion}
onOlderVersion={onOlderVersion}
/>
);
}
}

export default ReleaseNotes;
33 changes: 33 additions & 0 deletions app/i18n/docs/en/ReleaseNotes/v1.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
This release of Decrediton marks the dawn of a large milestone in development. SPV (simple payment verification) has been added in dcrwallet which allows wallets to connect directly to peers and not required a fully synced node to be connected. For now this feature will be turned OFF by default, then when we have gotten thorough feedback and a confident in the usage, it will be turned on by default.

While it's hard to give details of speed increases due to variances in systems, we've seen roughly a 5x increase in syncing a previously used seed to tip on mainnet. Previously, syncing the chain would take roughly 1hr plus another 5-10 mins for the wallet to become synced. Now, we're seeing about 20mins total time to being able to fully use a wallet to send or purchase tickets.

In the coming releases, we are going to work on further speeding this process up, as well as providing more feedback from dcrwallet to Decrediton to make a richer user experience.

*Note: Automatic ticket purchasing has been disabled for SPV. We will be implementing a way to start and stop the new v2 ticketbuyer in dcrwallet. This new version is much simpler and really only has 1 option to set which would be an absolute balance to maintain. This new version will also allow users to run multiple ticket purchases for each account.

This release also has been audited by our design team at Eeter, LLC. Most of the pages have received an update to the styling to add more polish and be more resilient to various sizing and displays. In the near future, we will be focusing on color themes and window sizing for small, medium and large displays.

We are also proud to announce the intial release of the Politeia integration. While this functionality is still in beta-testing, what you see will be roughly the final form. Proposals up for vote will be shown and your possible tickets will be compared to the proposal's allowed tickets to vote. If there are tickets available to vote, you simply make your choice, enter your passphrase and your tickets are used to send the Politeia server your cryptographic proof of ownership.

## New Features

- SPV integration - *Note: This integration is currently hidden from normal usage, if you would like to test it, please set "spv_mode": true, in your config.json file. With this new integration, there has been a new way of syncing that has been added. Now instead of needing to do all of the wallet loader processes in the proper order, one can simply call the SpvSync grpc and that will handle everything within dcrwallet. This will lead to much less errors and other headaches down the road. We have also added an "spv_connect": [], option in the config.json file, which will allow users to connect directly to a known peer instead of relying on the DNS seeders to find peers.

- Whitelisting and Proxy - We have added new support to control the connections to domains that are used for various information. We have also added proxy support for those that choose to have the extra security. These were both necessary since the addition of Politeia wallet's communicating with the outside world. We felt the users should have full control over where the wallet is communicating. This support will be further improved upon in future releases and requests for things are made.

- Initial Politeia Integration - *Note: This integration is currently hidden from normal usage, but can be accessed by setting "politeia_beta": true, in your config.json file. When activated the user is shown a new page on the side bar menu, reading "Governance." This will show them the Politeia information, of which is pulled from a request to the proposals site. They will be shown currently live and past votes.

- Animated Onboarding Slides - All new animated slides were added. Big thanks for all the hard work from @kyleFirethought and everyone at Eeter! They really make the wallet shine.

## Other improvements

- Launcher - The launcher UI was audited and has most of its issues smoothed out. There were some lingering issues and possible ways of users to get "stuck" while loading up their wallets.

- Inputs and Errors - All inputs have been audited for consistency and proper input error states are now being used. We are very pleased with the look and feel of the input errors and believe they are not too intrusive for users while being very clear of what needs to be corrected.

- Max Wallet Option - Users are now able to set the max wallets that are shown on the launcher screen. The default is currently set to 3. But keep in mind that it was styled assuming only 3 would be shown, so there may be some distortions as the number shown grows.

- Refined About Modal - The additional window was removed in favor of a React modal. This allowed us to clean up the code and remove a redundant menu bar group.

- Long Form Translations - Due issues translating large pieces of text that were split up into partial sentences, we are now keeping large sections of documentation that need to be translated together. This is for things like the onboarding slides and various informational modals.
22 changes: 22 additions & 0 deletions app/i18n/docs/en/ReleaseNotes/v1.3.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
This is primarily a patch release for Decrediton, but also reveals some exciting new functionality to the entire user base. Previously, SPV wallet functionality and Politeia access were hidden behind configuration settings (which were only accessible by knowledgeable users). Now Politeia is seen by default underneath the new "Governance" page that can be found on the left sidebar. SPV can be enabled by going to the Settings page and updating the option (this will cause decrediton to reset to begin using the systems correctly).

We are also proud to add our first round of translations. We have added French, Spanish, German, Japanese, Chinese (simplified). If you are a long standing community member and notice any incorrect translations you can open an issue on github or contact the team on the slack/matrix chat platforms. While we appreciate input from all users, the translation process demands some existing trust, so we'd prefer only users with existing relationships with the project submit translation issues. We're attempting to formalize our translations procedures to allow input from more users. Our goal is to provide the same high quality content for all users, no matter their preferred language. Our tentative next list of languages are: Russian, Arabic, Malay/Tagalog.

## Bug Fixes
- The underlying dcrwallet was updated to include a required fix that caused panics in some wallets with certain transactions (typically stakepool fee txs).

- Non-US languages were causing some odd strings to be shown.

- Use streaming GetTickets with dcrwallet to ease decrediton loading. Now tickets are requested on a smaller basis to avoid issues with very large voting wallets.

## Other improvements

- Add proper wallet and daemon closing procedures to allow settings changes for SPV and Advanced Daemon. Now the user does not have to completely close the wallet to enable these changes. There is also an added button to close the current wallet and select a new one to load.

- The transaction details page has received a design update from Eeter. We have added the "Rebroadcast Transaction" button if the transaction is "Pending." This should be close to the final form of the page with some minor tweaks.

- Updated Help page with more links and updated design from Eeter.

- Update major some major dependencies and others: Webpack 4, Electron 2.0.8

- Retain number of tickets to purchase upon unsuccessful attempt.
3 changes: 3 additions & 0 deletions app/i18n/docs/en/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ export { default as GetStartedTutorialPage02 } from "./GetStarted/TutorialPage02
export { default as GetStartedTutorialPage03 } from "./GetStarted/TutorialPage03.md";
export { default as GetStartedTutorialPage04 } from "./GetStarted/TutorialPage04.md";

export { default as ReleaseNote1_3_0 } from "./ReleaseNotes/v1.3.0.md";
export { default as ReleaseNote1_3_1 } from "./ReleaseNotes/v1.3.1.md";

export { default as StakingTutorialPage01 } from "./StakingTutorial/Page01.md";
export { default as StakingTutorialPage02 } from "./StakingTutorial/Page02.md";

Expand Down
30 changes: 21 additions & 9 deletions app/style/GetStarted.less
Original file line number Diff line number Diff line change
Expand Up @@ -346,27 +346,39 @@
}

.release-notes {
float: left;
height: 500px;
width: 100%;
overflow-y: auto;
margin-top: 20px;
display: flex;
clear: both;
flex-wrap: wrap;
justify-content: space-between;
height: 65vh;
overflow-y: scroll;
padding-right: 1em;

.release-notes-text {
float: left;
font-size: 13px;
font-family: Helvetica, sans-serif;
width: 410px;
max-width: 410px;
}

.release-notes-image {
float: right;
width: 590px;
height: 295px;
margin-top: 14px;
background-repeat: no-repeat;
background-size: 590px;
background-image: @release-image;

&.release-image-v130 { background-image: @release-image-v130; }
}
}

.release-notes-version-navigation {
font-size: 13px;

> a {
margin-right: 30px;
cursor: pointer;
color: var(--title-text-and-button-background);
text-decoration: none;
}
}

Expand Down
2 changes: 1 addition & 1 deletion app/style/Icons.less
Original file line number Diff line number Diff line change
Expand Up @@ -230,4 +230,4 @@
@menu-animation-tickets: url('@{animation-root}/ticketsMotion.gif');
@menu-animation-transactions: url('@{animation-root}/transactionsMotion.gif');

@release-image: url('@{icon-root}/release-note.gif');
@release-image-v130: url('@{icon-root}/release-note-v130.gif');
File renamed without changes

0 comments on commit fe77412

Please sign in to comment.