decentralized-identity / decentralized-identity/org

Transfer DWN NPM packages from TBD to DIF

Open
#64 0 comments 0 reactions 2 assignees Claimed by @kimdhamilton View on GitHub
Dominant language
Rich Text Format
Stars
51
Forks
17
PR merge metrics
No merged PRs in 30d

Description

## Background
The GitHub repositories for DWN/TBD packages (e.g., [dwn-sdk-js](https://github.com/decentralized-identity/dwn-sdk-js)) has been transferred from TBD to DIF organization. The NPM package ownership for all such repos needs to be transferred to align with the repository ownership.

One complexity here is I'm unsure if all the NPM packages are under a single NPM org/team on the TBD side, or whether there are multiple orgs/accounts since the prefix for the packages are different.

## List of repositories/packages in scope
- [ ] [dwn-sdk-js](https://github.com/decentralized-identity/dwn-sdk-js): NPM: [@tbd54566975/dwn-sdk-js](https://www.npmjs.com/package/@tbd54566975/dwn-sdk-js)
- [ ] [dwn-server](https://github.com/decentralized-identity/dwn-server): NPM: [@web5/dwn-server](https://www.npmjs.com/package/@web5/dwn-server)
- [ ] [web5-js](https://github.com/decentralized-identity/web5-js): This is a monorepo that seems to publish *multiple* NPM packages under the `@web5` prefix. Might need to figure out the packages in scope and list them here if tracking
- [ ] [dwn-sql-store](https://github.com/decentralized-identity/dwn-sql-store): NPM: [@tbd54566975/dwn-sql-store](https://www.npmjs.com/package/@tbd54566975/dwn-sql-store)
- [ ] [dwn-relay](https://github.com/decentralized-identity/dwn-relay): Can't find a published package, probably because it's a module, but internal references might need to change.
- [x] [dwn-user-guide](https://github.com/decentralized-identity/dwn-user-guide): Doesn't seem particularly like this needs to be published, so I've already ticked it
- [ ] [dwn-aws-packages](https://github.com/decentralized-identity/dwn-aws-packages): Can't find published packages but might exist/need to be created from scratch?
- [ ] [dwn-gcp-packages](https://github.com/decentralized-identity/dwn-gcp-packages): Same as above
- [ ] [dwn-proxy-js](https://github.com/decentralized-identity/dwn-proxy-js): Seems like it should be publishing a package, has a named package, but nothing published on NPM by that name I can find.

## Prerequisites Checklist
- [ ] Identify and document all NPM organizations currently in use. Are `@tbd54566975` org and `@web5` org controlled by the same person or do we need to get in touch with different people at Block for access?
- [ ] Consider whether we even want to change prefix from `@web5` or `@tbd54566975` to something else e.g., `@dif`, because that will break packages. Perhaps Block will be willing to transfer ownership of those two NPM accounts to DIF? If yes, then ignore the checklist items below: just transfer the credentials from Block to DIF, without actually moving to a new account and continue publishing packages under their old names.
- [ ] Verify DIF NPM organization status
- [ ] Check if DIF has an existing NPM org
- [ ] If no NPM org exists, create one. @kimdhamilton is probably best placed to do this, so that the details are saved under a DIF controlled common/group inbox rather than a named person's email. Ideally set up 2FA as well.
- [ ] Ensure appropriate DIF maintainers have admin access to the DIF team on NPM, e.g., @csuwildcat or any others (this allow them to carry out actions without needing credentials for the primary admin account)
- [ ] Use the [transfer an NPM package to another author](https://docs.npmjs.com/transferring-a-package-from-a-user-account-to-another-user-account) guide to move the packages across to DIF
- [ ] Setup new NPM publishing keys and save it in DIF Github as org-level secrets (saves the hassle of having to individually save it for each repo)

## Package Transfer Checklist
For each package:

- [ ] Check package dependencies for internal references
- [ ] Update all package.json files with new organization scope
- [ ] Update all internal cross-dependencies
- [ ] Use `npm deprecate` to deprecate the old packages
- [ ] Update CI/CD workflows to publish packages from DIF repos to DIF NPM org
- [ ] Create new releases with updated package information
- [ ] Update documentation and README files

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.