Giter VIP home page Giter VIP logo

perfcompare's Introduction

PerfCompare

CircleCI codecov GitHub issues GitHub pull requests

Performance Comparison Tool

screenshot

Deployments

PerfCompare is hosted on heroku, and is updated every time commits are pushed to the following branches:

Branch Name URL Description
mocking http://perfcompare-mocking.herokuapp.com/ Used for "mock" features that are not fully implemented, for the purposed of All Hands demo and presentation.
staging https://perfcompare-staging.herokuapp.com/ Staging branch before releasing to master
master https://perfcompare-master.herokuapp.com/ Most stable branch, updated every 1-2 weeks.

Setup

Requirements

Installation

# Clone the repo
git clone https://github.com/mozilla/perfcompare.git
cd perfcompare

# Install node modules
npm install

# Runs on localhost:3000 by default
npm run dev

Contributing

We welcome contributions to our project.

If you find an issue that you'd like to work on that is not assigned to anyone, leave a comment on the issue and request that it be assigned to you.

If you do not receive a response within 2-3 days, you can follow up in the #PerfCompare matrix channel.

After addressing the issue, ensure both tests and linting pass before submitting a pull request.

When submitting a pull request, please mention the issue number to link the pull request and issue to one another. You can do this by typing # following immediately by the issue number, i.e., #123

Submit your pull request to the staging branch. staging is merged to master weekly on Monday.

We recommend the following workflow to contribute to PerfCompare:

  1. Set an upstream remote that points to the project repository, and an 'origin' remote that points to your fork.
  2. To keep your fork up-to-date, use git rebase upstream rather than merging. This causes fewer merge conflicts and keeps the git history cleaner.
# Git commands for keeping your branch up to date with the lastest master
git fetch upstream
git rebase upstream/master
git push --force origin <local branch>

Validating JavaScript

We run our JavaScript code in the frontend through ESLint to ensure that new code has a consistent style and doesn't suffer from common errors.

# To run ESLint by itself, you may run the lint task:
npm run lint

# Automatically fix linting issues found (where possible):
npm run lint:fix

# Checking formatting issues with Prettier:
npm run format:check

# Automatically fix format issues found (where possible):
npm run format

Running Tests

Tests can be run with the following commands:

npm run test

# Run tests and watch for changes
npm run test:watch

# Run tests with coverage
npm run test:coverage

Snapshot Tests

When making changes to the UI, snapshots should also be updated to match. Snapshot tests ensure no UI changes occur unexpectedly.

After manually verifying the UI renders as intended, run the following command to update snapshots: jest --updateSnapshot

Snapshot files should be included in your pull request(s).

Feedback

You can submit feedback to [email protected], or find us on the #perftest or #perfcompare-user-research Matrix channels, as well as the #perfcompare Slack channel.

perfcompare's People

Contributors

kimberlythegeek avatar eng-esther avatar beatrice-acasandrei avatar nikoladojic avatar esanuandra avatar dependabot[bot] avatar canova avatar gpain2007 avatar julienw avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.