Overview

  1. Set up your environment.
  2. Browse to the Liquibase project in GitHub.
  3. Make sure the default branch is master.
  4. Fork it.
  5. Clone it to your local system.
  6. Make a new branch.
  7. Compile the pre-requisties for building.
  8. Open the Liquibase project with IntelliJ.
  9. Make your changes.
  10. Push your changes back into your repo.
  11. Click the Compare & pull request button.
  12. Click Create pull request to open a new pull request at liquibase/liquibase.

Step-by-step instructions

1. Set up your environment

You will need an environment to build Maven projects. This example shows a Mac environment, but the basics steps work for all environments.

2. Browse to the Liquibase project in GitHub

Browse to the Liquibase project in GitHub.

3. Select master as the default branch

Master branch of Liquibase project.

4. Fork the Liquibase Core Project

Click on the Fork button in the top-right corner.

This creates a new copy of Liquibase under your GitHub user account with a URL like:

https://github.com/<YourUserName>/liquibase

and includes all the code, branches, and commits from the original repo.

5. Clone the repository

Clone the source code repo

Clone the source repo by opening the terminal on your computer and running the command:
git clone https://github.com/<YourUserName>/liquibase

This repo also includes the unit tests for Liquibase Core. See this page for more information on writing or enhancing Liquibase Core unit tests.

6. Create a branch and set the upstream repository

Once the repo is cloned, you need to do two things:

  1. Create a new branch by issuing the command:
    git checkout -b new_branch
  2. Create a new remote for the upstream repo with the command:
    git remote add upstream https://github.com/liquibase/liquibase

In this case, “upstream repo” refers to the original repo you created your fork from.

7. Compile the pre-requisites for building

Watch a video of how to update these settings and run the Maven build.

You can watch the video or jump to the next step.

8.Open the Liquibase Project with IntelliJ

Open IntelliJ and import as project pom.xml in the root of the liquibase repo that was previously cloned.

  • From the Maven tab, expand “liquibase-root”.
  • Expand “Lifecycle”.
  • Right-click “Compile”. (to build the pre-reqs)
  • From the Maven tab, expand “liquibase-core”.
  • Expand “Lifecycle”.
  • Right-click “Install”.
  • Click “Run Maven Build”.

No errors and a successful build means you are good to keep going.

9. Make your changes.

Now you can make your changes and additions to Liquibase Core.

  1. Make code changes
  2. Add Unit tests and Integration tests
  3. Provide Feedback for Liquibase Documentation

10. Push the changes back to your repo.

Push your changes back to your repo in GitHub.
git push -u origin <newBranchName>

When you do, the Compare & pull request button will appear in GitHub.

Compare and pull request.

11. Create a new pull request at liquibase/liquibase.

Open a pull request by clicking the Compare & pull request button. This allows the Liquibase maintainers to review your contribution. Click it and you’ll be taken to this screen:

Open a pull request for Liquibase project.

12. Fill out the pull request template, and click the Create pull request button

This will submit your pull request for our team to review.

Receive updates on your pull request

Thank you for submitting your pull request!

  1. Now that your pull request has been submitted, the automated build will be triggered. It usually takes less than 10 minutes to complete. The results will be available in the comments of your PR. Please review the results. If the build or any of the tests fail, please make any necessary changes and resubmit your PR.
  2. Once the tests have all passed, we will review it for completeness, prioritize it, and schedule it to be integrated into Liquibase Core. You will receive updates on the progress of your PR in the comment section of your PR’s GitHub page. 

Need help?

Visit our Developer forum or reach out to answers@liquibase.org.