Skip to content

Latest commit

 

History

History
345 lines (225 loc) · 13.4 KB

CONTRIBUTING.md

File metadata and controls

345 lines (225 loc) · 13.4 KB

Contributing

Table of contents

  1. Introduction
  2. Community Code of Conduct
  3. Your First Contribution
  4. Support questions
  5. Reporting issues
  6. Fix Bugs
  7. Implement Features
  8. Submitting an Issue
  9. Feature requests
  10. Code review process
  11. Community
  12. Pull Requests
    1. How to create PR
  13. Git Commit Guidelines
  14. Coding style guide
  15. Organize github issues
  16. Issue Referencing on Github

Introduction

First off, thank you for considering contributing to Telemesh. It's people like you that make Telemesh such a great tool.

When contributing to this repository, please first discuss the change you wish to make via issue ticket (sample), discord with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

When contributing to Telemesh, we ask that you:

  • let us know what you plan in the GitHub Issue tracker so we can provide feedback.

  • provide tests and documentation whenever possible. It is very unlikely that we will accept new features or functionality into Telemesh without the proper testing and documentation. When fixing a bug, provide a failing test case that your patch solves.

  • open a GitHub Pull Request with your patches and we will review your contribution and respond as quickly as possible. Keep in mind that this is an open source project, and it may take us some time to get back to you. Your patience is very much appreciated.

Community Code of Conduct

We adopted a code of conduct. Please read CODE_OF_CONDUCT.md Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [[email protected]].

Your First Contribution

Unsure where to begin contributing to Telemesh? You can start by looking through these good-first and help-wanted issues:

  • Good first issues - issues which should only require a few lines of code, and a test or two.
  • Help wanted issues - issues which should be a bit more involved than good-first issues.

Both issue lists are sorted by total number of comments. While not perfect, number of comments is a reasonable proxy for impact a given change will have.

Working on your first Pull Request? You can learn how from this free series, How to Contribute to an Open Source Project on GitHub.

At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸

If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.

Support questions

Please, don't use the issue tracker for this. Use one of the following resources for questions about your own code:

Reporting issues

Report bugs at https://github.com/w3-engineers/telemesh/issues.

We have different templates for bug report and feature request which you can find during issue creation.


<!--- Provide a general summary of the issue in the Title above -->

### Description
<!--- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->

### Expected Behavior
<!--- Tell us what should happen -->

### Actual Behavior
<!--- Tell us what happens instead -->

### Possible Fix
<!--- Not obligatory, but suggest a fix or reason for the bug -->

### Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.

### Context
<!--- How has this bug affected you? What were you trying to accomplish? -->

### Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* App version used:
* Device Name and version:
* Operating System and version:

Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with "bug" is open to whoever wants to implement it. Sample issue

Implement Features

Look through the GitHub issues for features. Anything tagged with "enhancement" and "optimization" is open to whoever wants to implement it.

Please do not combine multiple feature enhancements into a single pull request.

Note: We're trying to keep the code base small, extensible, and streamlined. Whenever possible, it's best to try and implement feature ideas as separate projects outside of the core codebase.

Submitting an Issue

Before you submit an issue, search the issues archive; maybe the issue has already been submitted or considered. If the issue appears to be a bug, and hasn't been reported, open a new issue.

Please do not report duplicate issues; help us maximize the effort we can spend fixing issues and adding enhancements.

Providing the following information will increase the chances of your issue being dealt with quickly:

  • Issue Title - provide a concise issue title prefixed with a snake-case name of the associated service or component (if any): <component>: <issue title>. Adding the md- prefix should be avoided.

    e.g.

    • menu-bar: does not support dark mode themes #51
  • Complete the full Issue Template - You will get the issue template where we put some predefined rules to create an issue. Moreover we are always open to make any changes according contributor's feedback.

  • Suggest a Fix - if you can't fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit).

Submitting Pull Requests

Important: We are not accepting major feature requests or PRs that contain new features or breaking changes at this time. However, we are welcoming to plan it for the future or we can discuss it further offline.

Feature requests

If you find yourself wishing for a feature that doesn't exist in Telemesh, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that Telemesh has today have been added because our users saw the need. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.

Code review process

The core team looks at Pull Requests on a regular basis.Each code review should aim to achieve one or more of these goals; however, not all code reviews need to aim for all goals.

Code review goals:

  • Finding bugs
  • Bugs found in code review require much less effort to find & fix than bugs found in QA/testing.
  • Coding style. Ensure that Android coding standard and Coding Pattern are followed.
  • Improving code quality
  • Teaching best practices
  • Code consistency (can't tell the author from the code)
  • Learning code
  • Efficiency (getting pull requests reviewed quickly)
  • Ensuring that the pull request guidelines are followed.

Code review processes:

  • Issue a pull request with a full link to your ticket in the description.
  • Click the "Request Review" option on the ticket to move into the "Code Review (pre commit)" state.
  • Add a comment linking to your pull request by its url.

Code review checklists :

  • Variable naming convention.
  • Method naming convention.
  • is the Class file is written in suitable package that is defined in guideline.
  • Override methods should be listed upper and then the private methods.
  • xml naming convention.
  • Layout design.
  • Unit test check.
  • Proper commenting on each method.
  • Method body and if any logical improvement is needed.
  • If any 3rd party library used then is it good to use or not
  • No sophisticated url access/data on git commit

Community

We will finalise our contributors community and list down their details soon

Pull Requests

Follow all instructions in the template The process described here has several goals:

  • Maintain Telemesh's code quality
  • Fix problems that are important to users
  • Engage the community in working toward the best possible Telemesh
  • Enable a sustainable system for Telemesh's maintainers to review contributions

How to create PR

How to create PR on Github

How to update existing PR

Git Commit Guidelines

We have very precise rules over how our git commit messages can be formatted. This leads to more readable messages that are easy to follow when looking through the project history.

Commit Message Format

Each commit message consists of a header, a body and a footer. The header has a special format that includes a type, a scope and a subject:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

Any line of the commit message cannot be longer 100 characters!
This allows the message to be easier to read on GitHub as well as in various Git tools.

Type

Must be one of the following:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • refactor: A code change that neither fixes a bug nor adds a feature
  • perf: A code change that improves performance
  • test: Adding missing tests
  • chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
Scope

The scope could be anything that helps specifying the scope (or feature) that is changing.

Examples

  • select(multiple):
  • dialog(alert):
Subject

The subject contains a succinct description of the change:

  • use the imperative, present tense: "change" not "changed" nor "changes"
  • don't capitalize first letter
  • no dot (.) at the end
Body

Just as in the subject, use the imperative, present tense: "change" not "changed" nor "changes" The body should include the motivation for the change and contrast this with previous behavior.

Footer

The footer should contain any information about Breaking Changes and is also the place to reference GitHub issues that this commit Closes, Fixes, or Relates to.

Breaking Changes are intended to be highlighted in the ChangeLog as changes that will require community users to modify their code after updating to a version that contains this commit.

Sample Commit messages:
fix(autocomplete): don't show the menu panel when readonly

this could sometimes happen when no value was selected

Fixes #11231
feat(chips): trigger ng-change on chip addition/removal

* add test of `ng-change` for `md-chips`
* add docs regarding `ng-change` for `md-chips` and `md-contact-chips`
* add demo for ng-change on `md-chips`
* add demo for ng-change on `md-contact-chips`

Fixes #11161 Fixes #3857
refactor(content): prefix mdContent scroll- attributes

    BREAKING CHANGE: md-content's `scroll-` attributes are now prefixed with `md-`.

    Change your code from this:

    ```html
    <md-content scroll-x scroll-y scroll-xy>
    ```

    To this:

    ```html
    <md-content md-scroll-x md-scroll-y md-scroll-xy>
    ```

Coding style guide

We are following this Android coding standard and Coding Pattern for our coding.

Organize github issues

We are following this guideline Style Guide

Issue Referencing on Github

You can include keywords in your pull request descriptions, as well as commit messages, to automatically close issues in GitHub. About issue reference