Amazon Music Open Source Development Guide

Amazon Music Open Source Development Guide

import useBaseUrl from ‘@docusaurus/useBaseUrl’

1. Simple Contribution Model and Guidance

Amazon Music has onboarded the Simple Contribution Model (currently work in progress), which permits Amazon Music developers to freely contribute to open source libraries. This is permissible as long as the contributions do not present a conflict of interest with their work duties, meaning the contributions must be completely unrelated. If the contributions are related to their work, the developer cannot be the sole decision-maker for using that library within internal systems, in order to avoid single-person dependency. Small bug fixes to existing libraries used internally are acceptable.

2. Amazon Music Github Organization (https://github.com/amazonmusic)

The Amazon Music CXI team has onboarded the Amazon Music GitHub organization to promote an open source contribution culture among Amazon Music developers. This allows developers to easily create teams and start open source projects and publish them to various distribution systems, such as npmjs etc.

Owning Bindle: https://bindles.amazon.com/software_app/AmazonMusicOpenSourceContribution

Owning Team: https://permissions.amazon.com/a/team/CXI-Team

CTI: Digital Media Technology → Music Open Source → General Audit

3. Step-by-Step Guide to Join Github Org

3.1 To connect your Personal Github Account with Amazon OSPO (Open Source Program Office) System

Please follow https://console.harmony.a2z.com/open-sourcerer/connect-account

3.2 To join Amazon Music Github Org (Pre-req 3.1)

Please follow https://console.harmony.a2z.com/open-sourcerer/self-invite (Pre-Req: Amazon GitHub Training)

3.3 To create Teams in Github Org (Pre-req 3.2)

Simply create a Visible Team in Github Org.

4. Step-by-Step Guide to Open Source Project/Library

4.1 To start Open source Project in Github

To start an open source project, the full codebase is not required. A sample code is sufficient, as you may need to run a RepoLinter to generate a report with your existing codebase to attach to the TT.

Please follow https://w.amazon.com/bin/view/Open_Source/Open_Sourcing/ to create TT (Sample TT)

4.2 To create Repository in Github (Pre-req 3.3 and 4.1)

Please follow https://console.harmony.a2z.com/open-sourcerer/create-repo

5. Publishing Packages to NPM

To publish your open source project in NPM, please follow https://w.amazon.com/bin/view/Open_Source/Open_Sourcing/Uploading/PublishingToNPM

5.1 To Create Distribution Ticket

Please follow https://w.amazon.com/bin/view/Open_Source/Distributions/. (Sample TT)

Few Gotchas about Distribution Tickets (If you are not sure, Just open a TT)

  • If an open source project directly redistributes third-party software that includes components under licenses not preapproved for distribution, a distribution ticket must be submitted. However, if the project only distributes a package.json file where the customer will install the dependencies themselves, no distribution ticket is required, as the project is not directly redistributing third-party software.

  • Conversely, if the open source project is distributing third-party software and all the licenses are pre-approved, no distribution ticket is necessary, provided the appropriate attributions are properly included.

5.2 To join NPM Organization (Pre-req 5.1 - in some cases)

Create TT using https://t.corp.amazon.com/create/templates/cc0f844b-0b27-436c-b323-275f214880e6 (Sample TT)

7. FAQs

  • Can I publish packages in other distribution channels like Maven if the package is in a language other than JavaScript?

  • When will the Amazon Music open source contribution program be available beyond the CXI team?

    • The CXI team is currently piloting the open source contribution program. As the initiative expands, it will become available to the broader Amazon Music organization in the future, though the exact timeline is still being determined. For more details, please check with your manager or contact the CXI team.