Skip to content

New Contributors Guide

PermieBTS edited this page Sep 4, 2019 · 17 revisions

14.0 New Contributors Guide

14.1 Introduction

14.1.1 Hello new contributors, and welcome to DEXBot. We are a group that works on open source market making with the Bitshares DEX. Before you get started, please observe the following:

14.1.2 For general information about DEXBot please join us on Telegram t.me/DEXBotbts and visit the Website

14.1.3 If you would like to get involved you can join us in the Telegram Dexbot Chat Room and for new contributors, where you can ask questions and get help.

14.2 Information about the Worker Proposal 3 that is funding this project can be found here

14.3 Key project members are:

  • 14.3.1 Project Manager: @permie
  • 14.3.2 Lead Developer: @octomatic
  • 14.3.3 Supporting Developer: @vvk123
  • 14.3.4 Build Maintainer: @joelva
  • 14.3.5 Quality Assurance : @bitProfessor

14.4 Contributor Covenant Code of Conduct

14.4.1 Please see https://github.com/bitshares/bitshares-ui/blob/develop/CODE_OF_CONDUCT.md This Code of Conduct is adapted from Bitshares-UI and the Contributor Covenant, version 1.4

14.5 Development Process

14.5.1 This project cycle, is from the 1st of July 2019 - 31st December 2019. The roadmap for this cycle can be viewed in the Dexbot Workflow spreadsheet.

14.6 Request a feature

14.6.1 Check in issues if someone already has requested the feature 14.6.2 Create a new issue where you describe the feature

14.7 Report a bug

14.7.1 Check in issues if someone already has reported the bug 14.7.2 Create a new issue with a descriptive name. 14.7.3 Describe how to reproduce the bug. If possible, use images or GIF's.

14.8 Participate in development

14.8.1 The General process is as follows : sprint -> review & merge -> release

  • 14.8.1.1 Build Releases are on an as needed basis and will be announced by the project manager. We currently estimate that builds to be released on a monthly basis.
  • 14.8.1.2 Release Candidates sits 1-2 weeks for evaluation by the public before release
  • 14.8.1.3 Bugs are always worked before enhancements
  • 14.8.1.4 Developers should work each issue according to a numbered branch corresponding to the issue git checkout -b 123-fix-gui-button which would refer to issue 123. see Git workflow guide for specifics.
  • 14.8.1.5 We pay bounties for issues that have not been claimed. If you fix this issue according to these guidelines and your PR is accepted you will earn bitCNY
  • 14.8.1.6 If you are new, please review the issues have been tagged 'Good First Issue'. Before starting development, comment on the issue to submit a price that you would charge for the development to be completed.

14.9 Also please talk to us DEXBot on telegram in t.me/DEXBotbts. Work on unagreed bounties won’t be paid for.

  • 14.10 To claim an issue, simple leave a comment with the request to work on it and your hours estimate. Alternatively, contact the project manager on telegram
  • 14.11 If an issue is already claimed (assigned), do not attempt to claim it. Issues claimed by outside developers will have no assigned dev, but have the developers name in brackets. Do not claim an issue if you will be unable to complete it by the date indicated on the Milestone name. If an issue missed the intended milestone completion, be sure to make a comment on your progress including the reason for the delay. The issue is pushed to the next milestone. Failing to comment or complete the issue once more will result in release of the assigned issue.

14.12 Here are a list of the ongoing projects and bug sprints

14.13 Bug fix sprint

14.13.1 An example can be found here (https://github.com/Codaone/DEXBot/projects/5)

14.14 Other supporting activities

14.14.1 Are you new to contributing to open source? here is a good guide: https://opensource.guide/

14.15 Can you contribute:

  • 14.15.1 documentation?
  • 14.15.2 UX?
  • 14.15.3 strategies?
  • 14.15.4 data analysis?
  • 14.15.5 graphics?
  • 14.15.6 infographs?
  • 14.15.7 videos?
  • 14.15.8 user help?

14.16 Reach out to the project group in Telegram. We are prepared to pay for meaningful contributions.

14.17 Coding style guideline

14.17.1 Our style guidelines are based off of the PEP-8 Standard https://www.python.org/dev/peps/pep-0008/ with a few exceptions:

  • 14.17.1.1 Lines do not need to be strictly 80 characters, up to 120 characters accepted.
  • 14.17.1.2 make generally readable code, e.g. avoid using short one letter variables and instead use something more descriptive.
  • 14.17.1.3 git commit style guideline - https://chris.beams.io/posts/git-commit/

14.18 If you wish to use an IDE, we recommend PyCharm. There are also many PEP-8 standard code verifiers should you wish to use a different IDE.

14.19 Coding guidelines in general:

  • 14.19.1 Keep it simple. Try to think about development for future maintenance.
  • 14.19.2 Write unit tests where necessary
  • 14.19.3 Please contact the project manager and developers first if you wish to use new libraries or packages that are newer than the current project implementations.
  • 14.19.4 Use setuptools, setup.py and requirements.txt accordingly for new package additions

14.20 Visualizations Style Guideline

14.20.1 In general,

  • 14.20.1.1 developers should use Pandas for handling data, not arrays
  • 14.20.1.2* Use the dash libraries for plotting
  • 14.20.1.3 Ensure that the plotly data is privacy protected. Here is an example of how to turn on Plotly Data Privacy
  • 14.20.1.4* avoid use of global variables
  • 14.20.1.5 Keep your display controls simple. If your visualisations have a need for complex tabs or menus, please speak with one of the team members first. Remember that your visualization will be integrated into the rest of the system and must be kept modular.
  • 14.20.1.6 use logging instead of print statements
- observe style for commenting and structure from existing code base

14.21 References below:

14.21.1 Guide to logging https://realpython.com/python-logging/

14.21.2 Guide to Pandas: http://pandas.pydata.org/pandas-docs/stable/

14.21.3 Dash User guide: https://dash.plot.ly/

14.21.4 Dash Plotting Examples: https://github.com/plotly/simple-example-chart-apps

14.22 Build environments

14.22.1 We strongly encourage the use of virtualenv for your local development environment. For more about how to use virtualenv with python 3.6 please see

14.23 Git Workflow

14.24.1 see https://github.com/Codaone/DEXBot/wiki/Git-Workflow