Coder Social home page Coder Social logo

apollos-prototype's Introduction

Contributing

Open Source development is a key piece in the mission of the Apollos Project. We promote and encourage individuals to help contribute to this project, but we want to make sure you contribute within certain guidelines to keep unity within the community and the codebase.

Below you will find the tools and rules we use when developing within the Apollos Project.

ESLint

We use ESLint in collaboration with Prettier to keep code clean and free of potential errors. Our ESLint configuration is dependent on the eslint-config-airbnb package.

ESLint and all required packages are built-in so once you yarn, you'll have the linter enabled. However, Prettier will need to be downloaded using your preferred code editor.

Install/Configure using Atom

  • Prettier is a package you can download by going to Preferences > Install > search "Prettier"
  • Download the package, "prettier-atom"
  • In the settings menu for the package, make sure ESLint Integration is checked.

Install/Configure using VS Code

  • You actually don't need the Prettier extension on VS code, just the ESLint extension
  • Download the ESLint extension by clicking the Extension icon and searching for ESLINT
  • Open up your USER_SETTINGS by going to Preferences > Settings
  • Make sure your settings have the following:
{
  "editor.formatOnSave": true,
  "[javascript]": {
    "editor.formatOnSave": false
  },
  "eslint.autoFixOnSave": true,
  "eslint.alwaysShowStatus": true,
  "eslint.validate": [
        "javascript",
        "javascriptreact",
    ],
}

Install/Configure using Sublime

  • You will need to install the sublime-prettier plugins
  • Make sure you go through the above links instructions to correctly install this plugin.

Creating a new release

Creating a release within the Apollos Church application is pretty simple! After you have pulled down the master branch and made sure every PR has been merged, the process is short:

Create the release

Checkout to a release branch first

# For example, version 2.7.1
git checkout -b release-v2.7.1

Then, run the release script

yarn release

After creating a release, changelog files will be updated. Make sure to read over the changelog messages, and make any edits necessary. If you make any edits, you'll want to amend the commit created by yarn release:

git commit --amend

Lastly, push up the new tag:

git push --tags

...And that is it! Create your new PR and set it for review.

Inline Documentation

We're using the JSDoc standard for comments in our code. Generally speaking, we just want to make sure that anyone coming into the code can understand what is happening in any particular component or function.

A Few Standards

  • Add a comment just above your class/component definition describing what the component does:
/**
 * This is where the component description lives
 * A FeedView wrapped in a query to pull content data.
 */
class ContentFeed extends PureComponent {
  • Add a comment just ahead of any functions:
/** Function that is called when a card in the feed is pressed.
 * Takes the user to the ContentSingle
 */
handleOnPress = item =>
  this.props.navigation.navigate("ContentSingle", {
    itemId: item.id,
    itemTitle: item.title,
  })
  • Add comments around your prop types:
static propTypes = {
  /** Functions passed down from React Navigation to use in navigating to/from
   * items in the feed.
   */
  navigation: PropTypes.shape({
    getParam: PropTypes.func,
    navigate: PropTypes.func,
  }),
};

๐Ÿ•๐Ÿ•๐Ÿ•๐Ÿ•๐Ÿ•

apollos-prototype's People

Contributors

burkeshartsis avatar calebpanza avatar conrad-vanl avatar dependabot[bot] avatar erikkgagewhitt avatar isaachardy avatar jordanwade avatar redreceipt avatar richarddubay avatar vinnyjth avatar

Watchers

 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.