Skip to main content

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:

  1. Start a new discussion under IDEAS and propose the idea.
  2. Once decided on the updates or features, convert the discussion into an issue on #android-beyond-template and proceed with repository update.
  3. Also, create a task in Projects section
  4. Change the task to Todo assign respective members, select an effort scale (1-5)
  5. Proceed with implementation and update status as you go.
  6. Once the implementation/setup is done, update status to Under Review and pitch/present it to the team.
  7. Once everything's ready to go, move it to Done and create a pull request.
  8. We'll close the ticket and mark the issue as Closed
  9. Announce the update in #android-developers channel 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

  1. Create a new Issue in the repository. Describe what you want to achieve. Put a label for the issue.
  2. Branch out from latest main branch.
  3. Name the branch based on the category you're working on.
    • feature/your-feature - for new features
    • docs/your-docs - for documentation
    • setup/your-setup - for setup changes of the project
  4. Make your changes and commit to the branch.
  5. Once you're done, create a pull request to the main branch. And link the issue in the pull request.
  6. The team will review the pull request and merge it to the main branch. We'll only merge if the build checks pass.
  7. 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

  1. Assign yourself as the reviewer.
  2. Check the codebase for any issues or improvements.
  3. Add comments to the pull request.
  4. If the pull request is for Documentations, make sure to check the preview documentation url for any issues.
  5. If the pull request is for Code Commits, make sure to check the build status.
  6. Once you're done with the review, approve the pull request.
  7. The pull request will be merged to the main branch.

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:

info

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.
info

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, and Done
  • Each ticket/task will be placed within each Sprint (2-weeks sprint).