Skip to content
Snippets Groups Projects
  • Serban Iorga's avatar
    Update bridges subtree (#1392) · 142a11ad
    Serban Iorga authored
    * Move the bridges subtree under root
    
    * Squashed 'bridges/' changes from 277f0d5496..e50398d1c5
    
    e50398d1c5 bridges subtree fixes (#2528)
    99af07522d Markdown linter (#1309) (#2526)
    733ff0fe7a `polkadot-staging` branch: Use polkadot-sdk dependencies (#2524)
    e8a59f141e Fix benchmark with new XCM::V3 `MAX_INSTRUCTIONS_TO_DECODE` (#2514)
    62b185de15 Backport `polkadot-sdk` changes to `polkadot-staging` (#2518)
    d9658f4d5b Fix equivocation detection containers startup (#2516) (#2517)
    d65db28a8f Backport: building images from locally built binaries (#2513)
    5fdbaf45f6 Start the equivocation detection loop from the complex relayer (#2507) (#2512)
    7fbb67de46 Backport: Implement basic equivocations detection loop (#2375)
    cb7efe245c Manually update deps in polkadot staging (#2371)
    d17981fc33 #2351 to polkadot-staging (#2359)
    
    git-subtree-dir: bridges
    git-subtree-split: e50398d1c594e4e96df70b0bd376e565d17e8558
    
    * Reapply diener workspacify
    
    * Fix Cargo.toml
    
    * Fix test
    
    * Adjustments
    Unverified
    142a11ad
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Using Parity Bridges Common dependency (git subtree)

In ./bridges sub-directory you can find a git subtree imported version of: parity-bridges-common repository.

(For regular Cumulus contributor 1. is relevant)
(For Cumulus maintainer 1. and 2. are relevant)
(For Bridges team 1. and 2. and 3. are relevant)

How to fix broken Bridges code?

To fix Bridges code simply create a commit in current (Cumulus) repo. Best if the commit is isolated to changes in ./bridges sub-directory, because it makes it easier to import that change back to upstream repo.

(Any changes to bridges subtree require Bridges team approve and they should manage backport to Bridges repo)

How to pull latest Bridges code to the bridges subtree

(in practice)

The bridges repo has a stabilized branch polkadot-staging dedicated for releasing.

cd <cumulus-git-repo-dir>

# this will update new git branches from bridges repo
# there could be unresolved conflicts, but don't worry,
# lots of them are caused because of removed unneeded files with patch step,
BRANCH=polkadot-staging ./scripts/bridges_update_subtree.sh fetch

# so, after fetch and before solving conflicts just run patch,
# this will remove unneeded files and checks if subtree modules compiles
./scripts/bridges_update_subtree.sh patch

# if there are conflicts, this could help,
# this removes locally deleted files at least (move changes to git stash for commit)
./scripts/bridges_update_subtree.sh merge

# (optional) when conflicts resolved, you can check build again - should pass
# also important: this updates global Cargo.lock
./scripts/bridges_update_subtree.sh patch

# add changes to the commit, first command `fetch` starts merge,
# so after all conflicts are solved and patch passes and compiles,
# then we need to finish merge with:
git merge --continue

How to pull latest Bridges code or contribute back?

(in theory)

Note that it's totally fine to ping the Bridges Team to do that for you. The point of adding the code as git subtree is to reduce maintenance cost for Cumulus/Polkadot developers.

If you still would like to either update the code to match latest code from the repo or create an upstream PR read below. The following commands should be run in the current (polkadot) repo.

Add Bridges repo as a local remote

git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git

If you plan to contribute back, consider forking the repository on Github and adding your personal fork as a remote as well.

git remote add -f my-bridges git@github.com:tomusdrw/parity-bridges-common.git

To update Bridges

git fetch bridges polkadot-staging
git subtree pull --prefix=bridges bridges polkadot-staging --squash

We use --squash to avoid adding individual commits and rather squashing them all into one.

Clean unneeded files here

./bridges/scripts/verify-pallets-build.sh --ignore-git-state --no-revert

Contributing back to Bridges (creating upstream PR)

git subtree push --prefix=bridges my-bridges polkadot-staging

This command will push changes to your personal fork of Bridges repo, from where you can simply create a PR to the main repo.