Office Hour - Code Contributions - September 18, 2020

Hi folks,

We are hosting the first office hour from Friday, September 18, 2020 2:00 PMFriday, September 18, 2020 2:45 PM.

If you signed up for the mailing list mentioned here, you should have gotten an invite from me. You should RSVP to that, to get a notification.

Note: The meeting link will be available in the invite.

Here is what you need:

  1. A working headphone :headphones: (with a mic :studio_microphone:).

  2. Camera :video_camera:. Optional - We would love to see you though!

  3. Something to stay hydrated :tea::tropical_drink: .
    Sorry, you will have to bring your own because of the nature of meeting. :frowning:

Here is the agenda for the meeting:

  1. Quick 10 second intros of everyone.

  2. Share updates and context about the ongoing dev work by the staff team.

  3. Discuss outstanding issues on main repo and assign them to interested contributors.

    1. Adding tests for backend projects.

    2. Normalize time spent on each cert.

    3. Update styles on the documentation site.

    4. DRY out the client.

    5. Reduce Redux dependence.

    6. Adding the related submitted projects above claimed certs on Profiles and Certificates

  4. Discuss the PR review strategy for upcoming Hacktoberfest.

  5. Discuss the Issue/PR triaging strategy across all repos.

P.S: Here is a list of all the office-hour meetings we have had.

1 Like

Looking forward to it!

I’ll have to go pick up a camera today :smiley:

I guess I’ll join someday. But i currently have neither headphones or mic and no money to get them, lol.

Minutes of the meeting

Attendees:

Duration: ~2 hours

Discussion:

Update from the Staff dev-team:

  1. The challenge template is changing to a new format.

    • Existing challenge format is hard to read.
    • Prone to errors with use for YAML strings for tests, and difficult to contribute.
    • Need to simplify it for localization.
    • Will use MDX to import shared components
  2. A new translations workflow.

    • We are working on reducing duplication in the source code.
    • The English version for a challenge will become the source of truth for tests, and seed code etc.
    • We are working to enable an interface to localize freeCodeCamp and move away from the Git/GitHub based workflows.
  3. Project based curriculum.

    • Being led by Tom and Randy who are working on new projects for the curriculum v7
    • Oliver and Ahmad are working on the UI/platform
    • Goal is to be able to do more on the core freeCodeCamp platform itself.

Discuss outstanding issues and assign them to interested contributors:

  1. Add tests for backend projects.

    • Currently we rely on the Academic Honesty Pledge for many of these
    • Goal is to increase coverage so that submitted projects can be validated
    • Might not be possible to add tests for everything, especially for Python projects like those on Google Colab
    • Nicholas will try to help out with these
  2. Normalize time spent on each cert. [up for grabs]

    • Suggested time spent on each cert is inconsistent
    • Solution is to look for the existing hard coded values (which may be in a few different areas) and update them
    • There was a PR that had a working solution (pulls values, adds them to the config file), but it was missing tests.
    • Someone could replicate this approach and add tests.
  3. Update styles on the documentation site.

    • Current styles are not the best (some things in the sidebar get cut off, font isn’t right, and so on)
    • This involves looking at our style guide and touching up the HTML/CSS
    • Style guide is here: https://design-style-guide.freecodecamp.org
    • Parth is going to work on this.
  4. DRY out the client

    • The organization of the client and curriculum isn’t the best – currently they’re too tangled together
    • We want to separate the client curriculum as much as possible so that the curriculum becomes just a data source
    • There’s a lot that still needs to be discussed/added to the issue (places where hardcoded values are duplicated, how things can be refactored, and so on)
    • Shaun is a good candidate as he already has some context
  5. Reduce Redux dependence [Could be opened up for hacktoberfest]

    • Currently the states are moved from components to a Redux store and handled through actions, providers, epics, and sagas
    • The problem is that we have complex logic that was built into these state changes, which is a barrier to entry for a lot of new contributors
    • We are planning to move state management from Redux to React hooks and context, though we’re not sure if we can get away from Redux entirely
    • The best approach would be to go with a component-by-component basis, changing class components into functional components one at a time to see how we can simplify them
    • We don’t have to get rid of Redux all at once, just little by little one component at a time
  6. Add the links to the submitted projects for each certificate on the user’s profile

    • Showing the submitted project links publicly is to help encourage academic honesty
    • The eventual goal is to have learners build all the projects on fCC itself (involves building a lot of CodePen/JSBin like functionality)
    • Also want to add a “Report a project” button – similar to the “Report a profile” button, but for individual projects (will help us combat copyright infringement, academic dishonesty, and so on)
    • The “Report a profile” button could ping the Discord bot and pass the information around to contributors

    Mrugesh should create GitHub issues and user stories for these.

PR review strategy for Hacktoberfest:

  • If a PR looks like a good contribution, merge it
  • If a PR looks good (not spammy), thank the contributor and close it
  • If a PR looks spammy, close it and add the “Invalid” tag so the contributor doesn’t get credit towards a PR
  • A lot of PRs have spelling changes for different languages/dialects – we only want one type of spelling for each language (American English, Simplified Chinese, South American Spanish, and so on)

Discuss the Issue/PR triaging strategy across all repos:

  • We currently have a lot of issues that are just sitting there and can be triaged or closed if fixed
  • Right now we care about repos: the main fCC repo and testable-projects
  • A lot of remaining issues are more complicated and may need more discussion before we add the “Help wanted” label

General feedback:

  • A meeting every few weeks or at least once a month would be good

Quincy’s closing thoughts and upcoming features:

  • Want to replace Bootstrap with plain old CSS (probably Flexbox based)
  • Want to eventually have a “LinkedIn-lite” experience (professional timeline, life events like moving, portfolio to show off projects)
  • Want to better integrate the forum into the platform/public profile
  • Want to improve the current mobile experience, and eventually create a native Android app
  • Three main pillars of freeCodeCamp:
    1. Core platform dev work (Mrugesh, Ahmad, Oliver, contributors)
    2. Core curriculum work (Randy and Tom primarily working on)
    3. Other stuff (publication, YouTube, grant makers [foundations, sponsors])

A huge thanks to @scissorsneedfoodtoo for taking detailed notes.

2 Likes