Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create CONTRIBUTING.md #1062

Merged
merged 4 commits into from
Nov 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Contributing

Welcome to the home of the AEP Web SDK! We appreciate your interest in contributing and are excited to collaborate.

The following guidelines will help ensure a smooth contribution process.

Our guidelines vary depending on the type of contribution: New Feature, Enhancement, or Bug Fix.


## Contributor license agreement

All third-party contributions to this project must be accompanied by a signed contributor
license agreement. This gives Adobe permission to redistribute your contributions
as part of the project. [Sign our CLA](http://opensource.adobe.com/cla.html). You
only need to submit an Adobe CLA one time, so if you have submitted one previously,
you are good to go!


## Bug Fix Process

Submit bug fixes via pull requests, to be reviewed by the AEP Web SDK's Core team.

1. Create a pull request.
2. Describe the bug, and provide steps to reproduce it. (More details on the PR process below)


## New Feature Process

New feature contributions start with a Concept Approval (CA) / Proposal document.

- Internal Contributors: Create a Wiki page and engage with the AEP Web SDK's Product team to discuss your proposal.
- External Contributors: Create a GitHub issue detailing your feature and assign the ticket to https://github.com/jfkhoury.
- No need for detailed architectural insights at this stage.


#### Post Approval

1. Add a thorough architecture and design proposal to a technical document.
- Seek assistance from the AEP Web SDK Engineering team for design input if necessary.
- This document will be shared with Adobe's documentation writers, so ensure it's detailed.
2. Share your CA and technical documents with the AEP Web SDK engineering team for further discussion and approval.
- A work session will be scheduled for a kickoff discussion. (Joe to set up)
3. Upon design approval, proceed with development. The technical document will be shared with the documentation team for public documentation preparation.


## Pull Request Approval Process

We strive to review all pull requests promptly and may suggest improvements or alternatives.

Include in your pull request:


- Break down your PR into manageable commits and add a descriptive PR title and thorough description, including screenshots if applicable.
- Ensure code adheres to our formatting and usage standards (`npm run format` and `npm run lint`)
- Testing:
- Detail your test cases comprehensively. PRs lacking tests will not be reviewed.
- Include unit and functional tests.
- Test your feature in the [Sandbox](https://github.com/adobe/alloy/wiki/Running-the-sandbox-locally-over-HTTPS-on-Mac-OS).
- Make sure the PR merges cleanly with the latest main.
- Obtain 3 approvals from the Core Web SDK team to have your PR approved.
- If a consensus isn’t reached regarding any code concern, Joe will provide the final say.
- We encourage and enjoy open minded, deep discussions on this team. Try your best to propose a design that the whole team agrees with.


## Ownership

While contributors are not expected to maintain the feature post-contribution, for a smooth handover, we require:

- Detailed technical documents explaining the feature and architecture.
- Engage in discussions with the AEP Web SDK core team to ensure full understanding and approval of the design and code.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ Alloy is the code name for the Adobe Experience Platform Web SDK. It allows for

For documentation on how to use Alloy, please see the [user documentation](https://experienceleague.adobe.com/docs/experience-platform/edge/home.html).

For documentation on how to contribute to Alloy, please see the [developer documentation](https://github.com/adobe/alloy/wiki).

## Contribution

Check out the [contribution guidelines](https://github.com/adobe/alloy/CONTRIBUTION.md) for quick start information, and head over to the [developer documentation](https://github.com/adobe/alloy/wiki) to understand the architecture and structure of the library.