|
1 | | -# How to Contribute |
| 1 | +# Contributing to Player |
2 | 2 |
|
3 | | -If you find something interesting you want contribute to the repo, feel free to raise a PR, or open an issue for features you'd like to see added. |
| 3 | +Thank you for your interest in contributing to Player! |
4 | 4 |
|
5 | | -[For first time contributors](./newCONTRIBUTORS.md) |
| 5 | +## 📖 Documentation |
6 | 6 |
|
7 | | -## Proposing a Change |
| 7 | +**Complete contributing documentation lives on our documentation site: 👉 [Contributing Guide](https://github.intuit.com/pages/player/docs/latest/contributing/)** |
8 | 8 |
|
9 | | -For small bug-fixes, documentation updates, or other trivial changes, feel free to jump straight to submitting a pull request. |
| 9 | +## Quick Links |
10 | 10 |
|
11 | | -If the changes are larger (API design, architecture, etc), [opening an issue](https://github.com/player-ui/player/issues/new/choose) can be helpful to reduce implementation churn as we hash out the design. |
12 | | - |
13 | | -## Requirements |
14 | | - |
15 | | -- [bazelisk](https://github.com/bazelbuild/bazelisk) |
16 | | -- [pnpm >= 9.0.0](https://pnpm.io/installation) |
17 | | - |
18 | | -- [Swift >= 5.5](https://www.swift.org/download/) |
19 | | -- [Xcode 15.3](https://developer.apple.com/download/all/) |
20 | | - |
21 | | -- [Android NDK 27.1.12297006](https://github.com/android/ndk/releases/tag/r27b). You'll need to add `ANDROID_NDK_HOME` to your environment manually. It will look like `export ANDROID_NDK_HOME=/Users/{USERNAME}/Library/Android/sdk/ndk/27.1.12297006` |
22 | | -- Python < 3 (recommended 2.7.18) - you can use [pyenv](https://realpython.com/intro-to-pyenv/) to manage different python versions with ease. |
23 | | - |
24 | | -- [Signed Commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification). For convenience it is recommended to set git to sign all commits by default as mentioned [here](https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key) |
25 | | - |
26 | | -## Building and Testing Locally (All platforms) |
27 | | - |
28 | | -> This project also contains [just](https://github.com/casey/just) recipes for many common commands. They can be listed using `just -l` |
29 | | -
|
30 | | -### Player |
31 | | - |
32 | | -For speed and consistency, this repo leverages `bazel` as its main build tool. Check out the [bazel](https://bazel.build/) docs for more info. |
33 | | - |
34 | | -After forking the repo, run builds using bazel to test, build and run: |
35 | | - |
36 | | -## Docs Sites |
37 | | - |
38 | | -These require the [Android NDK](https://developer.android.com/ndk). |
39 | | -The docs site can be run locally using: |
40 | | - |
41 | | -```bash |
42 | | -bazel run //docs/site:dev |
43 | | -``` |
44 | | - |
45 | | -which will run an instance on `http://localhost:4321`. |
46 | | - |
47 | | -When a PR is merged, any `docs/site` changes will be deployed to the `next` folder in [https://github.com/player-ui/player-ui.github.io](https://github.com/player-ui/player-ui.github.io), which stores the built files for the site. |
48 | | - |
49 | | -The OSS site is deployed with the following route logic: |
50 | | - |
51 | | -- The `next` route correlates to the doc site generated by the latest build of Player. |
52 | | - Every PR merged into the main branch (unless opted out) will generate a next build so that functionality can be immediately consumed. |
53 | | -- The `latest` route correlates to the doc site generated from the last non-next release of Player. |
54 | | - These are releases that are we intentionally choose to cut and have a non-tagged semvar version. |
55 | | -- The `0` route contains the docs for the last `0.x.x` release. |
56 | | - For every major release, we preserve the doc site for the last version released for it to allow folks who can't upgrade immediately to still have access to docs that are relevant for them. |
57 | | - |
58 | | -## For Android Only Builds |
59 | | - |
60 | | -If you are interested in only contributing for android, follow our [android guide](https://github.com/player-ui/player/blob/main/android/demo/README.md) |
61 | | - |
62 | | -## For iOS Only Builds |
63 | | - |
64 | | -### Xcode Project Generation |
65 | | - |
66 | | -Generate the `.xcodeproj` to open and work in Xcode. Builds and tests will be executed through bazel, to ensure behavioral parity. |
67 | | - |
68 | | -```bash |
69 | | -bazel run //ios:xcodeproj |
70 | | -open -a Xcode ios/PlayerUI.xcodeproj/ |
71 | | -``` |
72 | | - |
73 | | -### Demo Application |
74 | | - |
75 | | -#### Xcode |
76 | | - |
77 | | -The first time the Xcode project is generated, the default selected target is `PlayerUI`, for a runnable target select `PlayerUIDemo` to run the demo application in the simulator. |
78 | | - |
79 | | -#### Bazel |
80 | | - |
81 | | -The demo app can also be built and launched in a simulator from the command line with bazel: |
82 | | - |
83 | | -```bash |
84 | | -bazel run //ios/demo:PlayerUIDemo |
85 | | -``` |
86 | | - |
87 | | -## Submitting a Pull Request |
88 | | - |
89 | | -Prior to submitting a pull request, ensure that your fork and branch are up to date with the lastest changes on `main`. |
90 | | - |
91 | | -Any new features should have corresponding tests that exercise all code paths, and public symbols should have docstrings at a minimum. For more complex features, adding new documentation pages to the site to help guide users to consume the feature would be preferred. |
92 | | - |
93 | | -When you're ready, submit a new pull request to the `main` branch and the team will be notified of the new requested changes. We'll do our best to respond as soon as we can. |
94 | | - |
95 | | -## Releases |
96 | | - |
97 | | -When a PR is merged, it will generate a `next` release, so something like `0.12.0-next.0` which can then be used in your project. This is done so that you can consume the latest changes without having to wait for a release to be cut. |
98 | | - |
99 | | -### Canary Releases |
100 | | - |
101 | | -To trigger a canary release, collaborators can add a `/canary` comment to any PR. Note: Canary builds can only be requested by collaborators. |
| 11 | +- 🐛 [Report a Bug](https://github.com/player-ui/player/issues/new?assignees=&labels=bug&template=bug_report.md&title=) |
| 12 | +- 💡 [Request a Feature](https://github.com/player-ui/player/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=) |
| 13 | +- 🔧 [Troubleshooting Guide](https://github.intuit.com/pages/player/docs/latest/contributing/troubleshooting/) |
| 14 | +- 💬 [Join Discussions](https://github.com/player-ui/player/discussions) |
102 | 15 |
|
103 | 16 | --- |
104 | 17 |
|
105 | | -Inspired by react's [How to Contribute](https://reactjs.org/docs/how-to-contribute.html) |
| 18 | +*For the most up-to-date and comprehensive contributing information, please visit our [documentation site](https://github.intuit.com/pages/player/docs/latest/contributing/).* |
0 commit comments