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

[Feature Request]: Reorganize the Project Setup Documentation #5099

Closed
adhiamboperes opened this issue Jul 24, 2023 · 6 comments · Fixed by #5174
Closed

[Feature Request]: Reorganize the Project Setup Documentation #5099

adhiamboperes opened this issue Jul 24, 2023 · 6 comments · Fixed by #5174
Assignees
Labels
enhancement End user-perceivable enhancements. Impact: High High perceived user impact (breaks a critical feature or blocks a release). Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.

Comments

@adhiamboperes
Copy link
Collaborator

adhiamboperes commented Jul 24, 2023

Is your feature request related to a problem? Please describe.

Many new contributors run into issues setting up the project, especially on a Windows SDE. Having run tthrough the setup instructions myself, I noticed that while all the information needed to setup is present, a bit of reorganization would be useful to minimize skipping some important setup steps, which will in turn minimize the number of reported setup issues.

Some problems I noticed with the current instructions are:

  • The main setup page contains instructions for setting up the development environment for all the OSes together with a number of external links. This means contributors have to keep going back and forth between tabs, and may lose their place, which often results into skipping steps.
  • The current setup steps advise to install the latest Android Studio version, but our project does not support the latest gradle versions bundled with newer IDE versions.
  • Steps 2 and 3 of the setup instructions involve setting up Java 8. This is not an actual pre-requisite to getting the project running, yet it is a non-trivial task. Android Studio comes with its own embedded JDK, and it is possible to install additional versions from within the IDE if needed. Our project can build on gradle with JDKs 8-11, which are sufficient for getting started on a first issue.
  • In relation to the JDK step above, there are missing instructions on specifying the compile jdk version from within Android studio --- even if you set the java home variable, Android Studio defaults to its embedded jdk.
  • Most contributors never run the bash setup.sh command, missing out on important pre-push checks.

Describe the solution you'd like

I do think that, pre full bazel migration, we should allow our contributors to get started with just gradle as this lowers the barriers to start contributing. Most of the starter issues for the foreseable future do not need interaction with Bazel.

Some changes we can make to improve the setup Wiki:

  • From the onset, split the setup instructions per OS. This means that the first page of setup instructions will have a format like this:
     - Select your operating system to get the setup instructions:
        - Linux
        - Windows
        - MacOs
    

Then on each OSs page, we will have the complete OS specific setup instructions, numbered.

  • Update the required Android Studio Version instructions to Bumblee Bee Patch 3 (direct download url)
  • Move the Java 8 and $JAVA_HOME setup instructions to the Bazel set up section on each page, since they are only relevant there.
  • Add instructions on how to select the compile JDK from within Android Studio Settings.
  • Update outdated instructions related to SDK path in Android studio and that of downloading the google files check file.
  • Include a post-setup checklist to verify all the setup steps have been completed.

Describe alternatives you've considered

  • Adding instructions about common set up issues, their causes and how to fix them.

This option is reactive rather than preventive.

We can still however have a section for this, especially for issues that cannot be prevented such as #4966 (comment).

Additional context

#5061

#4858

#4432

@adhiamboperes adhiamboperes added enhancement End user-perceivable enhancements. triage needed Impact: High High perceived user impact (breaks a critical feature or blocks a release). Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet. and removed triage needed labels Jul 24, 2023
@adhiamboperes
Copy link
Collaborator Author

@seanlip, @MohitGupta121, could you please review my suggested Wiki updatates and let me know your thoughts?

@MohitGupta121
Copy link
Member

MohitGupta121 commented Jul 24, 2023

@adhiamboperes Thanks that's a very great issue. We have to complete this as High Priority as per my suggestions because now in the upcoming months, many new GSOC contributors are coming. So we have to solve and document all setup instructions properly.

@adhiamboperes
Copy link
Collaborator Author

@adhiamboperes Hey, are you working on this issue or we both work on this issue? What do you suggest?

Hey @MohitGupta121, I will take the lead on this to set up the format that I have in mind.

@MohitGupta121
Copy link
Member

MohitGupta121 commented Jul 24, 2023

Okay, Thanks @adhiamboperes LGTM. These changes were very helpful to Windows users as most of them facing these issues. let's see what's @seanlip thoughts are to improve it more.

@MohitGupta121 MohitGupta121 removed their assignment Jul 24, 2023
@seanlip
Copy link
Member

seanlip commented Jul 24, 2023

All this sounds good to me. Let's please go ahead with it. Thanks @adhiamboperes!

@seanlip seanlip assigned adhiamboperes and unassigned seanlip Jul 24, 2023
@kkmurerwa
Copy link
Collaborator

Hi @adhiamboperes. In your update be sure to include setting JDK 11 as the default compile JDK on Android Studio since the project has trouble compiling with any other JDK.

@adhiamboperes adhiamboperes added this to the 1.0 Global availability milestone Oct 4, 2023
adhiamboperes added a commit that referenced this issue Oct 9, 2023
…ntation (#5174)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation

Fix #5073:  Add instructions to the wiki for how to assign a reviewer.
Fix #5062:  Add wiki documentation for how to pick the emulator/android
version when running Espresso tests.
Fix #5099:  Reorganize the Project Setup Documentation
Fix part of #1723: ensure the onboarding flow leads into follow-up
documentation: architecture overview, code style, submission guidelines,
how to make UX changes, how to contribute large projects (which should
tie into design documents), and best practices
Fix part of #1723: Known issues that have come up in discussions

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement End user-perceivable enhancements. Impact: High High perceived user impact (breaks a critical feature or blocks a release). Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.
Development

Successfully merging a pull request may close this issue.

4 participants