Skip to content

Commit

Permalink
Merge 1cc3113 into 1860675
Browse files Browse the repository at this point in the history
  • Loading branch information
AllienWorks committed Jan 16, 2018
2 parents 1860675 + 1cc3113 commit 447d80b
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 8 deletions.
99 changes: 99 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Contributing guidelines

First of all, thanks for your interest in helping us build Particl! As more coders are joining our cause, we had to create these guidelines to set some standards and keep everyone on the same track. So here are a few rules and tips to get you started faster and make everyone's life a bit easier.

1. [Dev workflow](#dev-workflow)
1. [Issues](#1-issues)
2. [Push Requests (PRs)](#2-push-requests-prs)
1. [Create new branch](#21-create-new-branch)
2. [Submit PR](#22-submit-pr)
2. [Dev resources](#dev-resources) (Angular, components, layouts, icons)

---

## Dev workflow

Quick overview of the workflow:

1. bug is found / feature is suggested → new Issue
2. new branch is created with code solving the Issue → Push Request initiated
3. after PR is finished, tested and approved (by at least 1 Team member) → merge to `dev` branch
4. when multiple PRs are merged, new Release is prepared → merged to `master` branch

---

### 1. Issues

When bug is found or new feature/suggestion proposed, [new Issue gets created](https://github.com/particl/partgui/issues). Our repo has predefined Issue template to help you started with that (the more info you provide the better).

- **Always keep the Issue's title short and descriptive!**
- Examples:
-_"Pagination in Address book doesn't work (macOS)"_
-_"When you click next page in address book nothing happens and 2 pages are hidden please help!!!1!"_
- **Include as much related information** in Issue's description as you can (the predefined template will help you with that)
- For bugs: what's happening, how to reproduce it, what OS/version are you using, ...
- **Tag the Issue with Labels** to categorize it (is it a `bug` or just an `enhancement` like a new feature?). If you're not sure which label to use, leave them empty, someone else will do that (better no labels at all than wrong ones)
- `bug` - for broken functionality/UI, bad behaviour
- `enhancement/feature` - adding new functionality, tweaks for existing features

It's usually up to Project Manager or someone from the Team to:

- Assign workers to Issues
- Assign Milestones (AKA "releases") for concrete Issues – please don't assign Milestones to your own Issues if you're not absolutely certain, that the feature/bug _must be_ included in certain release!

---

### 2. Push Requests (PRs)

PRs are working "packages" of code, solving one bug / new feature and are usually connected to existing Issues. For creating new PRs, you must first fork this repository to your own account.

#### 2.1. Create new branch

After your repo is ready, create new branch.

- **Again, keep branch names short and descriptive**
- Ideally also tag your branch with `prefix/..` – this helps categorizing all the branches at first glance. Some examples:
- `fix/..` - for bug fixing, e.g. `fix/createwallet`
- `feature/..` - for new features, e.g. `feature/coldstaking`
- `gfx/..` - for graphic/UI/UX tweaks, e.g. `gfx/typography`

When your branch is ready, do your changes and push them to the branch. Be sure to push only the changes related to the connected Issue! Solving multiple Issues is also possible, but it's better to focus on one thing at a time.

#### 2.2. Submit PR

When your code is complete and ready, [submit new Push Request](https://github.com/particl/partgui/compare).

- **Always set your base branch to `dev`** (never to `master` or others!) – `dev` is our main development branch
- **As always, write short and descriptive title** (you can keep it the same name as your branch)
- **Describe what has been done in description** – what does this PR solves? We usually list all the changes and even include a screenshot/GIF overview of the final result. This greatly helps the Reviewers and Testers as they know what to focus on.
- **Include references to Issues that this PR solves** – Writing `Fixes #[number]` automatically connects this PR to Issue _[number]_ and when this PR gets merged later, the corresponding Issue gets automatically closed.
- Read more about [Closing Issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/)
- **Tag your PR with Labels** – Labels help other to see at first sight what's needed next. The most common are:
- `WIP` - _"work in progress"_ for ongoing work, not meant to be merged yet (if you're on a longer task)
- `GFX` - for tasks needing graphic work (e.g. functionality is ready, but it's missing design tweaks)
- `PRG` - same, but for programming work (e.g. design is ready, but it's missing functionality)
- `ready for review` - task is done and waiting to be reviewed and merged
- **Don't assign any milestones!** Leave that for the Project Manger or Core Team members

After your PR is 100% ready, label it as `ready for review` and optionally assign one/some of the Reviewes:

- for **development** (Angular etc.): @pciavald @kewde @rynomster
- for **design** (GFX, layouts etc.): @gerlofvanek @allienworks

Reviewers will either ask you for some code changes or approve the PR and merge it.

---

## Dev resources

- **Angular**
- [Angular Syntax Styleguide](https://angular.io/guide/styleguide) - guide to Angular syntax, conventions, and application structure
- **Components**
- [Material Components](https://material.angular.io) - overview of available Material components and example usage (stick to these as much as possible, no need to reinvent the wheel)
- **Layout**
- [Angular fxFlex API Layouts](https://github.com/angular/flex-layout/wiki/fxFlex-API) - fxFlex markup basics
- [Declarative (static) API](https://github.com/angular/flex-layout/wiki/Declarative-API-Overview) - for basic static layouts
- [Responsive API](https://github.com/angular/flex-layout/wiki/Responsive-API) - for responsive layouts
- **Icons**
- all available icons are in [`/src/assets/icons/SVG`](https://github.com/particl/partgui/tree/dev/src/assets/icons/SVG)
- include via `<mat-icon fontSet="partIcon" fontIcon="part-<icon_name>"></mat-icon>`
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ This repository is the user interface that works in combination with our [`parti
[![Code Climate](https://codeclimate.com/github/particl/partgui/badges/gpa.svg)](https://codeclimate.com/github/particl/partgui)
[![Greenkeeper badge](https://badges.greenkeeper.io/particl/partgui.svg)](https://greenkeeper.io/)

> Be sure to read our [Contributing Guidelines](CONTRIBUTE.md) first
## Development

### Boostrapping for development:
Expand All @@ -33,12 +35,8 @@ npm install
```

### Development with Electron
* Run `ng serve` to start the dev server.
* Run `npm run start:electron:dev -- -testnet -debug` to start the electron application. Daemon will be updated and launched automatically.

### Development with a Browser (deprecating)
* Run `ng serve`. Daemon will not launch automatically.
* Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
1. Run `ng serve` to start the dev server.
2. Run `npm run start:electron:dev -- -testnet -opendevtools` to start the electron application. Daemon will be updated and launched automatically.

#### Interact with particl-core daemon
You can directly interact with the daemon ran by the Electron version.
Expand All @@ -49,12 +47,12 @@ You can directly interact with the daemon ran by the Electron version.
## Running

### Start Electron
* `npm run start:electron:fast` - disables debug messages for faster startup
* `npm run start:electron:fast` - disables debug messages for faster startup (keep in mind using `:fast` disables auto-reload of app on code change)

### Package Electron
* `npm run package:win` - Windows
* `npm run package:mac` - OSX
* `npm run package:linux` - Linux

## Contributors
Join us in [#particl-dev:matrix.org](https://riot.im/app/#/room/#particl-dev:matrix.org) on [riot](https://riot.im)
Join us in [#particl-dev:matrix.org](https://riot.im/app/#/room/#particl-dev:matrix.org) on [Riot](https://riot.im)

0 comments on commit 447d80b

Please sign in to comment.