Skip to content

Latest commit

History

History
74 lines (48 loc) 路 3.91 KB

CONTRIBUTING.md

File metadata and controls

74 lines (48 loc) 路 3.91 KB

Contributing Guidelines

We appreciate your contribution to this amazing project! Any form of engagement is welcome, including but not limiting to

  • feature request
  • documentation wording
  • bug report
  • roadmap suggestion
  • ...and so on!

Please refer to the community contributing section for more details.

Development and codebase contribution

Before delving into the details to come up with your first PR, please familiarise yourself with the project structure of Instill Core.

Prerequisites

Please refer to here to make sure your environment has been all set.

Launch the local dev system

Clone the repo and launch the latest version of the codebase for all dependencies:

$ git clone https://github.com/instill-ai/instill-core.git && cd instill-core

# launch all latest service components
$ make latest PROFILE=all

The env variable PROFILE is intended to specify which service component you want to develop on

  • all

    When you set PROFILE=all, the whole Instill Core stack will be launched, meaning you want to test the system as a whole.

  • {service}

    When you set PROFILE=exclude-{service}, in which {service} can be pipeline, it means you want to develop on that particular service. The make command will launch the corresponding stack WITHOUT that service component and WITH all other services. Given that, you can later on spin up and down the {service} in your dev container. Please take the pipeline-backend as an example.

Tear down the local dev system

Simply run:

$ make down

Build the local images

We use Docker multi-stage builds to build a instill/core:{latest,release} image which will be based on to run dind (docker-in-docker) to build all the images of Instill Core defined in the compose file docker-compose-build.yml.

You can build the images by simply running:

$ make build-{latest,release}

Sending PRs

Please take these general guidelines into consideration when you are sending a PR:

  1. Fork the Repository: Begin by forking the repository to your GitHub account.
  2. Create a New Branch: Create a new branch to house your work. Use a clear and descriptive name, like <your-github-username>/<what-your-pr-about>.
  3. Make and Commit Changes: Implement your changes and commit them. We encourage you to follow these best practices for commits to ensure an efficient review process:
  4. Push to Your Branch: Push your branch to your GitHub repository: git push origin feat/<your-feature-name>.
  5. Open a Pull Request: Initiate a pull request to our repository. Our team will review your changes and collaborate with you on any necessary refinements.

When you are ready to send a PR, we recommend you to first open a draft one. This will trigger a bunch of integration-test workflows running a thorough test suite on multiple platforms. After the tests are done and passed, you can now mark the PR open to notify the codebase owners to review. We appreciate your endeavour to pass the integration test for your PR to make sure the sanity with respect to the entire scope of Instill Core.

Last words

Your contributions make a difference. Let's build something amazing together!