This issue outlines the approach and ordering of the repo migration from the hyperledger org to hyperledger-firefly. The approach aims to limit disruption to consumers of our packages.
Based on the approach highlight below we are committing to doing a Release of FireFly: 1.5.0
This was initially discussed in Discord thread.
Approach
First step is creating all the teams in the org for access control
Repos should be transferred in dependency order:
Group 1 (no local dependencies):
Group 2 (depend only on firefly-common):
Group 3 (depend on Group 2):
Group 4 (depends on core firefly):
For each repo the steps are:
- Transfer repo to new org. GitHub automatically redirects the old repo to the new one.
- Update
go.mod with new org/repo name and update all import paths across .go source files.
- Update hardcoded
ghcr.io/hyperledger/ image references in workflows.
- Make a minor release to test CI.
- Update the 404.html in the org site to redirect FireFly docs to the new org. GitHub does not automatically redirect Pages sites.
Additional steps
Alternatives
Alternative approaches involving keeping a repository at the old path have not been considered due to the following note from GitHub docs:
If the transferred repository contains an action listed on GitHub Marketplace, or had more than 100 clones or more than 100 uses of GitHub Actions in the week prior to the transfer, GitHub permanently retires the owner name and repository name combination (OWNER/REPOSITORY-NAME) when you transfer the repository. If you try to create a repository using a retired owner name and repository name combination, you will see the error: "The repository REPOSITORY_NAME has been retired and cannot be reused."
This issue outlines the approach and ordering of the repo migration from the
hyperledgerorg tohyperledger-firefly. The approach aims to limit disruption to consumers of our packages.Based on the approach highlight below we are committing to doing a Release of FireFly: 1.5.0
This was initially discussed in Discord thread.
Approach
First step is creating all the teams in the org for access control
Repos should be transferred in dependency order:
Group 1 (no local dependencies):
firefly-firfirefly-common->commonfirefly-ethconnect->ethconnectfirefly-fabconnect->fabconnectfirefly-cordaconnect->cordaconnectfirefly-dataexchange-https->dataexchange-httpsfirefly-tokens-erc1155firefly-tokens-erc20-erc721firefly-uifirefly-cardanofirefly-sdk-nodejsfirefly-helm-chartsfirefly-samplesGroup 2 (depend only on
firefly-common):firefly-signerfirefly-transaction-managerGroup 3 (depend on Group 2):
firefly(core)firefly-clifirefly-evmconnectfirefly-tezosconnectfirefly-sandboxGroup 4 (depends on core
firefly):firefly-perf-cliFor each repo the steps are:
go.modwith new org/repo name and update all import paths across.gosource files.ghcr.io/hyperledger/image references in workflows.Additional steps
ghcr.io/hyperledger-firefly/in the new org. Update all GHCR image references in each repo, particularly infireflycore andfirefly-helm-charts.github.com/hyperledger/orghcr.io/hyperledger/references in source code and workflow files outside ofgo.mod. Updatefirefly-cliimage references in source before any post-migration release.@hyperledger/firefly-sdk. Confirm whether to keep@hyperledgerscope or move to@hyperledger-firefly. Create NPM token org secret in new org. If moving scope, deprecate old package with pointer to new one and update downstream consumers.firefly-cliis migrated.Alternatives
Alternative approaches involving keeping a repository at the old path have not been considered due to the following note from GitHub docs: