Status Desktop
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Help
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # Workflows > [TOC] ## Issues Format Every Github issue needs to be tagged with a `type`, `section`, `detail` (if applicable), `project` (if applicable), and `priority` **type** | Tag | Description | | -------- | -------- | | bug | unintended behaviour | | feature | new behaviour | | refactor | code refactor | | chore | something that needs to be done under the hood but is not fixing an issue or a new feature necessarily | | idea | feature still in early stages, a feature request | **section** | Tag | Description | | -------- | -------- | | chat | related to the chat section or chat functionality | | wallet | related to the wallet section or wallet functionality | | general | related to the app in general or functionality that affects all sections | | onboarding | related to the login or new account functionality | | profile | related to the settings section or settings functionality | | node | related to the node management section or node management functionality | | timeline | related to the timeline section or timeline functionality | | browser | related to the browser section or browser functionality | | internal | related to the app build or distribution or internal functionality | if an issue affects multiple sections it should be tagged with section, if it affects the app in general then there is no section tag. **detail** | Tag | Description | | -------- | -------- | | crash | an issue that is causing a crash | | ui | an issue that is purely an UI only issue | **project** | Tag | Description | | -------- | -------- | | wallet-redesign | an issue related to the new wallet redesign | | communities | an issue related to the communities functionality | **bugs priority** | Tag | Description | | -------- | -------- | | `priority 0: blocker` | an issues that requires immediate attention and that causes the app to not work at all (e.g a crash) or an issue that can lead to loss of funds | | `priority 1: high` | an issue that is extremely important to fix, that interferes with the majority of users, occurs often and prevents a user from using a feature and there is no workaround | | `priority 2: medium` | an issue that is not severely affecting the overall app, it may interfere with some users users experience but there is a obvious workaround or the user might not even be aware this is a bug. should be addressed sooner than later, but it can wait if there more serious issues | | `priority 3: low` | issue that is barely adversely impacting the product key features, might be apparent but it's hard to notice and is unlikely to affect most users, can wait if there are more serious issues, an issue with a high effort/low reward value | | `priority 4: minor` | an issue that is barely noticeable and has little impact for most users, an issue that is hard to reproduce, an issue that might not end up being fixed or is expected it might sit in the backlog for a while, an issue with a very high effort / low reward value | **features priority** | Tag | Description | | -------- | -------- | | `priority F0: urgent` | Feature that has to be implemented & released ASAP for strong urgent reasons (likely a rare tag to use) | | `priority F1: mandatory` | A feature the product must have, a feature that some other feature or section cannot be used without it | | `priority F2: important` | a feature the app should have if possible, has high business value but the app can work without it | | `priority F3: nice to have` | a feature the app could have but is not critical | | `priority F4: maybe someday` | a feature that has currently low business value and potentialy high effort /reward ratio | ## Issues Prioritization Criteria Issues are typically prioritized according to the following 1. type=bug and priority=`priority 0: blocker` 2. type=feature and priority=`priority F0: urgent` 3. type=bug and priority=`priority 1: high` 4. type=feature and priority=`priority F1: mandatory` 5. (type=bug and priority=`priority 2: medium`) or (type=feature=priority=`priority F2: important`) 5a. chat > wallet > general > onboarding > profile > node > timeline > browser > internal 5b. bug > feature 6. (type=bug and priority=`priority 3: low`) or (type=feature=priority=`priority F3: nice to have`) 6a. chat > wallet > general > onboarding > profile > node > timeline > browser > internal 6b. bug > feature 7. (type=bug and priority=`priority 4: minor`) or (type=feature=priority=`priority F4: maybe someday`) 7a. chat > wallet > general > onboarding > profile > node > timeline > browser > internal bb. bug > feature 8. chat > wallet > general > onboarding > profile > node > timeline > browser > internal 9. bug > feature > refactor > chore > idea priority field categorization 1. Urgent: `priority 0: blocker` or `priority F0: urgent` 2. Important: `priority 1: high` or `priority F1: mandatory` 3. Upcoming: `priority 2: medium` or `priority F2: important` 4. Low priority: `priority 3: low` or `priority F3: nice to have` 5. Someday: `priority 4: minor` or `priority F4: maybe someday` 6. Icebox: includes `priority 4: minor` or `priority F4: maybe someday` and issues that are blocked, chores, nice to haves etc.. ## <a name="submit"></a> Submission Guidelines ### <a name="submit-issue"></a> Submitting an Issue Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs, we will systematically ask you to provide steps to reproduce your issue. You can file new issues by filling out our [new issue form](https://github.com/embarklabs/embark/issues/new/choose). ### Submitting a Pull Request (PR) Before you submit your Pull Request (PR) consider the following guidelines: 1. Search GitHub for an open or closed PR that relates to your submission. You don't want to duplicate effort. 2. Fork the repo. 3. Make your changes in a new git branch: ```shell git checkout -b my-fix-branch master ``` 4. Create your patch 5. Commit your changes using a descriptive commit message that follows our [commit message conventions](#commit). Adherence to these conventions is necessary because release notes are automatically generated from these messages. ```shell git commit -a ``` Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. 6. Push your branch to GitHub: ```shell git push origin my-fix-branch ``` 7. In GitHub, send a pull request to `master` **All PRs need at least 2 approvals in order to be merged plus be tested** Make sure you first add the desktop team as reviewers (search for `status-im/desktop-devs`) As for the person that will test the PR: - For a normal bug fix: - Randmoly choose one of the two developpers assigned as reviewer to be the tester - For a new feature, a refactor or a big bug fix that touches multiple sections: - Assign a QA as a reviewer (search `status-im/desktop-qa`) The PR can be merged once the PR has approvals from the two developpers and has the `tested` label added from the tester. * If we suggest changes then: * Make the required updates. * Re-run the test suites to ensure tests are still passing. * Rebase your branch and force push to your GitHub repository (this will update your Pull Request): ```shell git rebase master -i git push -f ``` 8. Ensure that your PR description refers the issue that it is fixing with `Fixes #123` That's it! Thank you for your contribution! #### After your pull request is merged After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: * Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows: ```shell git push origin --delete my-fix-branch ``` * Check out the master branch: ```shell git checkout master -f ``` * Delete the local branch: ```shell git branch -D my-fix-branch ``` * Update your master with the latest upstream version: ```shell git pull --ff upstream master ``` ## <a name="commit"></a> Commit Message Guidelines We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. But also, we use the git commit messages to **generate the change log**. ### Commit Message Format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ``` type(<Project>/<SCOPE>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer> ``` The **header** is mandatory and the **scope** of the header is optional. Any line of the commit message cannot be longer 100 characters! This allows the message to be easier to read on GitHub as well as in various git tools. The footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any. Samples: ``` docs(changelog): update changelog to beta.5 ``` ``` fix(release): need to depend on latest rxjs and zone.js The version in our package.json gets copied to the one we publish, and users need the latest of these. ``` ### Revert If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted. ### Type Must be one of the following: * **build**: Changes that affect the build system or external dependencies * **ci**: Changes to our CI configuration files and scripts * **docs**: Documentation only changes * **feat**: A new feature * **fix**: A bug fix * **perf**: A code change that improves performance * **refactor**: A code change that neither fixes a bug nor adds a feature * **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) * **test**: Adding missing tests or correcting existing tests ### Scope The scope should be the name of the area affected (as perceived by the person reading the changelog generated from commit messages. The following is the list of supported scopes: * **@desktop/wallet** - Affecting the wallet section * **@desktop/chat** - Affecting the chat section * **@desktop/<`module`>** - Desktop module * **@nim-status/<`section`>** - Nim statussection, ie `@nim-status/chat` There are currently a few exceptions to the "use package name" rule: * **vendor**: used for changes that change the dependencies. * **changelog**: used for updating the release notes in CHANGELOG.md * none/empty string: useful for `style`, `test` and `refactor` changes that are done across all packages (e.g. `style: add missing semicolons`) ### Subject The subject contains a succinct description of the change: * use the imperative, present tense: "change" not "changed" nor "changes" * don't capitalize the first letter * no dot (.) at the end ## PRs ### Special tags for PRs | Tag | Description | | -------- | -------- | | QA | Use this to indicate that this PR needs in-depth testing by a QA before being merged | | testing | PR is undergoing testing by a QA | | tested | PR is fully tested and ready to be merged | | do not merge | Use this to indicate that this PR cannot be merged at this time, typically due to some dependency | | experimental | Use this to indicate that this PR is testing an idea (usually a performance improvement) and is not clear if it will be merged or not | ### Workflow for PRs 1. After a PR is submitted, someone from the team will review your PR and ask for changes or mark as approved 2. In cases a PR was marked with the `QA` tag, a QA will test in depth. However **all PRs need an approval from a QA before being merged** 3. After a PR is approved by 2 developers and approved by 1 QA the owner of the PR should merge it. ### Long Term PRs & Draft PRs Generally it is not encouraged for PRs to stay open for too long as they tend to lead to rebase conflicts, outdated functionality and generally they just tend to die. If a PR stays open for more than a month and is clearly stale it becomes under consideration to be closed. ### How to test the Pull Request? 1. make sure u understand what the PR does / changes. Feel free to ask questions , bug developer or designer or anyone, since it is your responsibility to drive the feature as QA, so don't be shy! 2. once all the information gathered, create tests in Test Rail. Creating test documentation (tests) is **mandatory** 3. test the functionality using the tests u added and provide a test run as a link posted with a comment to the corresponding PR. Please avoid the situation when u did some checks or verifications that are not listed in your test run. If u missed anything - be responsible and add it 4. do not create duplicates of tests, do not create granular tests (atomic checks). We are sticking to the strategy of using testing with use cases (or user scenarios) so try to be effiicent , cover as much functionality as u can with the less tests as possible (without losing quality) 5. dont be shy to remove tests, update tests , combine tests , but be rational 6. make sure u test not the happy path only, but edge cases , negatvie scenarios and think of where the functionality is present across the app, because the PRs can be containing lack of info, which means that even it is not stated in PRs, u still have to think and verify each and every possible corner of the app that is affected with the change 7. review the changed files on GH, it can be useful to understand what was affected 8. test not only the provided functionality but the regression around the affected area 9. test the upgrade of the recent released version (check [releases](https://github.com/status-im/status-desktop/releases)) to the PR version - there should not be any data loss or any other issues

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully