diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5b0ae4d346..e75144e7d5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -5,9 +5,9 @@ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -nationality, personal appearance, race, religion, or sexual identity and -orientation. +size, disability, ethnicity, gender identity and expression, level of +experience, nationality, personal appearance, race, religion, or sexual identity +and orientation. ## Our Standards @@ -23,7 +23,7 @@ include: Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or -advances + advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic @@ -37,11 +37,11 @@ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. ## Scope @@ -55,11 +55,11 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at opensource@github.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. +reported by contacting the project team at opensource@github.com. All complaints +will be reviewed and investigated and will result in a response that is deemed +necessary and appropriate to the circumstances. The project team is obligated to +maintain confidentiality with regard to the reporter of an incident. Further +details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other @@ -67,8 +67,8 @@ members of the project's leadership. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at [http://contributor-covenant.org/version/1/4][version] +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org [version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca1d9f43ae..a91709d2d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,11 +1,13 @@ # Contributing to GitHub Desktop -:+1: :tada: :sparkling_heart: Thanks for your interest! :sparkling_heart: :tada: :+1: +:+1: :tada: :sparkling_heart: Thanks for your interest! :sparkling_heart: :tada: +:+1: The following is a set of guidelines for contributing to GitHub Desktop and its -related projects, which are hosted in the [Desktop organization](https://github.com/desktop) -on GitHub. These are just guidelines, not rules. Use your best judgment, and -feel free to propose changes to this document in a pull request. +related projects, which are hosted in the +[Desktop organization](https://github.com/desktop) on GitHub. These are just +guidelines, not rules. Use your best judgment, and feel free to propose changes +to this document in a pull request. Note that GitHub Desktop is an evolving project, so expect things to change over time as the team learns, listens and refines how we work with the community. @@ -13,24 +15,28 @@ time as the team learns, listens and refines how we work with the community. #### Table Of Contents [What should I know before I get started?](#what-should-i-know-before-i-get-started) - * [Code of Conduct](#code-of-conduct) - * [The Roadmap](#the-roadmap) + +* [Code of Conduct](#code-of-conduct) +* [The Roadmap](#the-roadmap) [How Can I Contribute?](#how-can-i-contribute) - * [Reporting Bugs](#reporting-bugs) - * [Suggesting Enhancements](#suggesting-enhancements) - * [Help Wanted](#help-wanted) + +* [Reporting Bugs](#reporting-bugs) +* [Suggesting Enhancements](#suggesting-enhancements) +* [Help Wanted](#help-wanted) [Additional Notes](#additional-notes) - * [Issue and Pull Request Labels](#issue-and-pull-request-labels) + +* [Issue and Pull Request Labels](#issue-and-pull-request-labels) ## What should I know before I get started? ### Code of Conduct -This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). -By participating, you are expected to uphold this code. -Please report unacceptable behavior to [opensource+desktop@github.com](mailto:opensource+desktop@github.com). +This project adheres to the Contributor Covenant +[code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to +uphold this code. Please report unacceptable behavior to +[opensource+desktop@github.com](mailto:opensource+desktop@github.com). ### The Roadmap @@ -38,7 +44,8 @@ GitHub Desktop recently announced its [1.0 release](https://github.com/blog/2437-announcing-github-desktop-1-0) and are working towards deprecating the classic Mac and Windows applications. -Beyond that, we are working on a roadmap you can read [here](https://github.com/desktop/desktop/blob/master/docs/process/roadmap.md). +Beyond that, we are working on a roadmap you can read +[here](https://github.com/desktop/desktop/blob/master/docs/process/roadmap.md). The immediate milestones are more detailed, and the latter milestones are more fuzzy and subject to change. @@ -55,65 +62,71 @@ Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:. -Before creating bug reports, please check [this list](#before-submitting-a-bug-report) -as you might find out that you don't need to create one. When you are creating -a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). -Fill out [the required template](./.github/ISSUE_TEMPLATE.md), the information -it asks for helps us resolve issues faster. +Before creating bug reports, please check +[this list](#before-submitting-a-bug-report) as you might find out that you +don't need to create one. When you are creating a bug report, please +[include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill +out [the required template](./.github/ISSUE_TEMPLATE.md), the information it +asks for helps us resolve issues faster. #### Before Submitting A Bug Report -**Perform a [cursory search](https://github.com/desktop/desktop/labels/bug)** -to see if the problem has already been reported. If it does exist, add a -:thumbsup: to the issue to indicate this is also an issue for you, and add a -comment to the existing issue if there is extra information you can contribute. +**Perform a [cursory search](https://github.com/desktop/desktop/labels/bug)** to +see if the problem has already been reported. If it does exist, add a :thumbsup: +to the issue to indicate this is also an issue for you, and add a comment to the +existing issue if there is extra information you can contribute. #### How Do I Submit A (Good) Bug Report? Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). -Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues) -and fill out the provided [issue template](./.github/ISSUE_TEMPLATE.md). +Simply create an issue on the +[GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues) and +fill out the provided [issue template](./.github/ISSUE_TEMPLATE.md). The information we are interested in includes: - - details about your environment - which build, which operating system - - details about reproducing the issue - what steps to take, what happens, how - often it happens - - other relevant information - log files, screenshots, etc. +* details about your environment - which build, which operating system +* details about reproducing the issue - what steps to take, what happens, how + often it happens +* other relevant information - log files, screenshots, etc. ### Suggesting Enhancements -This section guides you through submitting an enhancement suggestion for -GitHub Desktop, including completely new features and minor improvements to -existing functionality. Following these guidelines helps maintainers and the -community understand your suggestion :pencil: and find related suggestions -:mag_right:. +This section guides you through submitting an enhancement suggestion for GitHub +Desktop, including completely new features and minor improvements to existing +functionality. Following these guidelines helps maintainers and the community +understand your suggestion :pencil: and find related suggestions :mag_right:. -Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) -as you might find out that you don't need to create one. When you are creating -an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). -Fill in [the template](./.github/ISSUE_TEMPLATE.md), including the steps -that you imagine you would take if the feature you're requesting existed. +Before creating enhancement suggestions, please check +[this list](#before-submitting-an-enhancement-suggestion) as you might find out +that you don't need to create one. When you are creating an enhancement +suggestion, please +[include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). +Fill in [the template](./.github/ISSUE_TEMPLATE.md), including the steps that +you imagine you would take if the feature you're requesting existed. #### Before Submitting An Enhancement Suggestion -**Perform a [cursory search](https://github.com/desktop/desktop/labels/enhancement)** -to see if the enhancement has already been suggested. If it has, add a -:thumbsup: to indicate your interest in it, or comment if there is additional -information you would like to add. +**Perform a +[cursory search](https://github.com/desktop/desktop/labels/enhancement)** to see +if the enhancement has already been suggested. If it has, add a :thumbsup: to +indicate your interest in it, or comment if there is additional information you +would like to add. #### How Do I Submit A (Good) Enhancement Suggestion? -Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). +Enhancement suggestions are tracked as +[GitHub issues](https://guides.github.com/features/issues/). -Simply create an issue on the [GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues) -and provide the following information: +Simply create an issue on the +[GitHub Desktop issue tracker](https://github.com/desktop/desktop/issues) and +provide the following information: * **Use a clear and descriptive title** for the issue to identify the suggestion. -* **Provide a step-by-step description of the suggested enhancement** in as - much detail as possible. This additional context helps the maintainers to +* **Provide a step-by-step description of the suggested enhancement** in as much + detail as possible. This additional context helps the maintainers to understand the enhancement from your perspective * **Explain why this enhancement would be useful** to GitHub Desktop users. * **Include screenshots and animated GIFs** if relevant to help you demonstrate @@ -127,47 +140,48 @@ and provide the following information: As part of building GitHub Desktop, we'll identify tasks that are good for external contributors to pick up. These tasks: - - have low impact, or have a known workaround - - should be addressed - - have a narrow scope and/or easy reproduction steps - - can be worked on independent of other tasks +* have low impact, or have a known workaround +* should be addressed +* have a narrow scope and/or easy reproduction steps +* can be worked on independent of other tasks -These issues will be labelled as [`help wanted`](https://github.com/desktop/desktop/labels/help%20wanted) -in the repository. If you are interested in contributing to the project, please -comment on the issue to let the core team (and the community) know you are -interested in the issue. +These issues will be labelled as +[`help wanted`](https://github.com/desktop/desktop/labels/help%20wanted) in the +repository. If you are interested in contributing to the project, please comment +on the issue to let the core team (and the community) know you are interested in +the issue. ## Additional Notes ### Issue and Pull Request Labels -This section lists the labels we use to help us track and manage issues and -pull requests. +This section lists the labels we use to help us track and manage issues and pull +requests. #### Type of Issue and Issue State -| Label name | :mag_right: | Description | -| --- | --- | --- | -| `enhancement` | [search](https://github.com/desktop/desktop/labels/enhancement) | Feature requests. | -| `bug` | [search](https://github.com/desktop/desktop/labels/bug) | Confirmed bugs or reports that are very likely to be bugs. | +| Label name | :mag_right: | Description | +| ------------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `enhancement` | [search](https://github.com/desktop/desktop/labels/enhancement) | Feature requests. | +| `bug` | [search](https://github.com/desktop/desktop/labels/bug) | Confirmed bugs or reports that are very likely to be bugs. | | `more-information-needed` | [search](https://github.com/desktop/desktop/labels/more-information-needed) | More information needs to be collected about these problems or feature requests (e.g. steps to reproduce). | -| `needs-reproduction` | [search](https://github.com/desktop/desktop/labels/needs-reproduction) | Likely bugs, but haven't been reliably reproduced. | -| `stale` | [search](https://github.com/desktop/desktop/labels/stale) | Issues that are inactive and marked to be closed. | -| `macOS` | [search](https://github.com/desktop/desktop/labels/macOS) | Issues specific to macOS users. | -| `Windows` | [search](https://github.com/desktop/desktop/labels/Windows) | Issues specific to Windows users. | -| `codemirror` | [search](https://github.com/desktop/desktop/labels/codemirror) | Issues related to our use of [CodeMirror](https://codemirror.net/) that may require upstream fixes. | -| `electron` | [search](https://github.com/desktop/desktop/labels/electron) | Issues related to our use of [Electron](https://electron.atom.io) that may require upstream fixes. | +| `needs-reproduction` | [search](https://github.com/desktop/desktop/labels/needs-reproduction) | Likely bugs, but haven't been reliably reproduced. | +| `stale` | [search](https://github.com/desktop/desktop/labels/stale) | Issues that are inactive and marked to be closed. | +| `macOS` | [search](https://github.com/desktop/desktop/labels/macOS) | Issues specific to macOS users. | +| `Windows` | [search](https://github.com/desktop/desktop/labels/Windows) | Issues specific to Windows users. | +| `codemirror` | [search](https://github.com/desktop/desktop/labels/codemirror) | Issues related to our use of [CodeMirror](https://codemirror.net/) that may require upstream fixes. | +| `electron` | [search](https://github.com/desktop/desktop/labels/electron) | Issues related to our use of [Electron](https://electron.atom.io) that may require upstream fixes. | #### Topics -| Label name | :mag_right: | Description | -| --- | --- | --- | -| `help wanted` | [search](https://github.com/desktop/desktop/labels/help%20wanted) | Issues marked as ideal for external contributors. | -| `tech-debt` | [search](https://github.com/desktop/desktop/labels/tech-debt) | Issues related to code or architecture decisions. | -| `needs-design-input` | [search](https://github.com/desktop/desktop/labels/needs-design-input) | Issues that require design input from the core team before the work can be started. | +| Label name | :mag_right: | Description | +| -------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `help wanted` | [search](https://github.com/desktop/desktop/labels/help%20wanted) | Issues marked as ideal for external contributors. | +| `tech-debt` | [search](https://github.com/desktop/desktop/labels/tech-debt) | Issues related to code or architecture decisions. | +| `needs-design-input` | [search](https://github.com/desktop/desktop/labels/needs-design-input) | Issues that require design input from the core team before the work can be started. | #### Workflow -| Label name | :mag_right: | Description | -| --- | --- | --- | -| `ready-for-review` | [search](https://github.com/desktop/desktop/labels/ready-for-review) | Pull Requests that are ready to be reviewed by the maintainers. | +| Label name | :mag_right: | Description | +| ------------------ | -------------------------------------------------------------------- | --------------------------------------------------------------- | +| `ready-for-review` | [search](https://github.com/desktop/desktop/labels/ready-for-review) | Pull Requests that are ready to be reviewed by the maintainers. | diff --git a/README.md b/README.md index d3b43a3f2b..bb88ac16c2 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,19 @@ uses [React](https://facebook.github.io/react/). Download the official installer for your operating system: - - [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin) - - [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32) - - [Windows machine-wide install](https://central.github.com/deployments/desktop/desktop/latest/win32?format=msi) +* [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin) +* [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32) +* [Windows machine-wide install](https://central.github.com/deployments/desktop/desktop/latest/win32?format=msi) -There are several community-supported package managers that can be used to install Github Desktop. - - Windows users can install using [Chocolatey](https://chocolatey.org/) package manager: - `c:\> choco install github-desktop` - - macOS users can install using [Homebrew](https://brew.sh/) package manager: - `$ brew cask install github` - - Arch Linux users can install the latest version from the [AUR](https://aur.archlinux.org/packages/github-desktop/). +There are several community-supported package managers that can be used to +install Github Desktop. + +* Windows users can install using [Chocolatey](https://chocolatey.org/) package + manager: `c:\> choco install github-desktop` +* macOS users can install using [Homebrew](https://brew.sh/) package manager: + `$ brew cask install github` +* Arch Linux users can install the latest version from the + [AUR](https://aur.archlinux.org/packages/github-desktop/). You can install this alongside your existing GitHub Desktop for Mac or GitHub Desktop for Windows application. @@ -39,18 +42,19 @@ from disk onto the application to get started. Want to test out new features and get fixes before everyone else? Install the beta channel to get access to early builds of Desktop: - - [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin?env=beta) - - [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32?env=beta) +* [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin?env=beta) +* [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32?env=beta) ## I have a problem with GitHub Desktop -First, please search the [open issues](https://github.com/desktop/desktop/issues?q=is%3Aopen) -and [closed issues](https://github.com/desktop/desktop/issues?q=is%3Aclosed) -to see if your issue hasn't already been reported (it may also be fixed). +First, please search the +[open issues](https://github.com/desktop/desktop/issues?q=is%3Aopen) and +[closed issues](https://github.com/desktop/desktop/issues?q=is%3Aclosed) to see +if your issue hasn't already been reported (it may also be fixed). -If you can't find an issue that matches what you're seeing, open a [new issue](https://github.com/desktop/desktop/issues/new) -and fill out the template to provide us with enough information to investigate -further. +If you can't find an issue that matches what you're seeing, open a +[new issue](https://github.com/desktop/desktop/issues/new) and fill out the +template to provide us with enough information to investigate further. ## How can I contribute to GitHub Desktop? @@ -58,7 +62,9 @@ The [CONTRIBUTING.md](./CONTRIBUTING.md) document will help you get setup and familiar with the source. The [documentation](docs/) folder also contains more resources relevant to the project. -If you're looking for something to work on, check out the [help wanted](https://github.com/desktop/desktop/issues?q=is%3Aissue+is%3Aopen+label%3A%22help%20wanted%22) label. +If you're looking for something to work on, check out the +[help wanted](https://github.com/desktop/desktop/issues?q=is%3Aissue+is%3Aopen+label%3A%22help%20wanted%22) +label. ## More Resources @@ -70,10 +76,10 @@ information about GitHub Desktop. **[MIT](LICENSE)** The MIT license grant is not for GitHub's trademarks, which include the logo -designs. GitHub reserves all trademark and copyright rights in and to all -GitHub trademarks. GitHub's logos include, for instance, the stylized -Invertocat designs that include "logo" in the file title in the following -folder: [logos](app/static/logos). +designs. GitHub reserves all trademark and copyright rights in and to all GitHub +trademarks. GitHub's logos include, for instance, the stylized Invertocat +designs that include "logo" in the file title in the following folder: +[logos](app/static/logos). GitHub® and its stylized versions and the Invertocat mark are GitHub's Trademarks or registered Trademarks. When using GitHub's logos, be sure to diff --git a/app/styles/.prettierrc.yml b/app/styles/.prettierrc.yml new file mode 100644 index 0000000000..abeaf73876 --- /dev/null +++ b/app/styles/.prettierrc.yml @@ -0,0 +1 @@ +singleQuote: false diff --git a/app/styles/_globals.scss b/app/styles/_globals.scss index 0111ad6314..bd56fae88f 100644 --- a/app/styles/_globals.scss +++ b/app/styles/_globals.scss @@ -29,7 +29,8 @@ html { // We never want the window to be scrollable, everything has to fit // or be placed into a scrollable container. -html, body { +html, +body { height: 100%; width: 100%; margin: 0; @@ -58,7 +59,9 @@ body { } :not(input):not(textarea) { - &, &::after, &::before { + &, + &::after, + &::before { -webkit-user-select: none; user-select: none; cursor: default; @@ -81,9 +84,14 @@ img { // margin for easier control within type scales as it avoids margin collapsing. // // From: https://github.com/twbs/bootstrap/blob/a0f10e6dcb9aef2d8e36e57f3c8b1b06034a8877/scss/_reboot.scss -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { margin-top: 0; - margin-bottom: .5rem; + margin-bottom: 0.5rem; } // Regardless of platform behavior we never want buttons to be diff --git a/app/styles/_ui.scss b/app/styles/_ui.scss index 83e1039759..65b240b69a 100644 --- a/app/styles/_ui.scss +++ b/app/styles/_ui.scss @@ -56,7 +56,7 @@ @import "ui/terms-and-conditions"; @import "ui/ref"; @import "ui/monospaced"; -@import 'ui/initialize-lfs'; -@import 'ui/ci-status'; -@import 'ui/pull-request-badge'; -@import 'ui/no-branches'; +@import "ui/initialize-lfs"; +@import "ui/ci-status"; +@import "ui/pull-request-badge"; +@import "ui/no-branches"; diff --git a/app/styles/_variables.scss b/app/styles/_variables.scss index bdedc4aa0f..af3e4532d3 100644 --- a/app/styles/_variables.scss +++ b/app/styles/_variables.scss @@ -3,7 +3,7 @@ // This files contains CSS variables accessible to all selectors // Primer colors, see https://github.com/primer/primer-css/blob/master/modules/primer-support/lib/variables/color-system.scss -@import '~primer-support/lib/variables/color-system.scss'; +@import "~primer-support/lib/variables/color-system.scss"; :root { --color-new: $green; @@ -36,8 +36,11 @@ // Typography // // Font, line-height, and color for body text, headings, and more. - --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; - --font-family-monospace: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", + "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", + "Helvetica Neue", Arial, sans-serif; + --font-family-monospace: Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; /** * Font weight to use for semibold text diff --git a/app/styles/_vendor.scss b/app/styles/_vendor.scss index 041a0551ec..aefbd0cbcf 100644 --- a/app/styles/_vendor.scss +++ b/app/styles/_vendor.scss @@ -1,4 +1,4 @@ @import "~react-virtualized/styles.css"; @import "~codemirror/lib/codemirror.css"; @import "~codemirror/theme/solarized.css"; -@import "~codemirror/addon/scroll/simplescrollbars.css" +@import "~codemirror/addon/scroll/simplescrollbars.css"; diff --git a/app/styles/desktop.scss b/app/styles/desktop.scss index 3dc5e72a7f..8929e7c189 100644 --- a/app/styles/desktop.scss +++ b/app/styles/desktop.scss @@ -6,4 +6,4 @@ @import "globals"; @import "type"; -@import "ui" +@import "ui"; diff --git a/app/styles/mixins/_octicon-status.scss b/app/styles/mixins/_octicon-status.scss index e88ac7c227..b2cd2a31f5 100644 --- a/app/styles/mixins/_octicon-status.scss +++ b/app/styles/mixins/_octicon-status.scss @@ -1,12 +1,26 @@ @mixin octicon-status { .status { - &-new { fill: var(--color-new); } - &-copied { fill: var(--color-new); } - &-modified { fill: var(--color-modified); } - &-renamed { fill: var(--color-renamed); } - &-deleted { fill: var(--color-deleted); } - &-conflicted { fill: var(--color-conflicted); } + &-new { + fill: var(--color-new); + } + &-copied { + fill: var(--color-new); + } + &-modified { + fill: var(--color-modified); + } + &-renamed { + fill: var(--color-renamed); + } + &-deleted { + fill: var(--color-deleted); + } + &-conflicted { + fill: var(--color-conflicted); + } } - .line-endings { fill: var(--color-conflicted); } + .line-endings { + fill: var(--color-conflicted); + } } diff --git a/app/styles/ui/_about.scss b/app/styles/ui/_about.scss index 9c31e78d57..3be68a590e 100644 --- a/app/styles/ui/_about.scss +++ b/app/styles/ui/_about.scss @@ -1,11 +1,11 @@ dialog#about { - .dialog-content { .row-component { justify-content: center; } - p, h2 { + p, + h2 { text-align: center; } @@ -40,7 +40,6 @@ dialog#about { } .update-status { - .octicon.spin { // Make sure the spinner is aligned with the text. align-self: center; diff --git a/app/styles/ui/_add-repository.scss b/app/styles/ui/_add-repository.scss index e3fe43fef3..236f8415b9 100644 --- a/app/styles/ui/_add-repository.scss +++ b/app/styles/ui/_add-repository.scss @@ -46,8 +46,8 @@ padding: 0; .row-component:not(:last-child) { - margin: 0; - } + margin: 0; + } } &.clone-generic-repository-content { diff --git a/app/styles/ui/_app-menu.scss b/app/styles/ui/_app-menu.scss index aba6687256..febd4db595 100644 --- a/app/styles/ui/_app-menu.scss +++ b/app/styles/ui/_app-menu.scss @@ -37,7 +37,6 @@ } &:not(:last-child) { - // We want list items in previous menus to behave as if they have focus // even though they don't, ie we want the selected+focus state // to be in effect for all parent selected menu items as well as @@ -68,7 +67,9 @@ width: 100%; min-width: 0; - &.disabled { opacity: 0.3; } + &.disabled { + opacity: 0.3; + } .label { flex-grow: 1; diff --git a/app/styles/ui/_app.scss b/app/styles/ui/_app.scss index be221bb8ab..84a828d96f 100644 --- a/app/styles/ui/_app.scss +++ b/app/styles/ui/_app.scss @@ -1,7 +1,6 @@ @import "../mixins"; #desktop-app { - // This is just a dummy wrapper needed because react doesn't like // being installed into
, see https://github.com/facebook/react/issues/3207 &-container { @@ -23,6 +22,6 @@ &-contents { display: flex; flex-direction: column; - flex-grow: 1 + flex-grow: 1; } } diff --git a/app/styles/ui/_autocompletion.scss b/app/styles/ui/_autocompletion.scss index fe3449a17e..e5a9a44b5c 100644 --- a/app/styles/ui/_autocompletion.scss +++ b/app/styles/ui/_autocompletion.scss @@ -15,16 +15,21 @@ border-radius: var(--border-radius); overflow: hidden; // To get those sweet rounded corners - &.emoji { width: 200px; } - &.user { width: 220px; } - &.issue { width: 300px; } + &.emoji { + width: 200px; + } + &.user { + width: 220px; + } + &.issue { + width: 300px; + } background-color: var(--background-color); box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); - .list-item - { + .list-item { border-bottom: none; &:not(:first-child) { @@ -40,14 +45,13 @@ border-top-color: var(--box-selected-active-background-color); & + .list-item { - border-top-color: var(--box-selected-active-background-color); + border-top-color: var(--box-selected-active-background-color); } } } } .autocompletion-item { - flex-grow: 1; height: 100%; min-width: 0; @@ -61,7 +65,6 @@ } .emoji { - display: flex; flex-grow: 1; diff --git a/app/styles/ui/_branches.scss b/app/styles/ui/_branches.scss index 32640de481..2e2aa903f2 100644 --- a/app/styles/ui/_branches.scss +++ b/app/styles/ui/_branches.scss @@ -1,4 +1,4 @@ -@import '../mixins'; +@import "../mixins"; .branches-container { height: 100%; @@ -168,7 +168,7 @@ rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 100% ); - content: ''; + content: ""; display: block; height: 100%; width: 100%; diff --git a/app/styles/ui/_button.scss b/app/styles/ui/_button.scss index cb0ede1b71..6fd7b3b0b6 100644 --- a/app/styles/ui/_button.scss +++ b/app/styles/ui/_button.scss @@ -26,14 +26,16 @@ box-shadow: 0 0 0 1px var(--secondary-button-focus-shadow-color); } - &:disabled { opacity: 0.6; } + &:disabled { + opacity: 0.6; + } .octicon { vertical-align: middle; } } -.button-component[type='submit'] { +.button-component[type="submit"] { background-color: var(--button-background); color: var(--button-text-color); border: 1px solid var(--button-background); diff --git a/app/styles/ui/_checkbox.scss b/app/styles/ui/_checkbox.scss index 518a1ebc22..5ce0365a0b 100644 --- a/app/styles/ui/_checkbox.scss +++ b/app/styles/ui/_checkbox.scss @@ -4,7 +4,6 @@ align-items: center; input { - margin: 0; // Only add a right margin if there's a label attached to it diff --git a/app/styles/ui/_cloning-repository-view.scss b/app/styles/ui/_cloning-repository-view.scss index 186e68d81a..b00b0731ad 100644 --- a/app/styles/ui/_cloning-repository-view.scss +++ b/app/styles/ui/_cloning-repository-view.scss @@ -1,7 +1,6 @@ @import "../mixins"; #cloning-repository-view { - /* The view's position in relation to its parent, ie full * width, vertically centered... */ justify-content: center; diff --git a/app/styles/ui/_dialog.scss b/app/styles/ui/_dialog.scss index 8452efb173..46f211eebe 100644 --- a/app/styles/ui/_dialog.scss +++ b/app/styles/ui/_dialog.scss @@ -8,7 +8,6 @@ // allow easy layout using generalized components and elements such as.
dialog {
-
// These are custom version of the alert and stop octicons that have been
// scaled and adjusted to render crisply at 24px.
//
@@ -38,7 +37,6 @@ dialog {
// The modal class here is the transition name for the react css transition
// group which allows us to apply an animation when the popup appears.
&.modal {
-
&-enter {
opacity: 1;
transform: scale(0.75);
@@ -74,7 +72,7 @@ dialog {
opacity: 0.01;
transform: scale(0.25);
transition: opacity 100ms ease-in,
- transform 100ms var(--easing-ease-in-back);
+ transform 100ms var(--easing-ease-in-back);
&::backdrop {
opacity: 0.01;
@@ -143,7 +141,9 @@ dialog {
// Let the button deal with all mouse events.
// Without this the octicon resets the cursor when
// hovering over the
- - Get the Desktop application ready to perform the problem action.
- - Select the **Timeline** tab.
+* Get the Desktop application ready to perform the problem action.
+* Select the **Timeline** tab.
- - Ensure you have **JS Profile** checked - other items might be helpful, but
- will add to the size of the generated timeline data.
+* Ensure you have **JS Profile** checked - other items might be helpful, but
+ will add to the size of the generated timeline data.
- - Press the **Record** button on the left to start recording.
+* Press the **Record** button on the left to start recording.
- - Perform the problem action in Desktop. Try and keep the test focused on the
- issue you're seeing.
- - Switch back to the Developer tools and press **Stop** to complete recording.
+* Perform the problem action in Desktop. Try and keep the test focused on the
+ issue you're seeing.
+* Switch back to the Developer tools and press **Stop** to complete recording.
- - In the graph section, right-click and select **Save timeline data**. Save the
- JSON file somewhere you can access later.
+* In the graph section, right-click and select **Save timeline data**. Save the
+ JSON file somewhere you can access later.
- - Compress the JSON file to reduce the file size (it could be 10MB or more
- depending on how long you ran the test for).
+* Compress the JSON file to reduce the file size (it could be 10MB or more
+ depending on how long you ran the test for).
- - Attach the file to your GitHub issue so the contributors can load this into
- their environment and spelunk the diagnostic information.
+* Attach the file to your GitHub issue so the contributors can load this into
+ their environment and spelunk the diagnostic information.
diff --git a/docs/contributing/tooling.md b/docs/contributing/tooling.md
index c9038fe6e1..3cf801067e 100644
--- a/docs/contributing/tooling.md
+++ b/docs/contributing/tooling.md
@@ -6,17 +6,19 @@ Recommended packages:
* [atom-typescript](https://atom.io/packages/atom-typescript) - syntax
highlighting and intellisense for TypeScript
-* [atom-build-npm-apm](https://atom.io/packages/build-npm-apm) - invoke
- all npm scripts straight from the editor by pressing F7 (requires
+* [atom-build-npm-apm](https://atom.io/packages/build-npm-apm) - invoke all npm
+ scripts straight from the editor by pressing F7 (requires
[atom-build](https://atom.io/packages/build))
* [linter](https://atom.io/packages/linter) and
- [linter-tslint](https://atom.io/packages/linter-tslint) - shows linter errors and warning in the editor
+ [linter-tslint](https://atom.io/packages/linter-tslint) - shows linter errors
+ and warning in the editor
### [Visual Studio Code](https://code.visualstudio.com/)
The Desktop repository includes a list of recommended extensions:
-1. Select the _Extension_ view, select *Show Workspace Recommended Extensions* from the dropdown menu
+1. Select the _Extension_ view, select _Show Workspace Recommended Extensions_
+ from the dropdown menu
2. Install all the extensions
## Debugging
@@ -26,5 +28,7 @@ The Desktop repository includes a list of recommended extensions:
1. Run the command `npm start`
2. Open _Chrome Dev Tools_
-[React Dev Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) should automatically install itself on first start. If you would also like to use [Devtron](http://electron.atom.io/devtron/), run the command `require('devtron').install()` inside of the console in _Chrome Dev Tools_.
-
+[React Dev Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en)
+should automatically install itself on first start. If you would also like to
+use [Devtron](http://electron.atom.io/devtron/), run the command
+`require('devtron').install()` inside of the console in _Chrome Dev Tools_.
diff --git a/docs/contributing/troubleshooting.md b/docs/contributing/troubleshooting.md
index bda5a0b6c3..bce296a5bc 100644
--- a/docs/contributing/troubleshooting.md
+++ b/docs/contributing/troubleshooting.md
@@ -5,7 +5,8 @@ while working on GitHub Desktop:
### Issues compiling node-keytar on Windows
-If keytar fails to build on Windows with the following error during `npm install`:
+If keytar fails to build on Windows with the following error during
+`npm install`:
```
npm ERR! keytar@3.0.2 install: `node-gyp rebuild`
diff --git a/docs/contributing/working-with-packages.md b/docs/contributing/working-with-packages.md
index 4d8772a595..548d177ab3 100644
--- a/docs/contributing/working-with-packages.md
+++ b/docs/contributing/working-with-packages.md
@@ -50,4 +50,4 @@ To remove any packages that are no longer needed:
```sh
> yarn remove [package-name]
-```
\ No newline at end of file
+```
diff --git a/docs/installation.md b/docs/installation.md
index 5b57d19100..78d033ebd4 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -1,30 +1,48 @@
# Installing GitHub Desktop
-GitHub Desktop currently supports Windows 7 (or higher) and macOS 10.9 (or higher).
+GitHub Desktop currently supports Windows 7 (or higher) and macOS 10.9 (or
+higher).
### macOS
-Download the `GitHub Desktop.zip`, unpack the application and put it wherever you want.
+Download the `GitHub Desktop.zip`, unpack the application and put it wherever
+you want.
### Windows
On Windows you have two options:
- - Download the `GitHubDesktopSetup.exe` and run it to install it for the current user.
- - Download the `GitHubDesktopSetup.msi` and run it to install a machine-wide version of GitHub Desktop - each logged-in user will then be able to run GitHub Desktop from the program at `%PROGRAMFILES(x86)\GitHub Desktop Installer\desktop.exe`
+* Download the `GitHubDesktopSetup.exe` and run it to install it for the current
+ user.
+* Download the `GitHubDesktopSetup.msi` and run it to install a machine-wide
+ version of GitHub Desktop - each logged-in user will then be able to run
+ GitHub Desktop from the program at
+ `%PROGRAMFILES(x86)\GitHub Desktop Installer\desktop.exe`
## Data Directories
-GitHub Desktop will create directories to manage the files and data it needs to function. If you manage a network of computers and want to install GitHub Desktop, here is more information about how things work.
+GitHub Desktop will create directories to manage the files and data it needs to
+function. If you manage a network of computers and want to install GitHub
+Desktop, here is more information about how things work.
### macOS
- - `~/Library/Application Support/GitHub Desktop/` - this directory contains user-specific data which the application requires to run, and is created on launch if it doesn't exist. Log files are also stored in this location.
+
+* `~/Library/Application Support/GitHub Desktop/` - this directory contains
+ user-specific data which the application requires to run, and is created on
+ launch if it doesn't exist. Log files are also stored in this location.
### Windows
- - `%LOCALAPPDATA%\GitHubDesktop\` - contains the latest versions of the app, and some older versions if the user has updated from a previous version.
- - `%APPDATA%\GitHub Desktop\` - this directory contains user-specific data which the application requires to run, and is created on launch if it doesn't exist. Log files are also stored in this location.
+* `%LOCALAPPDATA%\GitHubDesktop\` - contains the latest versions of the app, and
+ some older versions if the user has updated from a previous version.
+* `%APPDATA%\GitHub Desktop\` - this directory contains user-specific data which
+ the application requires to run, and is created on launch if it doesn't exist.
+ Log files are also stored in this location.
## Log Files
-GitHub Desktop will generate log files if an unhandled exception is raised, to assist with troubleshooting. They are located in the data directory that GitHub Desktop uses (see above) under a `logs` subdirectory, organized by date using the format `YYYY-MM-DD.desktop.production.log`, where `YYYY-MM-DD` is the day the log was created.
+GitHub Desktop will generate log files if an unhandled exception is raised, to
+assist with troubleshooting. They are located in the data directory that GitHub
+Desktop uses (see above) under a `logs` subdirectory, organized by date using
+the format `YYYY-MM-DD.desktop.production.log`, where `YYYY-MM-DD` is the day
+the log was created.
diff --git a/docs/integrations/vsts.md b/docs/integrations/vsts.md
index 3c04369525..9c792d1465 100644
--- a/docs/integrations/vsts.md
+++ b/docs/integrations/vsts.md
@@ -2,20 +2,23 @@
## Authentication
-To authenticate against Visual Studio Team Services repositories, you need to enable the alternate authentication credentials.
+To authenticate against Visual Studio Team Services repositories, you need to
+enable the alternate authentication credentials.
-- Select **Security** in the user profile's dropdown:
+* Select **Security** in the user profile's dropdown:
![](https://user-images.githubusercontent.com/4404199/29400833-79755fe0-8337-11e7-8cfb-1d346a6801b4.png)
-- Select **Alternate authentication credentials**:
+* Select **Alternate authentication credentials**:
![](https://user-images.githubusercontent.com/4404199/29400853-8cc5918c-8337-11e7-92ad-60563d4d49e2.png)
- - Check the **Enable alternate authentication credentials** checkbox, and then choose a suitable username/password:
+* Check the **Enable alternate authentication credentials** checkbox, and then
+ choose a suitable username/password:
![](https://user-images.githubusercontent.com/4404199/29400917-bed11cc8-8337-11e7-9d3e-1bda2e99d519.png)
- - Enter your chosen credentials in Desktop when prompted. You can either use your email or the chosen username to authenticate:
+* Enter your chosen credentials in Desktop when prompted. You can either use
+ your email or the chosen username to authenticate:
![](https://user-images.githubusercontent.com/4404199/29401109-8bf03536-8338-11e7-8abb-b467378b6115.png)
diff --git a/docs/process/first-responder.md b/docs/process/first-responder.md
index 7f20009f5e..615e0e1942 100644
--- a/docs/process/first-responder.md
+++ b/docs/process/first-responder.md
@@ -10,15 +10,31 @@ We have a first responder rotation. The goals of the rotation are:
Each rotation is a week long. While first responder your primary duties are:
1. Triage issues.
- * Troubleshoot or follow up on troubleshooting started by the previous first responder. The current first responder should always bear responsibility for pushing troubleshooting forward, unless another team member has explicitly taken ownership.
- * Ensure issues are labeled accurately.
- * Review the [`more-information-needed`](https://github.com/desktop/desktop/issues?q=is%3Aopen+is%3Aissue+label%3Amore-information-needed+sort%3Aupdated-asc) and [`needs-reproduction`](https://github.com/desktop/desktop/issues?q=is%3Aopen+is%3Aissue+sort%3Aupdated-asc+label%3Aneeds-reproduction) issues and close any that have gone 2 weeks with no new activity.
- * See [issue-triage.md](issue-triage.md) for more information on our issue triage process.
+ * Troubleshoot or follow up on troubleshooting started by the previous first
+ responder. The current first responder should always bear responsibility
+ for pushing troubleshooting forward, unless another team member has
+ explicitly taken ownership.
+ * Ensure issues are labeled accurately.
+ * Review the
+ [`more-information-needed`](https://github.com/desktop/desktop/issues?q=is%3Aopen+is%3Aissue+label%3Amore-information-needed+sort%3Aupdated-asc)
+ and
+ [`needs-reproduction`](https://github.com/desktop/desktop/issues?q=is%3Aopen+is%3Aissue+sort%3Aupdated-asc+label%3Aneeds-reproduction)
+ issues and close any that have gone 2 weeks with no new activity.
+ * See [issue-triage.md](issue-triage.md) for more information on our issue
+ triage process.
1. Check community pull requests and label ones that are `ready-for-review`.
1. Review community pull requests.
-Once those things are done, you should feel free to spend your time scratching your own itches on the project. Really wanna refactor that one monstrous component? Go for it! Wanna fix that one bug that drives you nuts? Do it! Wanna upgrade all of our dependencies? You're an awesome masochist!
+Once those things are done, you should feel free to spend your time scratching
+your own itches on the project. Really wanna refactor that one monstrous
+component? Go for it! Wanna fix that one bug that drives you nuts? Do it! Wanna
+upgrade all of our dependencies? You're an awesome masochist!
-That said, tasks which need design work generally *aren't* well-suited to this. It would pull our fantastic designers away from milestone work and it would be hard to get done in a week's time.
+That said, tasks which need design work generally _aren't_ well-suited to this.
+It would pull our fantastic designers away from milestone work and it would be
+hard to get done in a week's time.
-If you're at a loss for ideas or wonder if something is an appropriate first responder task, ask the rest of the team! Or poke through the [`tech-debt`](https://github.com/desktop/desktop/labels/tech-debt) label for some inspiration.
+If you're at a loss for ideas or wonder if something is an appropriate first
+responder task, ask the rest of the team! Or poke through the
+[`tech-debt`](https://github.com/desktop/desktop/labels/tech-debt) label for
+some inspiration.
diff --git a/docs/process/issue-triage.md b/docs/process/issue-triage.md
index 3a14a19b69..242e2959d0 100644
--- a/docs/process/issue-triage.md
+++ b/docs/process/issue-triage.md
@@ -1,11 +1,11 @@
# Issue Triage
> Triage (/ˈtriːɑːʒ/ or /triːˈɑːʒ/) is the process of determining the priority
-> of patients' treatments based on the severity of their condition. This
-> rations patient treatment efficiently when resources are insufficient for all
-> to be treated immediately.
+> of patients' treatments based on the severity of their condition. This rations
+> patient treatment efficiently when resources are insufficient for all to be
+> treated immediately.
>
-> *From Wikipedia*
+> _From Wikipedia_
The above describes medical triage but it is clear that it also applies to our
situation. Triage is a process of sifting through all the things that we could
@@ -19,18 +19,18 @@ participation. In order to do this, we will have to be clear about what we need
from people so that we can deliver what they need. This also means that we will
have to be very clear and decisive when we are not getting the information or
cooperation we need so that we can move on. Just like in an emergency room, if
-it is a choice between spending several hours to have a 10% chance of saving
-one person or spending several hours definitely saving multiple people, the
-choice is clear.
+it is a choice between spending several hours to have a 10% chance of saving one
+person or spending several hours definitely saving multiple people, the choice
+is clear.
## Goals
* Communicate clearly and effectively
- * What the maintainers will work on
- * What pull requests will be reviewed for acceptance
- * What pull requests *will not* be reviewed for acceptance
-* Outline exactly what is expected for an issue to meet the "triage bar" so
- that issues that don't meet the bar can be closed
+ * What the maintainers will work on
+ * What pull requests will be reviewed for acceptance
+ * What pull requests _will not_ be reviewed for acceptance
+* Outline exactly what is expected for an issue to meet the "triage bar" so that
+ issues that don't meet the bar can be closed
* Reduce the amount of time and back-and-forth needed to take an issue from
being first-opened to `triaged` or closed
* Accept input from the community that helps us deliver meaningful results back
@@ -39,9 +39,9 @@ choice is clear.
## The Issues List Is Our Backlog
The GitHub Desktop issues list is what the maintainers team uses to guide our
-work. In order for our work to be focused and efficient, our issues list must
-be clean and well-organized. Accepting input from the community is a
-significant benefit *when it does not distract us from making things better*.
+work. In order for our work to be focused and efficient, our issues list must be
+clean and well-organized. Accepting input from the community is a significant
+benefit _when it does not distract us from making things better_.
* Untriaged issues are tasks that are being evaluated to determine if they meet
the triage bar
@@ -57,19 +57,19 @@ contain in the body of the issue:
* The build number associated with the given issue
* The operating system and OS version number that the problem was reproduced on
* Specific steps to reproduce the problem or desired behavior
-* If the steps to reproduce the problem do not reproduce it 100% of the time,
- an estimate of how often it reproduces with the given steps and configuration
+* If the steps to reproduce the problem do not reproduce it 100% of the time, an
+ estimate of how often it reproduces with the given steps and configuration
* **One** and only one issue
* Any other information that is required to reproduce the problem (sample Git
repository, specific OS configuration, etc)
### The Body of the Issue
-You'll notice above that the body of the issue gets special mention. The body
-of the issue is the description of the task to be done. A maintainer should
-only have to read the body of the issue to understand what needs to happen.
-They should not have to read the pages of comments to understand what they need
-to do in order to address the issue at hand.
+You'll notice above that the body of the issue gets special mention. The body of
+the issue is the description of the task to be done. A maintainer should only
+have to read the body of the issue to understand what needs to happen. They
+should not have to read the pages of comments to understand what they need to do
+in order to address the issue at hand.
## Process
@@ -81,7 +81,8 @@ issues from time to time that isn't and won't be covered here.
1. Person files a new issue
1. Maintainer checks to ensure they adequately filled out the template. If not,
- close with the [request to fill out the template](canned-messages/needs-template.md).
+ close with the
+ [request to fill out the template](canned-messages/needs-template.md).
1. Label the issue as a `bug` if the issue is a regression or behaviour that
needs to be fixed.
1. If the issue has already been fixed, add a comment linking to the original
@@ -89,25 +90,26 @@ issues from time to time that isn't and won't be covered here.
1. If anything is unclear but the template is adequately filled out, post what
questions you have and label with `more-information-needed`
1. Maintainer attempts to reproduce the problem
- 1. If the problem is not reproducible, label with `needs-reproduction` and
- ask the author of the issue for [clarification on the repro steps](canned-messages/repro-steps.md)
-1. Label the issue as an `enhancement` if the issue mentions new behaviour
- or functionality that the app should have.
+ 1. If the problem is not reproducible, label with `needs-reproduction` and
+ ask the author of the issue for
+ [clarification on the repro steps](canned-messages/repro-steps.md)
+1. Label the issue as an `enhancement` if the issue mentions new behaviour or
+ functionality that the app should have.
# Labels
## More Information Needed
Periodically we should be doing a sweep of issues that are open and labeled
-`more-information-needed`. If the original poster has not responded within
-two weeks after the last question by an official maintainer, close the issue
-with [the no response message](canned-messages/no-response.md).
+`more-information-needed`. If the original poster has not responded within two
+weeks after the last question by an official maintainer, close the issue with
+[the no response message](canned-messages/no-response.md).
## Needs Reproduction
-If a problem is consistently not reproducible, we **need** more information
-from the person reporting the problem. If it isn't a simple misunderstanding
-about the steps to reproduce the problem, then we should label it
+If a problem is consistently not reproducible, we **need** more information from
+the person reporting the problem. If it isn't a simple misunderstanding about
+the steps to reproduce the problem, then we should label it
`more-information-needed` as well and follow that process.
## Bugs
@@ -115,9 +117,9 @@ about the steps to reproduce the problem, then we should label it
These are problems with the current app that are identified by users. These
should be reviewed to ensure they:
- - specify the build associated with the issue
- - have instructions sufficient to reproduce the issue
- - have details about the impact and severity of the issue
+* specify the build associated with the issue
+* have instructions sufficient to reproduce the issue
+* have details about the impact and severity of the issue
We will use the `more-information-needed` and `reproduction-required` labels to
indicate when issues are incomplete.
@@ -139,9 +141,9 @@ To ensure the quality of the application remains high over time, the core team
may need to work with the user proposing the change to clarify details before
work should proceed:
- - user interface - appropriate use of styles, layout
- - user experience - ensure things are consistent, discoverable
- - quality - ensure the change does not adversely affect other features
+* user interface - appropriate use of styles, layout
+* user experience - ensure things are consistent, discoverable
+* quality - ensure the change does not adversely affect other features
e.g. GitHub Desktop should support worktrees as a first class feature.
@@ -153,11 +155,12 @@ by the community will be for things that are interesting but are also well
beyond the current plans of the team.
We will apply the `future-proposal` label to these issues, so that they can be
-searched for when it comes time to plan for the future. However, to keep
-our issue tracker focused on tasks currently on the roadmap we will close these
+searched for when it comes time to plan for the future. However, to keep our
+issue tracker focused on tasks currently on the roadmap we will close these
future proposals to avoid information overload.
-You can view [the list](https://github.com/desktop/desktop/issues?q=is%3Aissue+label%3Afuture-proposal)
+You can view
+[the list](https://github.com/desktop/desktop/issues?q=is%3Aissue+label%3Afuture-proposal)
of these `future-proposal` tasks, and continue to add your thoughts and feedback
there.
diff --git a/docs/process/release-planning.md b/docs/process/release-planning.md
index ac808ea8e0..c6a4c2d45c 100644
--- a/docs/process/release-planning.md
+++ b/docs/process/release-planning.md
@@ -1,7 +1,12 @@
# Release Planning
-We plan work at two levels of granularity: first at the marketing release level (1.1, 1.2, etc.) and then at the milestone level. Marketing releases are made up of multiple milestones. Milestones should contain roughly a month’s worth of work.
+We plan work at two levels of granularity: first at the marketing release level
+(1.1, 1.2, etc.) and then at the milestone level. Marketing releases are made up
+of multiple milestones. Milestones should contain roughly a month’s worth of
+work.
We’ll release updates as needed or when a milestone is completed.
-Large features and user-visible changes are feature-flagged, to be unflagged in the next marketing release. Beta and dev builds will have all feature flags enabled.
+Large features and user-visible changes are feature-flagged, to be unflagged in
+the next marketing release. Beta and dev builds will have all feature flags
+enabled.
diff --git a/docs/process/releasing-updates.md b/docs/process/releasing-updates.md
index fc6fd7818b..669f5ec041 100644
--- a/docs/process/releasing-updates.md
+++ b/docs/process/releasing-updates.md
@@ -2,23 +2,34 @@
## Channels
-We have three channels to which we can release: `production`, `beta`, and `test`.
+We have three channels to which we can release: `production`, `beta`, and
+`test`.
-- `production` is the channel from which the general public downloads and receives updates. It should be stable and polished.
+* `production` is the channel from which the general public downloads and
+ receives updates. It should be stable and polished.
-- `beta` is released more often than `production`. It may be buggy and unpolished.
+* `beta` is released more often than `production`. It may be buggy and
+ unpolished.
-- `test` is unlike the other two. It does not receive updates. Each test release is locked in time. It's used entirely for providing test releases.
+* `test` is unlike the other two. It does not receive updates. Each test release
+ is locked in time. It's used entirely for providing test releases.
## The Process
-1. Ensure the release notes for `$version` in [`changelog.json`](../../changelog.json) are up-to-date.
+1. Ensure the release notes for `$version` in
+ [`changelog.json`](../../changelog.json) are up-to-date.
1. Bump `version` in [`app/package.json`](../../app/package.json) to `$version`.
1. Commit & push the changes.
1. Run `.release! desktop/YOUR_BRANCH to {production|beta|test}`.
- * We're using `.release` with a bang so that we don't have to wait for any current CI on the branch to finish. This might feel a little wrong, but it's OK since making the release itself will also run CI.
-1. If you're releasing a production update, release a beta update for the next version too, so that beta users are on the latest release.
+
+* We're using `.release` with a bang so that we don't have to wait for any
+ current CI on the branch to finish. This might feel a little wrong, but it's
+ OK since making the release itself will also run CI.
+
+1. If you're releasing a production update, release a beta update for the next
+ version too, so that beta users are on the latest release.
## Error Reporting
-If an error occurs during the release process, a needle will be reported to Central's [haystack](https://haystack.githubapp.com/central).
+If an error occurs during the release process, a needle will be reported to
+Central's [haystack](https://haystack.githubapp.com/central).
diff --git a/docs/process/reviews.md b/docs/process/reviews.md
index bac857303b..78aa98476f 100644
--- a/docs/process/reviews.md
+++ b/docs/process/reviews.md
@@ -4,8 +4,8 @@ This is the typical flow:
1. **Contributor** opens pull request.
1. When it's ready for review, they comment on it saying so.
-1. A member of the maintainer team will give it a quick look over and
- add the `ready-for-review` label.
+1. A member of the maintainer team will give it a quick look over and add the
+ `ready-for-review` label.
1. Suddenly a wild **reviewer** appears!
1. **Reviewer** assigns the PR to themselves.
1. **Reviewer** leaves line comments with suggestions or questions.
@@ -16,7 +16,7 @@ This is the typical flow:
comment on the PR with an emoji, meme, pokémon or words to that effect.
1. Goto 6 until both parties are happy with the PR.
1. The **reviewer** hits the big green merge button and deletes the branch (if
- applicable).
+ applicable).
The rest of this document goes into more details around this flow.
@@ -40,17 +40,18 @@ understand quickly what's changed.
### Keep The Commit History Tidy
-We're not that fussy about the history, but to make reviewing easier here's
-some general tips:
+We're not that fussy about the history, but to make reviewing easier here's some
+general tips:
- - make small, meaningful and logical commits - these make the review process easier
- - [write good commit messages](https://chris.beams.io/posts/git-commit/) -
- these help the reviewer to understand the changes
- - keep up to date with `master` - not only does this address potential merge
- conflicts, it ensures you're integrating with the latest code
+* make small, meaningful and logical commits - these make the review process
+ easier
+* [write good commit messages](https://chris.beams.io/posts/git-commit/) - these
+ help the reviewer to understand the changes
+* keep up to date with `master` - not only does this address potential merge
+ conflicts, it ensures you're integrating with the latest code
-When merging, we prefer you merge `master` into your branch, but for small
-PRs a rebase is fine.
+When merging, we prefer you merge `master` into your branch, but for small PRs a
+rebase is fine.
### At Least One Assignee
@@ -64,11 +65,11 @@ reviewer.
We're using GitHub's review tools to co-ordinate feedback, and we like to be
methodical with our reviews, so you'll probably end up with one of two results:
- - **Approved**: nothing else to do; the reviewer merges
- - **Request Changes**: there are things to address; reviewer provides details
+* **Approved**: nothing else to do; the reviewer merges
+* **Request Changes**: there are things to address; reviewer provides details
-Reviews can take a few iterations, especially for large contributions. Don't
-be disheartened if you feel it takes time - we just want to ensure each
+Reviews can take a few iterations, especially for large contributions. Don't be
+disheartened if you feel it takes time - we just want to ensure each
contribution is high-quality and that any outstanding questions are resolved,
captured or documented for posterity.
@@ -90,4 +91,3 @@ requests.
While everyone has their own domain expertise around the codebase, we encourage
people to share the load of reviews and reviewing areas of the codebase that
aren't as familiar. This spreads knowledge across the team
-
diff --git a/docs/process/roadmap.md b/docs/process/roadmap.md
index 373c650619..c97704f023 100644
--- a/docs/process/roadmap.md
+++ b/docs/process/roadmap.md
@@ -1,63 +1,75 @@
# Roadmap
-The following are our marketing releases as planned to date. They contain the broad features we're considering. The further away a release is, the less defined it is. Releases are subject to change at any time.
+The following are our marketing releases as planned to date. They contain the
+broad features we're considering. The further away a release is, the less
+defined it is. Releases are subject to change at any time.
## 1.1
-- Relationship to _X_
- - Show how the current branch relates to the target branch
- - The target is the default branch or the upstream's default branch
- - _Probably_ let the user switch the target branch
+* Relationship to _X_
-- Conflict resolution lite
- - Differentiate conflicted files from other changed files
- - Let me choose my mergetool
- - Let me open my mergetool
+ * Show how the current branch relates to the target branch
+ * The target is the default branch or the upstream's default branch
+ * _Probably_ let the user switch the target branch
-- Pull request list
- - _Probably_ a tab in the Branches foldout
- - Group my pull requests vs. others
+* Conflict resolution lite
-- Pull request CI status
- - Show PRs CI status in the above pull request list
+ * Differentiate conflicted files from other changed files
+ * Let me choose my mergetool
+ * Let me open my mergetool
-- Auto-config upstreams on fork
- - Create an `upstream` remote for forks
- - Fetch periodically
+* Pull request list
+
+ * _Probably_ a tab in the Branches foldout
+ * Group my pull requests vs. others
+
+* Pull request CI status
+
+ * Show PRs CI status in the above pull request list
+
+* Auto-config upstreams on fork
+ * Create an `upstream` remote for forks
+ * Fetch periodically
## 1.2
-- Full conflict resolution
- - Lots TBD
- - Pick ours/theirs/both
- - Edit inline
- - Abort merge
- - How did I get here?
+* Full conflict resolution
-- Fork if needed
- - Offer to fork on clone, or push, or ?
+ * Lots TBD
+ * Pick ours/theirs/both
+ * Edit inline
+ * Abort merge
+ * How did I get here?
-- Protected branches and default branch protection
- - Don't let me commit to branches I shouldn't commit to
- - Guide me to creating my own branches
+* Fork if needed
-- CI status notifications lite
- - Only on my PRs
- - Use OS notifications
- - Notifications link to the PR on dotcom
+ * Offer to fork on clone, or push, or ?
+
+* Protected branches and default branch protection
+
+ * Don't let me commit to branches I shouldn't commit to
+ * Guide me to creating my own branches
+
+* CI status notifications lite
+ * Only on my PRs
+ * Use OS notifications
+ * Notifications link to the PR on dotcom
## 1.3
-- Keep environment up-to-date
- - Do I need to run `npm install`? `bundle install`?
- - Is it pluggable?
+* Keep environment up-to-date
-- Linting
- - TBD
+ * Do I need to run `npm install`? `bundle install`?
+ * Is it pluggable?
-- Save face
- - Keep me from making embarrassing mistakes
- - Don't let me commit a file with conflict markers
+* Linting
-- Repository list info
- - Does a repository need my attention?
+ * TBD
+
+* Save face
+
+ * Keep me from making embarrassing mistakes
+ * Don't let me commit a file with conflict markers
+
+* Repository list info
+ * Does a repository need my attention?
diff --git a/docs/process/testing.md b/docs/process/testing.md
index e467232b2b..28a08177c4 100644
--- a/docs/process/testing.md
+++ b/docs/process/testing.md
@@ -1,366 +1,491 @@
### Download Desktop
- - [ ] User can download latest (Mac & Windows) Desktop from https://desktop.github.com/
- - [ ] Mac: https://central.github.com/deployments/desktop/desktop/latest/darwin
- - [ ] Homebrew package manager: $ brew cask install github-desktop
- - [ ] Windows: https://central.github.com/deployments/desktop/desktop/latest/win32
- - [ ] Chocolatey package manager: c:\> choco install github-desktop
- - [ ] 64-bit and up
- - [ ] Data is retained if you download and open a fresh copy
- - [ ] Release notes page is up-to-date
- - [ ] Help page is accessible
- - [ ] 'Please update' notifcation shown in Classic apps
+
+* [ ] User can download latest (Mac & Windows) Desktop from
+ https://desktop.github.com/
+ * [ ] Mac:
+ https://central.github.com/deployments/desktop/desktop/latest/darwin
+ * [ ] Homebrew package manager: $ brew cask install github-desktop
+ * [ ] Windows:
+ https://central.github.com/deployments/desktop/desktop/latest/win32
+ * [ ] Chocolatey package manager: c:\> choco install github-desktop
+ * [ ] 64-bit and up
+ * [ ] Data is retained if you download and open a fresh copy
+* [ ] Release notes page is up-to-date
+* [ ] Help page is accessible
+* [ ] 'Please update' notifcation shown in Classic apps
### Welcome Flow
- - [ ] Create your account (/join?source=github-desktop)
- - [ ] User is not automatically logged into Desktop post account creation
- - [ ] `Sign in to Github.com` link
- - [ ] `Sign in` successful if valid username/email and password
- - [ ] If 2FA activated, user sent auth code to enter (test SMS and authenticator app)
- - [ ] User can reissue auth code with `Resend SMS` link
- - [ ] Sign in successful with active 2FA code, user goes to Configure Git
- - [ ] User sees Repository landing page if sign in successful
- - [ ] Error message if code is wrong or inactive
- - [ ] Error message if incorrect username/email or password
- - [ ] Forgot link (/password_reset)
- - [ ] `Cancel` returns to initial Welcome Flow
- - [ ] `Sign in using your browser` opens default browser
- - [ ] Browser login, "authorize" GitHub Desktop, “accept” link
- - [ ] If successful, Desktop shown in `/settings/applications` in user profile
- - [ ] `Sign in to Enterprise` link (works with v2.8 and up)
- - [ ] `Continue` successful if server address is valid, else error message
- - [ ] `Sign in using your browser` opens default browser
- - [ ] Browser login, [insert custom security measure], Authorize GitHub Desktop, “accept” link
- - [ ] User goes to Configure Git if successful
- - [ ] `Cancel` returns to initial Welcome Flow
- - [ ] User served generic message if not authorized to access Enterprise server
- - [ ] Skip "username+password" step
- - [ ] Configure Git
- - [ ] Name and email pulled from global `.gitconfig` file, if configured
- - [ ] If recognized, your avatar is present in example commit; gravatars not recognized
- - [ ] `Continue` okay if fields populated or blank
- - [ ] Valid login credentials from dotcom or Enterprise carried through
- - [ ] User sees Repository landing page if sign in successful
- - [ ] Usage Data
- - [ ] Checked by default; user can uncheck. (Should not be checked if user on free plan only.)
- - [ ] Clicking `Finish`, and user is signed in successfully to Desktop
- - [ ] `Cancel` returns to initial Configure Git page
-### Repositories landing page; default no repositories
- - [ ] Create New Repository (Mac: ⌘N; Windows: Ctrl+N)
- - [ ] Modal opens with name, path (choose option), readme (unchecked), git ignore, license. Name and path mandatory.
- - [ ] If `Add this repository` warning message appears, clicking it adds to Repo list
- - [ ] If repository name is over 100 characterers, warning message is surfaced in modal
- - [ ] If repository contains URL-hostile characters, show error message
- - [ ] `Create Repository` button adds new repo, which is added to Repo list
- - [ ] `Cancel` button does not save any changes made; modal closed
- - [ ] User cannot create a new repo inside a locked local directory
- - [ ] Clone a Repository (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
- - [ ] Enter valid URL or username/repo/gist, else error message
- - [ ] If authentication error for Github.com, modal with username/password surfaced; `Cancel` or `Save and Retry` buttons
- - [ ] If successful, repo is cloned
- - [ ] Modal surfaces again if unsuccessful
- - [ ] If authentication error for Enterprise, user redirected to Preferences
- - [ ] Valid path can be entered or selected
- - [ ] Local path is prepopulated; if not unique then error surfaced
- - [ ] All repos from both GitHub.com and Enterprise are populated -- your repos are listed first, followed by org(s)
- - [ ] User must be logged in to view list; else `Sign In` button present
- - [ ] Results are filterable, and can be selected for cloning
- - [ ] `Clone` creates repo at selected path
- - [ ] Repo added to Repo list
- - [ ] `Cancel` closes modal, no repo cloned
- - [ ] Add a Local Repository (Mac: ⌘O; Windows: Ctrl+O)
- - [ ] Valid path can be entered or selected
- - [ ] `Add repository` activated if repo path exists
- - [ ] Repo added to Repo list
- - [ ] If directory path not valid, 'Create a new repo' error message is present
- - [ ] `Cancel` closes modal, no repo added
- - [ ] Large repos (> 100MB) trigger Initialize Git LFS modal
- - [ ] Link takes user to (https://git-lfs.github.com/)
- - [ ] Local path to repo is displayed
- - [ ] User can click `Cancel` or `Initialize Git LFS`
- - [ ] Drag and drop repository
- - [ ] User can drag existing local repository into Desktop
- - [ ] Successful attempt adds repo to Repo list; else error message
+* [ ] Create your account (/join?source=github-desktop)
+ * [ ] User is not automatically logged into Desktop post account creation
+* [ ] `Sign in to Github.com` link
+ * [ ] `Sign in` successful if valid username/email and password
+ * [ ] If 2FA activated, user sent auth code to enter (test SMS and
+ authenticator app)
+ * [ ] User can reissue auth code with `Resend SMS` link
+ * [ ] Sign in successful with active 2FA code, user goes to Configure Git
+ * [ ] User sees Repository landing page if sign in successful
+ * [ ] Error message if code is wrong or inactive
+ * [ ] Error message if incorrect username/email or password
+ * [ ] Forgot link (/password_reset)
+ * [ ] `Cancel` returns to initial Welcome Flow
+ * [ ] `Sign in using your browser` opens default browser
+ * [ ] Browser login, "authorize" GitHub Desktop, “accept” link
+ * [ ] If successful, Desktop shown in `/settings/applications` in user
+ profile
+* [ ] `Sign in to Enterprise` link (works with v2.8 and up)
+ * [ ] `Continue` successful if server address is valid, else error message
+ * [ ] `Sign in using your browser` opens default browser
+ * [ ] Browser login, [insert custom security measure], Authorize GitHub
+ Desktop, “accept” link
+ * [ ] User goes to Configure Git if successful
+ * [ ] `Cancel` returns to initial Welcome Flow
+ * [ ] User served generic message if not authorized to access Enterprise
+ server
+* [ ] Skip "username+password" step
+ * [ ] Configure Git
+ * [ ] Name and email pulled from global `.gitconfig` file, if configured
+ * [ ] If recognized, your avatar is present in example commit; gravatars not
+ recognized
+ * [ ] `Continue` okay if fields populated or blank
+ * [ ] Valid login credentials from dotcom or Enterprise carried through
+ * [ ] User sees Repository landing page if sign in successful
+* [ ] Usage Data
+ * [ ] Checked by default; user can uncheck. (Should not be checked if user on
+ free plan only.)
+ * [ ] Clicking `Finish`, and user is signed in successfully to Desktop
+ * [ ] `Cancel` returns to initial Configure Git page
+
+### Repositories landing page; default no repositories
+
+* [ ] Create New Repository (Mac: ⌘N; Windows: Ctrl+N)
+ * [ ] Modal opens with name, path (choose option), readme (unchecked), git
+ ignore, license. Name and path mandatory.
+ * [ ] If `Add this repository` warning message appears, clicking it adds to
+ Repo list
+ * [ ] If repository name is over 100 characterers, warning message is
+ surfaced in modal
+ * [ ] If repository contains URL-hostile characters, show error message
+ * [ ] `Create Repository` button adds new repo, which is added to Repo list
+ * [ ] `Cancel` button does not save any changes made; modal closed
+ * [ ] User cannot create a new repo inside a locked local directory
+* [ ] Clone a Repository (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
+ * [ ] Enter valid URL or username/repo/gist, else error message
+ * [ ] If authentication error for Github.com, modal with username/password
+ surfaced; `Cancel` or `Save and Retry` buttons
+ * [ ] If successful, repo is cloned
+ * [ ] Modal surfaces again if unsuccessful
+ * [ ] If authentication error for Enterprise, user redirected to Preferences
+ * [ ] Valid path can be entered or selected
+ * [ ] Local path is prepopulated; if not unique then error surfaced
+ * [ ] All repos from both GitHub.com and Enterprise are populated -- your
+ repos are listed first, followed by org(s)
+ * [ ] User must be logged in to view list; else `Sign In` button present
+ * [ ] Results are filterable, and can be selected for cloning
+ * [ ] `Clone` creates repo at selected path
+ * [ ] Repo added to Repo list
+ * [ ] `Cancel` closes modal, no repo cloned
+* [ ] Add a Local Repository (Mac: ⌘O; Windows: Ctrl+O)
+ * [ ] Valid path can be entered or selected
+ * [ ] `Add repository` activated if repo path exists
+ * [ ] Repo added to Repo list
+ * [ ] If directory path not valid, 'Create a new repo' error message is
+ present
+ * [ ] `Cancel` closes modal, no repo added
+ * [ ] Large repos (> 100MB) trigger Initialize Git LFS modal
+ * [ ] Link takes user to (https://git-lfs.github.com/)
+ * [ ] Local path to repo is displayed
+ * [ ] User can click `Cancel` or `Initialize Git LFS`
+* [ ] Drag and drop repository
+ * [ ] User can drag existing local repository into Desktop
+ * [ ] Successful attempt adds repo to Repo list; else error message
### Publishing a repository
- - [ ] Publish Repository modal present if repo is unpublished and user clicks `Publish repository` button
- - [ ] GitHub tab is default; Enterprise tab is also present
- - [ ] User must be signed in to publish, else `Sign In` button present on tab
- - [ ] Modal fields are Name, Description (optional), `Keep this code private` checkbox, Organization list (alpha order, tab-specific), `Cancel` button, `Publish Repository` button
- - [ ] Clicking `Publish Repository` button pushes repo to GitHub.com or Enterprise; `Cancel` button closes modal
- - [ ] Repository is present on GitHub.com or Enterprise if published
- - [ ] 'Visibility can't be private error' shown, if user's plan is not sufficient
- - [ ] A `.gitattributes` file is added to the repository as part of the initial commit
+
+* [ ] Publish Repository modal present if repo is unpublished and user clicks
+ `Publish repository` button
+ * [ ] GitHub tab is default; Enterprise tab is also present
+ * [ ] User must be signed in to publish, else `Sign In` button present on
+ tab
+ * [ ] Modal fields are Name, Description (optional), `Keep this code private`
+ checkbox, Organization list (alpha order, tab-specific), `Cancel`
+ button, `Publish Repository` button
+ * [ ] Clicking `Publish Repository` button pushes repo to GitHub.com or
+ Enterprise; `Cancel` button closes modal
+ * [ ] Repository is present on GitHub.com or Enterprise if published
+ * [ ] 'Visibility can't be private error' shown, if user's plan is not
+ sufficient
+ * [ ] A `.gitattributes` file is added to the repository as part of the
+ initial commit
### Application
- - [ ] Minimize, Maximize, Close buttons work in top nav
- - [ ] If user zooms in and quits app, settings should be retained when reopened
- - [ ] Double-clicking local desktop icon opens the application (Mac only)
- - [ ] Double clicking top nav bar toggles full-screen / last used screen-size (Mac only); Exit by (Mac: ^⌘f11; Windows: Alt)
- - [ ] Clicking Desktop icon in dock/taskbar opens the application
- - [ ] Changing desktop icon name while app is open results in package error; closed app name change is successful
+
+* [ ] Minimize, Maximize, Close buttons work in top nav
+ * [ ] If user zooms in and quits app, settings should be retained when
+ reopened
+* [ ] Double-clicking local desktop icon opens the application (Mac only)
+* [ ] Double clicking top nav bar toggles full-screen / last used screen-size
+ (Mac only); Exit by (Mac: ^⌘f11; Windows: Alt)
+* [ ] Clicking Desktop icon in dock/taskbar opens the application
+* [ ] Changing desktop icon name while app is open results in package error;
+ closed app name change is successful
### GitHub Desktop menu top-level
- - [ ] About GitHub Desktop
- - [ ] Current version shown
- - [ ] Links to release notes (dotcom), terms (modal), licenses (modal)
- - [ ] Update banner shows `whats new` link and `retart now` link
- - [ ] Update modal shows enhancements / bug fixes in latest build with `Install button`; user can X the banner
- - [ ] Clicking the version number copies to clipboard
- - [ ] Edge case: If build is "old", error message displays warning user to "... manually check for updates".
- - [ ] Clicking `Check for updates` button produces "read-only volume" error message, with link for help
- - [ ] Clicking `Check for updates` button timestamps last attempt
- - [ ] If update available, `Install Update` button will quit app and install update
- - [ ] If update available, download banner is present in main window with `restart` and `what’s new` links
- - [ ] If checking for update or download latest update, the `Check for updates` button is disabled
- - [ ] Restarting the app automatically checks for updates
- - [ ] `Close` button closes modal
- - [ ] Preferences/Options (Mac/Windows: ⌘,)
- - [ ] Accounts
- - [ ] GitHub.com name, handle, avatar, `sign out` button, if user signed in
- - [ ] Enterprise handle, avatar, `sign out` button, if user signed in
- - [ ] User can sign out of either account
- - [ ] User can sign-in to both Enterprise and GitHub.com at same time
- - [ ] Git
- - [ ] Username and email are displayed if `.gitconfig` configured for Welcome flow
- - [ ] `Save` button saves any changes made
- - [ ] `Cancel` button does not save any changes made; modal closed
- - [ ] Advanced
- - [ ] External Editor options shown in dropdown; else show "Install Atom?" link
- - [ ] Shell options shown in dropdown
- - [ ] Shared usage data option; selection carried through from Welcome flow
- - [ ] `anonymous usage data` link opens https://desktop.github.com/usage-data/
- - [ ] Check `stats-opt-out` value in Dev Tools > Application > Local storage > file://
- - [ ] Confirmation dialogue for removing repositories is checked by default; user can toggle
- - [ ] Check `ConfirmDiscardChanges` value in Dev Tools > Application > Local storage > file://
- - [ ] Confirmation dialogue for disgarding files is checked by default; user can toggle
- - [ ] Check `ConfirmRepoRemoval` value in Dev Tools > Application > Local storage > file://
- - [ ] `Save` button saves any changes made
- - [ ] `Cancel` button does not save any changes made; modal closed
- - [ ] Install command line tool installs tool at `/usr/local/bin/github` (Mac only as Windows done automagically, Helper may require password, else error message)
- - [ ] If already installed, user sees: "The command line tool has been installed at /usr/local/bin/github"
- - [ ] Clicking `OK` closes modal
- - [ ] Quit/Exit Desktop (Mac: ⌘Q)
- - [ ] Quitting/Exiting and reopening Desktop returns you to last visited repo
+
+* [ ] About GitHub Desktop
+ * [ ] Current version shown
+ * [ ] Links to release notes (dotcom), terms (modal), licenses (modal)
+ * [ ] Update banner shows `whats new` link and `retart now` link
+ * [ ] Update modal shows enhancements / bug fixes in latest build with
+ `Install button`; user can X the banner
+ * [ ] Clicking the version number copies to clipboard
+ * [ ] Edge case: If build is "old", error message displays warning user to
+ "... manually check for updates".
+ * [ ] Clicking `Check for updates` button produces "read-only volume" error
+ message, with link for help
+ * [ ] Clicking `Check for updates` button timestamps last attempt
+ * [ ] If update available, `Install Update` button will quit app and install
+ update
+ * [ ] If update available, download banner is present in main window with
+ `restart` and `what’s new` links
+ * [ ] If checking for update or download latest update, the
+ `Check for updates` button is disabled
+ * [ ] Restarting the app automatically checks for updates
+ * [ ] `Close` button closes modal
+* [ ] Preferences/Options (Mac/Windows: ⌘,)
+ * [ ] Accounts
+ * [ ] GitHub.com name, handle, avatar, `sign out` button, if user signed in
+ * [ ] Enterprise handle, avatar, `sign out` button, if user signed in
+ * [ ] User can sign out of either account
+ * [ ] User can sign-in to both Enterprise and GitHub.com at same time
+ * [ ] Git
+ * [ ] Username and email are displayed if `.gitconfig` configured for
+ Welcome flow
+ * [ ] `Save` button saves any changes made
+ * [ ] `Cancel` button does not save any changes made; modal closed
+ * [ ] Advanced
+ * [ ] External Editor options shown in dropdown; else show "Install Atom?"
+ link
+ * [ ] Shell options shown in dropdown
+ * [ ] Shared usage data option; selection carried through from Welcome flow
+ * [ ] `anonymous usage data` link opens
+ https://desktop.github.com/usage-data/
+ * [ ] Check `stats-opt-out` value in Dev Tools > Application > Local
+ storage > file://
+ * [ ] Confirmation dialogue for removing repositories is checked by default;
+ user can toggle
+ * [ ] Check `ConfirmDiscardChanges` value in Dev Tools > Application >
+ Local storage > file://
+ * [ ] Confirmation dialogue for disgarding files is checked by default; user
+ can toggle
+ * [ ] Check `ConfirmRepoRemoval` value in Dev Tools > Application > Local
+ storage > file://
+ * [ ] `Save` button saves any changes made
+ * [ ] `Cancel` button does not save any changes made; modal closed
+* [ ] Install command line tool installs tool at `/usr/local/bin/github` (Mac
+ only as Windows done automagically, Helper may require password, else
+ error message)
+ * [ ] If already installed, user sees: "The command line tool has been
+ installed at /usr/local/bin/github"
+ * [ ] Clicking `OK` closes modal
+* [ ] Quit/Exit Desktop (Mac: ⌘Q)
+ * [ ] Quitting/Exiting and reopening Desktop returns you to last visited repo
### File top-level menu
- - [ ] Create New Repository (Mac: ⌘N; Windows: Ctrl+N)
- - [ ] Clone a Repository (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
- - [ ] Add a Local Repository (Mac: ⌘O; Windows: Ctrl+O)
- - [ ] Options... (Windows only: Ctrl+,)
- - [ ] Exit (Windows only; quits the app)
+
+* [ ] Create New Repository (Mac: ⌘N; Windows: Ctrl+N)
+* [ ] Clone a Repository (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
+* [ ] Add a Local Repository (Mac: ⌘O; Windows: Ctrl+O)
+* [ ] Options... (Windows only: Ctrl+,)
+* [ ] Exit (Windows only; quits the app)
### Edit top-level menu
- - [ ] Undo (Mac: ⌘Z; Windows: Ctrl+Z)
- - [ ] Redo (Mac: ⇧⌘Z; Windows: Ctrl+Y)
- - [ ] Cut (Mac: ⌘X; Windows: Ctrl+X)
- - [ ] Copy (Mac: ⌘C; Windows: Ctrl+C)
- - [ ] Paste (Mac: ⌘V; Windows: Ctrl+V)
- - [ ] Select all (Mac: ⌘A; Windows: Ctrl+A)
+
+* [ ] Undo (Mac: ⌘Z; Windows: Ctrl+Z)
+* [ ] Redo (Mac: ⇧⌘Z; Windows: Ctrl+Y)
+* [ ] Cut (Mac: ⌘X; Windows: Ctrl+X)
+* [ ] Copy (Mac: ⌘C; Windows: Ctrl+C)
+* [ ] Paste (Mac: ⌘V; Windows: Ctrl+V)
+* [ ] Select all (Mac: ⌘A; Windows: Ctrl+A)
### View top-level menu
- - [ ] Show Changes (Mac: ⌘1; Windows: Ctrl+1)
- - [ ] Show History (Mac: ⌘2; Windows: Ctrl+2)
- - [ ] Show Repositories List (Mac: ⌘T; Windows: Ctrl+T)
- - [ ] Show Branches List (Mac: ⌘B; Windows: Ctrl+B)
- - [ ] Enter Full Zoom (Mac: ^⌘F; Windows: F11)
- - [ ] Reset Zoom (Mac: ⌘0; Windows: Ctrl+0)
- - [ ] Zoom In (Mac: ⌘=; Windows: Ctrl+=)
- - [ ] Zoom Out (Mac: ⌘-; Windows: Ctrl+-)
- - [ ] Toggle Developer Tools (Mac: ⌥⌘I; Windows: Ctrl+Shift+I)
+
+* [ ] Show Changes (Mac: ⌘1; Windows: Ctrl+1)
+* [ ] Show History (Mac: ⌘2; Windows: Ctrl+2)
+* [ ] Show Repositories List (Mac: ⌘T; Windows: Ctrl+T)
+* [ ] Show Branches List (Mac: ⌘B; Windows: Ctrl+B)
+* [ ] Enter Full Zoom (Mac: ^⌘F; Windows: F11)
+* [ ] Reset Zoom (Mac: ⌘0; Windows: Ctrl+0)
+* [ ] Zoom In (Mac: ⌘=; Windows: Ctrl+=)
+* [ ] Zoom Out (Mac: ⌘-; Windows: Ctrl+-)
+* [ ] Toggle Developer Tools (Mac: ⌥⌘I; Windows: Ctrl+Shift+I)
### Repository top-level menu. (Only enabled if one repo present)
- - [ ] Push (Mac: ⌘P; Windows: Ctrl+P)
- - [ ] Commits from repo pushed to .com; error message shown if conflicts
- - [ ] Pull (Mac: ⇧⌘P; Windows: Ctrl+Shirt+P)
- - [ ] Commits from repo pulled from .com; error message shown if conflicts
- - [ ] Remove
- - [ ] Repo is removed from Repo List; confirmation dialgue shown if Preferences option enabled
- - [ ] View on GitHub (Mac: ⌥⌘G; Windows: Ctrl+Alt+G)
- - [ ] Repo on .com is opened; must be logged in if private repo or Enterprise
- - [ ] Open in Terminal/Command prompt
- - [ ] Local repo is opened
- - [ ] If git not installed, modal asks to Open with Git or Install Git
- - [ ] Show in Finder/Explorer (Mac: ⇧⌘F; Windows: Ctrl+Shift+F)
- - [ ] Local repo is opened
- - [ ] Open in External Editor (Mac: ⇧⌘A; Windows: Ctrl+Shift+A); see External Editor option in prefs
- - [ ] Secondary modal appears if no Editors set; option to Download Atom
- - [ ] Repository settings
- - [ ] Remote path can be edited; origin already set. Cannot be empty string, else error message.
- - [ ] `Saved` button saves last entry
- - [ ] `Cancel` button closes modal
- - [ ] Ignored Files
- - [ ] `.gitignore` file contents are shown and can be edited
- - [ ] `Saved` button saves last entry; changes create a new commit
- - [ ] `Cancel` button closes modal
+
+* [ ] Push (Mac: ⌘P; Windows: Ctrl+P)
+ * [ ] Commits from repo pushed to .com; error message shown if conflicts
+* [ ] Pull (Mac: ⇧⌘P; Windows: Ctrl+Shirt+P)
+ * [ ] Commits from repo pulled from .com; error message shown if conflicts
+* [ ] Remove
+ * [ ] Repo is removed from Repo List; confirmation dialgue shown if
+ Preferences option enabled
+* [ ] View on GitHub (Mac: ⌥⌘G; Windows: Ctrl+Alt+G)
+ * [ ] Repo on .com is opened; must be logged in if private repo or Enterprise
+* [ ] Open in Terminal/Command prompt
+ * [ ] Local repo is opened
+ * [ ] If git not installed, modal asks to Open with Git or Install Git
+* [ ] Show in Finder/Explorer (Mac: ⇧⌘F; Windows: Ctrl+Shift+F)
+ * [ ] Local repo is opened
+* [ ] Open in External Editor (Mac: ⇧⌘A; Windows: Ctrl+Shift+A); see External
+ Editor option in prefs
+ * [ ] Secondary modal appears if no Editors set; option to Download Atom
+* [ ] Repository settings
+ * [ ] Remote path can be edited; origin already set. Cannot be empty string,
+ else error message.
+ * [ ] `Saved` button saves last entry
+ * [ ] `Cancel` button closes modal
+ * [ ] Ignored Files
+ * [ ] `.gitignore` file contents are shown and can be edited
+ * [ ] `Saved` button saves last entry; changes create a new commit
+ * [ ] `Cancel` button closes modal
### Branch top-level menu
- - [ ] New Branch (Mac: ⇧⌘N; Windows: Ctrl+Shift+N)
- - [ ] Clicking `Create Branch` makes new branch based on the entered name, if not a duplicate
- - [ ] Master branch is mentioned in the list; current branch shown first
- - [ ] `Cancel` button closes modal
- - [ ] Rename (cannot be master)
- - [ ] `Rename` button changes branch name if field updated
- - [ ] Same branch on GitHub.com is not renamed
- - [ ] `Cancel` button closes modal
- - [ ] Protected branches cannot be renamed
- - [ ] Delete (cannot be master)
- - [ ] Option to delete branch on the remote; default is unchecked
- - [ ] `Delete` button deletes branch name (and remote too if option checked)
- - [ ] `Cancel` button closes modal
- - [ ] Protected branches cannot be deleted
- - [ ] Update from Default Branch (cannot be master)
- - [ ] Merge into Current Branch
- - [ ] Use can filter existing branches
- - [ ] User can select branch, other than current
- - [ ] `Merge` button only activated if something to merge
- - [ ] `Cancel` button closes modal
- - [ ] Compare on GitHub (Mac: ⇧⌘C; Windows: Ctrl+Shift+C) (if repo already published on `github.com`)
- - [ ] Create Pull request (Mac: ⌘R; Windows: Ctrl+R) opens Pull Request on `github.com`
- - [ ] If branch unpublished, dialogue asks to publish the branch
- - [ ] `Push Local Changes` modal surfaces with option to `Create Without Pushing` and `Push Commits`;(trigger: `Create Pull Request` after commit on branch before pushing)
+
+* [ ] New Branch (Mac: ⇧⌘N; Windows: Ctrl+Shift+N)
+ * [ ] Clicking `Create Branch` makes new branch based on the entered name, if
+ not a duplicate
+ * [ ] Master branch is mentioned in the list; current branch shown first
+ * [ ] `Cancel` button closes modal
+* [ ] Rename (cannot be master)
+ * [ ] `Rename` button changes branch name if field updated
+ * [ ] Same branch on GitHub.com is not renamed
+ * [ ] `Cancel` button closes modal
+ * [ ] Protected branches cannot be renamed
+* [ ] Delete (cannot be master)
+ * [ ] Option to delete branch on the remote; default is unchecked
+ * [ ] `Delete` button deletes branch name (and remote too if option checked)
+ * [ ] `Cancel` button closes modal
+ * [ ] Protected branches cannot be deleted
+* [ ] Update from Default Branch (cannot be master)
+* [ ] Merge into Current Branch
+ * [ ] Use can filter existing branches
+ * [ ] User can select branch, other than current
+ * [ ] `Merge` button only activated if something to merge
+ * [ ] `Cancel` button closes modal
+* [ ] Compare on GitHub (Mac: ⇧⌘C; Windows: Ctrl+Shift+C) (if repo already
+ published on `github.com`)
+* [ ] Create Pull request (Mac: ⌘R; Windows: Ctrl+R) opens Pull Request on
+ `github.com`
+ * [ ] If branch unpublished, dialogue asks to publish the branch
+ * [ ] `Push Local Changes` modal surfaces with option to
+ `Create Without Pushing` and `Push Commits`;(trigger:
+ `Create Pull Request` after commit on branch before pushing)
### Window top-level menu (Mac only)
- - [ ] Minimize, Zoom (maximize app size), Close, Bring All to Front, GitHub Desktop
+
+* [ ] Minimize, Zoom (maximize app size), Close, Bring All to Front, GitHub
+ Desktop
### Help top-level menu
- - [ ] `Report Issue` opens issue template in Desktop repo on `github.com`
- - [ ] `Contact GitHub Support` opens `https://github.com/contact` page with user and build prepopulated
- - [ ] `Show User Guides` opens Desktop help page on `github.com`
- - [ ] `Show Logs in Finder/Explorer` opens Finder/Explorer logs in local directory
- - [ ] Mac: `ls ~/Library/Application\ Support/GitHub\ Desktop/Logs/*.log`
- - [ ] Windows: `%LOCALAPPDATA%\\Desktop\\*.desktop.production.log`
- - [ ] About GitHub Desktop (Windows only)
+
+* [ ] `Report Issue` opens issue template in Desktop repo on `github.com`
+* [ ] `Contact GitHub Support` opens `https://github.com/contact` page with user
+ and build prepopulated
+* [ ] `Show User Guides` opens Desktop help page on `github.com`
+* [ ] `Show Logs in Finder/Explorer` opens Finder/Explorer logs in local
+ directory
+ * [ ] Mac: `ls ~/Library/Application\ Support/GitHub\ Desktop/Logs/*.log`
+ * [ ] Windows: `%LOCALAPPDATA%\\Desktop\\*.desktop.production.log`
+* [ ] About GitHub Desktop (Windows only)
### Repositories list
- - [ ] Current repo is always shown in top slot with respective icon; if repo exists
- - [ ] Opening list shows all repos in categorized format with a working filter
- - [ ] `ESC` clears the filter
- - [ ] All repos (private, enterprise, local, public, forked, other) have proper icon and found in the proper category (GitHub.com/Enterprise/Other)
- - [ ] Hover shows username/repo, url, and/or local path in tooltip
- - [ ] User must have paid account for private repos
- - [ ] Repo icon is updated if admin changes status (public vs private)
- - [ ] Repositories cloned from non-github servers should always be in the Other group, and have the 'computer' icon.
- - [ ] Selecting a repo updates Changes/History/Diff areas
- - [ ] If no Changes, Diff area shows `Open this repository` link to Finder/Explorer on local
- - [ ] `Right-click` on any repo shows `Open in Terminal`, `Open in Finder/Explorer`, `Open in External Editor`, and `Remove` options
- - [ ] Repos which have been removed locally (and trash emptied) have 'cannot find repository' warning
- - [ ] Relaunching the app when it displays a missing repository preserves the repo's name and last seen path
- - [ ] Remove a repo which can not be found (deleted locally & trash emptied)
- - [ ] Repos which are cloning display a progress bar
+
+* [ ] Current repo is always shown in top slot with respective icon; if repo
+ exists
+* [ ] Opening list shows all repos in categorized format with a working filter
+ * [ ] `ESC` clears the filter
+ * [ ] All repos (private, enterprise, local, public, forked, other) have
+ proper icon and found in the proper category
+ (GitHub.com/Enterprise/Other)
+ * [ ] Hover shows username/repo, url, and/or local path in tooltip
+ * [ ] User must have paid account for private repos
+ * [ ] Repo icon is updated if admin changes status (public vs private)
+* [ ] Repositories cloned from non-github servers should always be in the Other
+ group, and have the 'computer' icon.
+* [ ] Selecting a repo updates Changes/History/Diff areas
+ * [ ] If no Changes, Diff area shows `Open this repository` link to
+ Finder/Explorer on local
+* [ ] `Right-click` on any repo shows `Open in Terminal`,
+ `Open in Finder/Explorer`, `Open in External Editor`, and `Remove` options
+* [ ] Repos which have been removed locally (and trash emptied) have 'cannot
+ find repository' warning
+ * [ ] Relaunching the app when it displays a missing repository preserves the
+ repo's name and last seen path
+ * [ ] Remove a repo which can not be found (deleted locally & trash emptied)
+* [ ] Repos which are cloning display a progress bar
### Changes tab
- - [ ] Changes tab shows `•` icon if files are waiting to be committed
- - [ ] Number of changed files is always present; it can be 0
- - [ ] Any changed files appear in the list, with respective +/•/- sign; with arrow keys enabled
- - [ ] Merge-conflicted files showin with hazard icon; cannot be committed until fixed
- - [ ] User can check none, or check one or more files to commit; list is scrollable
- - [ ] User can select one or more lines to commit; diff is scrollable
- - [ ] Right-clicking any file shows menu with options
- - [ ] User can discard the file; pending confirmation dialogue
- - [ ] `Do not show this message again`overrides the preference setting if true
- - [ ] User can ignore single/all files, show in Finder/Explorer, reveal in external editor, or open in default program
- - [ ] A specific files can only be ignored once
- - [ ] All ignored files found in Repository Settings > Ignored Files tab
- - [ ] Panes can be resized horizontally, and contents resize to take the full width
- - [ ] Quitting Desktop and relaunching remembers sizes
+
+* [ ] Changes tab shows `•` icon if files are waiting to be committed
+ * [ ] Number of changed files is always present; it can be 0
+* [ ] Any changed files appear in the list, with respective +/•/- sign; with
+ arrow keys enabled
+ * [ ] Merge-conflicted files showin with hazard icon; cannot be committed
+ until fixed
+ * [ ] User can check none, or check one or more files to commit; list is
+ scrollable
+ * [ ] User can select one or more lines to commit; diff is scrollable
+ * [ ] Right-clicking any file shows menu with options
+ * [ ] User can discard the file; pending confirmation dialogue
+ * [ ] `Do not show this message again`overrides the preference setting if
+ true
+ * [ ] User can ignore single/all files, show in Finder/Explorer, reveal in
+ external editor, or open in default program
+ * [ ] A specific files can only be ignored once
+ * [ ] All ignored files found in Repository Settings > Ignored Files tab
+* [ ] Panes can be resized horizontally, and contents resize to take the full
+ width
+ * [ ] Quitting Desktop and relaunching remembers sizes
### History tab
- - [ ] All commits listed in chronological order, with avatar, date and name; list is scrollable with arrow keys enabled
- - [ ] Right clicking any commit shows options: Revert, Copy SHA, View on GitHub
- - [ ] Hover shows file name in tooltip
-### Diffs tab
- - [ ] All commits have avatar, selectable SHA, # of files changed, commit message, commit description (optional)
- - [ ] Long commit descriptions can be toggled with expand/collapse icon
- - [ ] Reverting commit repopulates commit area
- - [ ] Error message if no changes to commit
- - [ ] All files within a commit listed, with respective +/•/-/-> sign; list is scrollable
- - [ ] Diffs are viewable; list is scrollable with arrow keys enabled
- - [ ] Green is for additions, red for deletions
- - [ ] Different file types are rendered properly
- - [ ] Single pic file with the `->` sign has multiple view options: 2-up (default); Swipe; Onion Skin; and Difference
- - [ ] Panes can be resized horizontally, and contents resize to take the full width
- - [ ] Diffs cannot be over 3MB
- - [ ] Diffs cannot be longer than 500,000 characters
+* [ ] All commits listed in chronological order, with avatar, date and name;
+ list is scrollable with arrow keys enabled
+ * [ ] Right clicking any commit shows options: Revert, Copy SHA, View on
+ GitHub
+ * [ ] Hover shows file name in tooltip
+
+### Diffs tab
+
+* [ ] All commits have avatar, selectable SHA, # of files changed, commit
+ message, commit description (optional)
+ * [ ] Long commit descriptions can be toggled with expand/collapse icon
+ * [ ] Reverting commit repopulates commit area
+ * [ ] Error message if no changes to commit
+* [ ] All files within a commit listed, with respective +/•/-/-> sign; list is
+ scrollable
+ * [ ] Diffs are viewable; list is scrollable with arrow keys enabled
+ * [ ] Green is for additions, red for deletions
+ * [ ] Different file types are rendered properly
+ * [ ] Single pic file with the `->` sign has multiple view options: 2-up
+ (default); Swipe; Onion Skin; and Difference
+* [ ] Panes can be resized horizontally, and contents resize to take the full
+ width
+* [ ] Diffs cannot be over 3MB
+* [ ] Diffs cannot be longer than 500,000 characters
### Commit section
- - [ ] Commit created if user clicks `Commit to [branch]` button with commit message and at least one checked file
- - [ ] `Fetch origin` changes to `Push` with number of commits badge
- - [ ] Avatar of user is shown
- - [ ] User can 'at-mention' those associated with the respective repo; either subject or description field is ok (published repositories only)
- - [ ] User can 'pound-mention' an issue in the either subject or description field; issue number should populate (published repositories only)
- - [ ] Description field is optional
- - [ ] User can undo last commit
- - [ ] `Push` with number of commits badge is decremented or reverts to `Fetch origin`
- - [ ] `Undo` button disabled if user is pushing commit
- - [ ] User can publish a new repo with no commits (aka unborn repo/branch)
+
+* [ ] Commit created if user clicks `Commit to [branch]` button with commit
+ message and at least one checked file
+ * [ ] `Fetch origin` changes to `Push` with number of commits badge
+* [ ] Avatar of user is shown
+* [ ] User can 'at-mention' those associated with the respective repo; either
+ subject or description field is ok (published repositories only)
+* [ ] User can 'pound-mention' an issue in the either subject or description
+ field; issue number should populate (published repositories only)
+* [ ] Description field is optional
+* [ ] User can undo last commit
+ * [ ] `Push` with number of commits badge is decremented or reverts to
+ `Fetch origin`
+* [ ] `Undo` button disabled if user is pushing commit
+* [ ] User can publish a new repo with no commits (aka unborn repo/branch)
### Branches list
- - [ ] Current branch always shows if repository present
- - [ ] Hover shows full branch name in tooltip
- - [ ] Opening list shows all branches in categorized format with a working filter
- - [ ] `New` button opens 'New Branch' modal
- - [ ] If filters results are nil, then prefill branch name in modal if user clicks `Create New Branch`
- - [ ] Active branch is highlighted and marked with a check
- - [ ] `ESC` clears the filter
- - [ ] Hover shows full branch name in tooltip
- - [ ] Default branch labeled and listed first, with timestamp
- - [ ] Selecting a branch switches branches
- - [ ] Creating a new branch shows `Publish branch` button
- - [ ] Publishing successful if logged in only; else error message
- - [ ] `Create Pull Request` menu option shows warning if branch not published yet
- - [ ] Renamed branches updated on .com and vice-versa if logged in; else error message
- - [ ] Opens modal with ability to enter new name
- - [ ] Deleted branches updated on .com and vice-versa if logged in; else error message
- - [ ] Deleting branch show warning message
+
+* [ ] Current branch always shows if repository present
+ * [ ] Hover shows full branch name in tooltip
+* [ ] Opening list shows all branches in categorized format with a working
+ filter
+ * [ ] `New` button opens 'New Branch' modal
+ * [ ] If filters results are nil, then prefill branch name in modal if user
+ clicks `Create New Branch`
+ * [ ] Active branch is highlighted and marked with a check
+ * [ ] `ESC` clears the filter
+ * [ ] Hover shows full branch name in tooltip
+* [ ] Default branch labeled and listed first, with timestamp
+* [ ] Selecting a branch switches branches
+* [ ] Creating a new branch shows `Publish branch` button
+ * [ ] Publishing successful if logged in only; else error message
+ * [ ] `Create Pull Request` menu option shows warning if branch not
+ published yet
+* [ ] Renamed branches updated on .com and vice-versa if logged in; else error
+ message
+ * [ ] Opens modal with ability to enter new name
+* [ ] Deleted branches updated on .com and vice-versa if logged in; else error
+ message
+ * [ ] Deleting branch show warning message
### Fetching origin/Pull
- - [ ] Code is constantly being fetched from .com with timestamp
- - [ ] Hover shows timestamp in tooltip
- - [ ] If Pull Requests on .com, they are reflected with down arrow and quantity
- - [ ] Pull Requests and Commits can co-exist; error surfaces if merge commit
- - [ ] User cannot Push/Pull without being signed in; error message surfaced
- - [ ] Push/Pull works with public/private/Enterprise repos
- - [ ] Tooltip shows status upon hover, if progress to display
- - [ ] When a branch is local-only make sure that the `Fetch` button changes to `Publish` and it publishes
-
+
+* [ ] Code is constantly being fetched from .com with timestamp
+ * [ ] Hover shows timestamp in tooltip
+ * [ ] If Pull Requests on .com, they are reflected with down arrow and
+ quantity
+ * [ ] Pull Requests and Commits can co-exist; error surfaces if merge commit
+* [ ] User cannot Push/Pull without being signed in; error message surfaced
+ * [ ] Push/Pull works with public/private/Enterprise repos
+ * [ ] Tooltip shows status upon hover, if progress to display
+* [ ] When a branch is local-only make sure that the `Fetch` button changes to
+ `Publish` and it publishes
+
### Publishing only
- - [ ] Unpublished repository, unborn HEAD - `Publish button` enabled (user can publish repository)
- - [ ] Unpublished repository, valid branch - `Publish button` enabled (user can publish repository and branch)
- - [ ] Published repository, unborn HEAD - `Publish button` disabled (no branch to push)
- - [ ] Published repository, branch without tracking - `Publish button` enabled (user can publish branch)
- - [ ] Published repository, network action - `Publish button` disabled (don't interfere with existing action)
-
+
+* [ ] Unpublished repository, unborn HEAD - `Publish button` enabled (user can
+ publish repository)
+* [ ] Unpublished repository, valid branch - `Publish button` enabled (user can
+ publish repository and branch)
+* [ ] Published repository, unborn HEAD - `Publish button` disabled (no branch
+ to push)
+* [ ] Published repository, branch without tracking - `Publish button` enabled
+ (user can publish branch)
+* [ ] Published repository, network action - `Publish button` disabled (don't
+ interfere with existing action)
+
### Dotcom
- - [ ] If Desktop linked to .com (/settings/applications), the Desktop icon should show on File Revisions tab for all Pull Requests.
- - [ ] Clicking the "computer icon" opens from a Pull Request page opens the branch on Desktop
- - [ ] If private email is enabled (http://github.com/settings/emails), user is blocked from pushing to all associated repositories on Desktop?
- - [ ] If user updates name in Settings, change should reflect in Preferences
+
+* [ ] If Desktop linked to .com (/settings/applications), the Desktop icon
+ should show on File Revisions tab for all Pull Requests.
+ * [ ] Clicking the "computer icon" opens from a Pull Request page opens the
+ branch on Desktop
+* [ ] If private email is enabled (http://github.com/settings/emails), user is
+ blocked from pushing to all associated repositories on Desktop?
+* [ ] If user updates name in Settings, change should reflect in Preferences
### Pull Request list + CI status (v1.1)
- - [ ] Pull request list shown as subsection of Branch list
- - [ ] Only open Pull Requests are reflected; closed Pull Requests not shown in the list
- - [ ] Pull Request toolbar status is surfaced with yellow, green or red icon, or no icon if no status
- - [ ] If no pull requests, then no badge shown, and Pull Request tab shows `0`
- - [ ] User shown current branch in text area, and given option to create a new branch or create new pull request
- - [ ] Pull request for the current branch selected by default, with pull-request-number badge in header
- - [ ] Pull request list can be filtered; `esc` key clears filter; arrow keys can scroll list
- - [ ] Results in chronological order, with name, id number, date, username, and CI status
- - [ ] Status checks run frequently in background, especially if yellow
- - [ ] PR status can be updated independently of respective PR
+
+* [ ] Pull request list shown as subsection of Branch list
+ * [ ] Only open Pull Requests are reflected; closed Pull Requests not shown in
+ the list
+* [ ] Pull Request toolbar status is surfaced with yellow, green or red icon, or
+ no icon if no status
+* [ ] If no pull requests, then no badge shown, and Pull Request tab shows `0`
+ * [ ] User shown current branch in text area, and given option to create a new
+ branch or create new pull request
+* [ ] Pull request for the current branch selected by default, with
+ pull-request-number badge in header
+ * [ ] Pull request list can be filtered; `esc` key clears filter; arrow keys
+ can scroll list
+ * [ ] Results in chronological order, with name, id number, date, username,
+ and CI status
+ * [ ] Status checks run frequently in background, especially if yellow
+* [ ] PR status can be updated independently of respective PR
### TBD placeholder (WIP)
-- Merge tool for conflicted files
-- Conflicted files vs changed files
-- Relationship between branches
- - Commit/Compare tabs now occupy left pane
- - Compare tab shows branch dropdown
- - Choose a branch from the list (same order as branch list? current branch present?) or user filter; `esc` clears filter
- - Once branch selected, quantity of commits behind surfaced; matches commits shown
- - `Merge X commits` button is activated
- - Merge conflict count surfaced below button if relevant
- - Clicking `Merge` button merges all shown commits
- - Commit history present, chronological order, descending
-- Show Git LFS (Cloning, Committing, Checking out, Reverting, Switching branches)
-- Report Git LFS (Cloning, Pushing, Pulling, Switching branches, Reverting)
+
+* Merge tool for conflicted files
+* Conflicted files vs changed files
+* Relationship between branches
+ * Commit/Compare tabs now occupy left pane
+ * Compare tab shows branch dropdown
+ * Choose a branch from the list (same order as branch list? current branch
+ present?) or user filter; `esc` clears filter
+ * Once branch selected, quantity of commits behind surfaced; matches
+ commits shown
+ * `Merge X commits` button is activated
+ * Merge conflict count surfaced below button if relevant
+ * Clicking `Merge` button merges all shown commits
+ * Commit history present, chronological order, descending
+* Show Git LFS (Cloning, Committing, Checking out, Reverting, Switching
+ branches)
+* Report Git LFS (Cloning, Pushing, Pulling, Switching branches, Reverting)
diff --git a/docs/technical/dialogs.md b/docs/technical/dialogs.md
index db3c2c1c44..43f3a0ac6d 100644
--- a/docs/technical/dialogs.md
+++ b/docs/technical/dialogs.md
@@ -25,10 +25,10 @@ are constrained to within the dialog itself.
## Errors
Dialogs should, when practical, render errors caused by its actions inline as
-opposed to opening an error dialog. An example of this is the Preferences dialog.
-If the dialog fails to write to the .gitignore or git config files as part of
-persisting changes it renders a short error message inline in the dialog using
-the `DialogError` component.
+opposed to opening an error dialog. An example of this is the Preferences
+dialog. If the dialog fails to write to the .gitignore or git config files as
+part of persisting changes it renders a short error message inline in the dialog
+using the `DialogError` component.
The `DialogError` component, if used, must be the first child element of the
Dialog itself.
@@ -49,22 +49,21 @@ Dialog itself.
```
-The content inside of the DialogError should be primarily text based. Avoid using
-the term 'Error' inside the text as that should be evident already based on the
-styling of the `DialogError` component.
+The content inside of the DialogError should be primarily text based. Avoid
+using the term 'Error' inside the text as that should be evident already based
+on the styling of the `DialogError` component.
## Best practices
### DO: Let children render the DialogContent component
If you're using a one-child-per-tab approach you should render the DialogContent
-as the top-level element in those children instead of wrapping children inside the
-DialogContent element. This avoid needless nesting and lets us leverage generic
-dialog/form/row styles in a more straightforward way.
+as the top-level element in those children instead of wrapping children inside
+the DialogContent element. This avoid needless nesting and lets us leverage
+generic dialog/form/row styles in a more straightforward way.
#### Example (good)
-
```html