Skip to content

Latest commit

 

History

History
99 lines (64 loc) · 4.52 KB

contributing.md

File metadata and controls

99 lines (64 loc) · 4.52 KB
layout title nav_order has_children
default
Contributing
10
false

Contributing to lakeFS

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution..

If you don't know where to start, please join our community on Slack and ask us. We will help you get started!

Ground Rules

Before you get started, we ask that you:

Get ready for Hacktoberfest!

Contribute to open-source projects throughout October 2020 by stepping up to Digital Ocean's annual tradition of hosting Hacktoberfest. We always welcome pull requests to lakeFS - but throughout October your pull requests to open source projects can get you some cool swag (stickers & t-shirt). Check out our contributing guide and join our slack channel for help, more ideas, and discussions.

Not sure what to do? We marked some issues that could get you started quickly on our Hacktoberfest list.

Getting Started

Want to report a bug or request a feature? Please open an issue

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

Setting up an Environment

This section was tested on macOS and Linux (Fedora 32, Ubuntu 20.04) - Your mileage may vary

Our Go release workflow holds under go-version the Go version we currently use.

  1. Install the required dependencies for your OS:

    1. Git
    2. GNU make (probably best to install from your OS package manager such as apt or brew)
    3. Docker
    4. Go
    5. Node.js & npm
    6. Optional - PostgreSQL 11 (useful for running and debugging locally)
  2. Install statik:

    go get github.com/rakyll/statik 

    Make sure (go env GOPATH)/bin is in your $PATH (or at least, that the statik binary is).

  3. Clone the repository from https://github.com/treeverse/lakeFS

  4. Build the project:

    make build
  5. Make sure tests are passing:

    make test 

Before creating a pull request

  1. Review this document in full
  2. Make sure there's an open issue on GitHub that this pull request addresses, and that it isn't labeled x/wontfix
  3. Fork the lakeFS repository
  4. If you're adding new functionality, create a new branch named feature/<DESCRIPTIVE NAME>
  5. If you're fixing a bug, create a new branch named fix/<DESCRIPTIVE NAME>-<ISSUE NUMBER>

Creating a pull request

Once you've made the necessary changes to the code, make sure tests pass:

make test 

Check linting rules are passing:

make checks-validator

lakeFS uses go fmt as a style guide for Go code.

After submitting your pull request

After submitting your pull request, GitHub Actions will automatically run tests on your changes and make sure that your updated code builds and runs on Go 1.14.

Check back shortly after submitting your pull request to make sure that your code passes these checks. If any of the checks come back with a red X, then do your best to address the errors.