Git Product home page Git Product logo

guidelines's Introduction

Guidelines

Information regarding this repository ๐Ÿ‘€

Although most of the important guidelines are listed here, there may be things that were missed! If you feel confused about something and think it should be addressed here, please submit an issue. You can learn how to do this here.

If you feel like something is missing and are knowledgable about it, submit a PR! Be sure to add examples and links for your guidelines. You can either create a new section, or contribute to an existing one. If your guideline is language specific, please create a new directory with the name of the language, and a README within that directory that describes your guidelines for that given language.

Using Git and Github :octocat:

  • A handy cheatsheet of git commands can be seen here.

  • A handy cheatsheet of git terminology can be seen here. This may be useful to familiarize yourself with before reading these guidelines.

  • If you are new to Git or Github, you should read through this to familiarize yourself with basic terms and concepts. We are willing to help you learn, but taking the initiative to read through this is important too. It's okay to not completely understand everything here at first, but getting familiar will help us help you!

Making Commits โœ๏ธ

Commits should have descriptive messages that state not WHAT you changed, but rather WHY you changed it.

Remember: we generally know how to read your code, but we might not know why you did it! If you feel that your code is unclear as to WHAT you changed as well, only then is it necessary to state the "what" in the commit message. The only other time the "what" is appropriate is if the "why" is self-evident, such as adding a comment or fixing a typo.

Examples of a good commit message:

$ git commit -m "Added the ability to assign judges to projects"
$ git commit -m "Make Source.indexOf(ByteString) significantly faster"

An example of a bad commit message:

$ git commit -m "Added a function"
$ git commit -m "Changes"
$ git commit -m "Added main.py file"

Any commit that has a poor commit message will NOT be merged until it is fixed. To learn how to change your commit message, see here.

Please make sure that all files you are committing fit the commit message. If something feels like it doesn't belong, it is most likely best to put it in a new separate commit.

Making Pull Requests ๐Ÿ“ฌ

  • To learn how to make a pull request (PR), see here.

  • NEVER EVER EVER push directly to the master branch. In fact, we block you from being able to do this! Please make a PR first from a fork or another branch.

  • EVERY pull request made on must have at least one reviewer that approves it. If the code contribution is significant (a new feature, large commits, etc.) there must be at least two approving reviewers. If you feel your contribution is just too significant, it is okay to request a group review at a team meeting, or a meeting with another teammate! You can explain your changes to the group, and your group will discuss them in the meeting.

  • Be sure to name your pull request well, and follow similar rules to the commit message rules above. Describe the purpose of the PR. Additionally, add more of a description if the feature is significant or if the changes are extensive (lots of new or changed code, etc). Sometimes, particularly for front end changes, screenshots can be very helpful!

  • For all front end changes, please ensure that you have tested your code on both desktop and mobile. If your PR does not work for both, it will likely not be merged.

  • For all changes, please ensure to the best of your ability that the project runs as expected, and that the code that you added works. We do not want anybody submitting broken code in PRs! Take pride in your code and make sure that it is everything it is intended to be! ๐Ÿ˜ƒ

TL;DR TEST YOUR CODE

Code Review โœ…

  • To learn how to do a code review (otherwise known as a Pull Request Review), see here.

  • Whenever you are doing a code review, ensure that what you are reviewing adheres to the guidelines in this file. Do not approve any code that does not follow these guidelines, but rather leave comments on what must be fixed in order to follow proper guidelines in your review.

  • Ensure that the code you are reviewing is well documented, and can be understood by those who look at it in the future. Think: maintainability!

  • Leave comments anywhere that you feel needs to be changed. Be sure to review thoroughly! Try your best to catch everything you can, even spelling errors. We want to make our code as readable and maintainable as possible, so every detail matters.

Proper Documentation ๐Ÿ“š

All repositories should include a descriptive README file (preferably written in markdown) that includes, at a minimum, the following:

  • A description of the project

    • What does it do?
    • What languages and frameworks are used?
    • What features does it have?
    • Where is it hosted? (if at all)
  • How to run the project

    • What commands need to be run?
    • What needs to be installed?
  • Contribution guidelines

    • What do you want to make sure that everybody knows when they contribute?
    • How should code be formatted?

Additionally, all code should be well documented within each file. Make sure that the people that read your code understand what it's doing. But be careful not to add comments where the code is already self-evident. We don't want to crowd the code with too many comments!

Examples of good comments:

# Process the CSV file that contains submissions data from Devpost

Examples of unnecessary comments:

foo = 0 # Initialize to zero

guidelines's People

Contributors

sarah256 avatar lkwatson avatar noahnaiman avatar vitorvicente avatar

Watchers

James Cloos 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.