1. Fork and Clone the Repository
# Fork the repository to your GitHub account
git clone git@github.com:{github_username}/zeppelin.git
cd zeppelin |
2. Add the Apache Upstream Remote
git remote add apache git@github.com:apache/zeppelin.git |
3. Configure Local Git User Info
git config --local --add user.name "{Your Name}"
git config --local --add user.email "{your_username}@apache.org" |
4. Setup shell variables and python environment to execute merge script
uv venv source .venv/bin/activate uv pip install jira python-dotenv |
# Set Shell variables
# https://github.com/apache/zeppelin/blob/master/dev/merge_zeppelin_pr.py#L50-L62
# ASF JIRA username
JIRA_USERNAME = os.environ.get("JIRA_USERNAME", "")
# ASF JIRA password
JIRA_PASSWORD = os.environ.get("JIRA_PASSWORD", "")
# ASF JIRA access token
# If it is configured, username and password are dismissed
# Go to https://issues.apache.org/jira/secure/ViewProfile.jspa -> Personal Access Tokens for
# your own token management.
JIRA_ACCESS_TOKEN = os.environ.get("JIRA_ACCESS_TOKEN")
# OAuth key used for issuing requests against the GitHub API. If this is not defined, then requests
# will be unauthenticated. You should only need to configure this if you find yourself regularly
# exceeding your IP's unauthenticated request rate limit. You can create an OAuth key at
# https://github.com/settings/tokens. This script only requires the "public_repo" scope.
GITHUB_OAUTH_KEY = os.environ.get("GITHUB_OAUTH_KEY") |
dev/merge_zeppelin_pr.py |
Sometimes a PR is merged into master but also needs to be applied to a maintenance branch such as branch-0.xx.
In that case, after completing the merge into master, cherry-pick the commit into the target branch:
# Example: Apply commit __COMMIT_ID__ to branch-0.12 git checkout branch-0.12 git cherry-pick __COMMIT_ID__ git push apache branch-0.12 |
Replace __COMMIT_ID__ย with the actual commit hash of the merged PR.
In addition to standard Apache committer privileges, new committers should be granted access to the following:
Apache JIRA
Apache Wiki / Confluence