Ways to contribute
You can contribute in multiple ways like:
- Suggesting new standardizations or workflow adjustments
- Improving documentation
- Improving the existing project template
- Writing tests
- Reviewing code
- Participating in discussions
Overall Flow
When you have an idea that we should enforce or setup as a guideline/template:
- Start a new
discussionunderIDEASand propose the idea. - Once decided on the updates or features, convert the discussion into an issue on #
android-beyond-templateand proceed with repository update. - Also, create a task in
Projectssection - Change the task to
Todoassign respective members, select an effort scale (1-5) - Proceed with implementation and update
statusas you go. - Once the implementation/setup is done, update
statustoUnder Reviewand pitch/present it to the team. - Once everything's ready to go, move it to
Doneand create a pull request. - We'll close the ticket and mark the issue as
Closed - Announce the update in
#android-developerschannel about the update.
Code Commits
You can contribute to the project with Code Commits. The commits can be any topic regarding:
- Design Systems
- Widgets
- Utilities
- App Architecture
- Build Configurations
- Libraries & SDK Integrations
- Testing
Code Commits Workflow
- Create a new Issue in the repository. Describe what you want to achieve. Put a label for the issue.
- Branch out from latest
mainbranch. - Name the branch based on the category you're working on.
feature/your-feature- for new featuresdocs/your-docs- for documentationsetup/your-setup- for setup changes of the project
- Make your changes and commit to the branch.
- Once you're done, create a pull request to the
mainbranch. And link the issue in the pull request. - The team will review the pull request and merge it to the
mainbranch. We'll only merge if the build checks pass. - Close the issue once the pull request is merged.
Code Commits Pipeline
- We're using Bitrise for CI/CD.
- Bitrise workflow will check for Gradle Builds, linting, and testing.
- The build status will be shown in the pull request and the documentation's Home page.
- If you're curious and want to add more Workflow/Pipelines for the project, you can configure them here. Every member of "Android Team" will have access to the app project on bitrise.
Code Reviews
You can also contribute by submitting code reviews. Whenever you see a pull request without a reviewer, you can assign yourself as the reviewer and start the code review. You can suggest any changes or improvements to the codebase.
Code Reviews Workflow
- Assign yourself as the reviewer.
- Check the codebase for any issues or improvements.
- Add comments to the pull request.
- If the pull request is for
Documentations, make sure to check the preview documentation url for any issues. - If the pull request is for
Code Commits, make sure to check the build status. - Once you're done with the review, approve the pull request.
- The pull request will be merged to the
mainbranch.
Discussions
You can also contribute by participating in discussions. Discussions will be created for any new ideas or updates to the project.
You can check the all the discussions about the project here.
Discussions are broken down into categories:
Please use the IDEA proposal template here or you can be creative with your own template.
Documentations
You can also contribute by creating/updating/improving the documentation.
Documentation Pipeline
- As of now, we're using Cloudflare's Pages for documentation hosting, since it is free and unlimited.
- The documentation is hosted at android-beyond-docs.pages.dev
- Every pull request will trigger a new build and deploy the documentation preview.
- The documentation's preview url will be commented in the pull request by the Cloudflare bot, so that reviewers can take advantage of it.
We're using docusaurus.io for documentation. You can find more details about the syntax here.
Workflow for Github project
- We'll be tracking the overall status of the project here
- Each ticket/task will represent ONE idea.
- Each ticket/task will have it's effort scale. (1-5)
- Each ticket/task will have an assigned team or member.
- Each ticket/task will have progress ->
Ideation,Todo,In Progress,Under Review, andDone - Each ticket/task will be placed within each
Sprint(2-weeks sprint).