Sudha247 / ocaml-joy

MIT License
22 stars 14 forks source link

Outreachy Winter 2023 #1

Open Sudha247 opened 11 months ago

Sudha247 commented 11 months ago

Hello!

Thanks for stopping by. If you are an outreachy applicant interested in contributing to this library, please read on. For people unfamiliar with outreachy, the official website gives a good overview of the program.

What is this library

This library aims to be a tiny geometric creative coding library, much like the original python version. You are encouraged to go through this tutorial to get a feel of what the library is. We are embarking on a journey to implement a similar library in OCaml.

Install OCaml

First things first, let's install OCaml on your machines. The easiest way to install OCaml on Unix based machine is through opam.

$ bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)"
$ opam init
$ opam switch create 5.1.0

Windows users, please refer to the instructions at ocaml.org: https://ocaml.org/docs/up-and-running#installation-on-windows.

Graphics library

We will use the graphics library for our implementations. Feel free to install and play around with it.

To install it, run opam install graphics.

Next steps

Over the course of this week, we'll add issues tagged as good-first-issue. Once you are done with the above steps, go ahead and pick up any of these issues. Please mention in the issue when you start working on it, so there isn't duplication of work.

At any point, please don't hesitate to ask questions. You can contact the mentors either here in the issue tracker or in the #outreachy channel in OCaml discord.

OCaml learning resources

If you are new to OCaml, we encourage you to go through some of these learning materials to familiarise yourself with OCaml and functional programming:

nangahamandine commented 11 months ago

Hello, I'm done installing OCaml on my pc. You mentioned that we will use the Graphics library for our implementations. When you asked us to install it and play around, are we supposed to fork the repo, run the code and see the results...? I'm not exactly sure how to proceed.

Sudha247 commented 11 months ago

Hi @nangahamandine, thanks for your interest in contributing. I've elaborated this in #3.

nangahamandine commented 11 months ago

Thank you

joanita-51 commented 11 months ago

Installing OCaml on Ubuntu 22.04

I'm using Ubuntu 22.04 and I'm trying to install OCaml on my machine through opam. I'm following these steps:

  1. install and configure opam

Add Repository

However, I encounter the following error: "The repository 'https://ppa.launchpadcontent.net/avsm/ppa/ubuntu jammy Release' does not have a Release file."

Error

How can I resolve this issue?

AryanGodara commented 11 months ago

@joanita-51 Try running this sudo add-apt-repository --remove ppa.launchpadcontent.net/avsm/ppa/ubuntu And if that gives error, then this sudo add-apt-repository --remove ppa.launchpadcontent.net/avsm/ppa

Now run sudo apt-get update

This error isn't specific to this particular repo, but an issue with your ubuntu version. The PPA you've added does not support your version of Ubuntu, meaning there aren't any packages for your particular release. So, one possible solution is to remove the PPA.

joanita-51 commented 11 months ago

Alright, thank you @AryanGodara I also managed to install OCaml quickly by executing the following commands in my terminal:

I also found the documentation at https://ocaml.org/docs/up-and-running to be helpful

From this screenshot, i think i'm now good to move forward ⏭️ image

Sudha247 commented 11 months ago

PSA for Outreachy participants: If you plan to apply for this project under the OCaml organization, please ensure your contributions are up-to-date on the outreachy website. An open PR is considered a contribution; you don't need to wait for it to be merged.

nangahamandine commented 11 months ago

PSA for Outreachy participants: If you plan to apply for this project under the OCaml organization, please ensure your contributions are up-to-date on the outreachy website. An open PR is considered a contribution; you don't need to wait for it to be merged.

Okay, thank you.

Sudha247 commented 10 months ago

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

nangahamandine commented 10 months ago

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

Thank you @Sudha247 Are there any community specific questions that you'd like for us to answer?

Also, what do we fill in the internship timeline or do we leave it blank?

nangahamandine commented 10 months ago

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

@kushalpokharel @godplayer56 @Mankavelda @FayCarsons @TitilayoAdeyemi I'm tagging you all so you might get notified via email, since you didn't comment here and might miss the important notification.

Good luck to us all :)

Sudha247 commented 10 months ago

Thanks @nangahamandine!

Re: timeline, I'd suggest including a combination of completing the API (we don't have a lot of stuff left here), exploring other backends, and creating tutorials. This is, of course, subject to updates during the internship itself.

@nikochiko and I were discussing when we met recently about the backends, and we thought it might be worth looking at a javascript or web assembly backend (via js_of_ocaml and wasm_of_ocaml, respectively).

For community-specific questions, I'll let you decide what you'd like to include. It is optional to fill it in.

(this recommendation applies to everyone.)

nangahamandine commented 10 months ago

Thanks @nangahamandine!

Re: timeline, I'd suggest including a combination of completing the API (we don't have a lot of stuff left here), exploring other backends, and creating tutorials. This is, of course, subject to updates during the internship itself.

@nikochiko and I were discussing when we met recently about the backends, and we thought it might be worth looking at a javascript or web assembly backend (via js_of_ocaml and wasm_of_ocaml, respectively).

For community-specific questions, I'll let you decide what you'd like to include. It is optional to fill it in.

(this recommendation applies to everyone.)

Okay, thank you @Sudha247. A javascript or web assembly backend is a great idea! Thank you again for all the help so far :)

nangahamandine commented 10 months ago

Here is the writeup I've come up with for the project timeline. Please review it in case of any suggestions or improvement:

Month 1: Orientation and API Development

Week 1: Orientation and project familiarization. Week 2: Complete the simple and approachable API. Week 3: Write documentation for the API and start writing tutorials. Week 4: Begin exploring JavaScript and Web Assembly backends.

Month 2: Backend Implementation and Enhancements

Week 5: Continue backend implementation (JavaScript and WASM) or decide not to proceed. Week 6: Enhance the API to support composability and transformation. Week 7: Document the new backends and update tutorials. Week 8: Project report and review.

Month 3: Finalization and Reporting

Week 9: Conduct a comprehensive code review and address feedback. Week 10: Finalize any pending tasks, perform extensive testing, and fix bugs. Week 11: Prepare the final project report and review all documentation. Week 12: Participate in project handover and final discussions.

Sudha247 commented 10 months ago

@nangahamandine, thanks for presenting your proposed timeline. Some of these tasks are too ambitious for a week (e.g., one week for a new backend implementation), while one week may be long for some, like writing a report. I suggest condensing the week-wise breakup to a month-long collective description.

Also, a note to those using LLMs for their work -- please refer to the section on ChatGPT made for the previous round of outreach here titled "A Note on Using ChatGPT and Generative AI for Contributions" - https://github.com/mirage/mirage/issues/1402. I do encourage you to use AI tools for learning. But please be mindful about using AI for actually doing the work you're expected to do.

nangahamandine commented 10 months ago

@nangahamandine, thanks for presenting your proposed timeline. Some of these tasks are too ambitious for a week (e.g., one week for a new backend implementation), while one week may be long for some, like writing a report. I suggest condensing the week-wise breakup to a month-long collective description.

Also, a note to those using LLMs for their work -- please refer to the section on ChatGPT made for the previous round of outreach here titled "A Note on Using ChatGPT and Generative AI for Contributions" - mirage/mirage#1402. I do encourage you to use AI tools for learning. But please be mindful about using AI for actually doing the work you're expected to do.

Okay, thank you.

FayCarsons commented 10 months ago

How should we handle unmerged PRs? Should those be added as contributions in the final application? @Sudha247

joanita-51 commented 10 months ago

Here is my proposed timeline, and I welcome any suggestions for improvement.

Week 1 (December 4-10): Project Kickoff

Week 2 (December 11-17): Transition to using the decided Backend

Week 3 (December 18-22): Backend Implementation (Initial)

Week 4 (December 27-31): Backend Implementation (Continued)

Week 5 (January 1-7): Tutorial Preparation

Week 7 (January 15-21): Backend Refinement

Week 8 (January 22-28): Integration Testing

Week 9 (January 29-February 4): Tutorial Completion

Week 10 (February 5-11): Stretch Goals (as needed)

Week 11 (February 12-18): Final Polish and Review

Week 12 (February 19-29): Final Presentation and Wrap-Up

kushalpokharel commented 10 months ago

How should we handle unmerged PRs? Should those be added as contributions in the final application? @Sudha247

You can include them. https://github.com/Sudha247/ocaml-joy/issues/1#issuecomment-1755900112

TitilayoAdeyemi commented 10 months ago

Another PSA for outreachy participants: today is the last day to submit your final applications. Please submit them when they're ready. Best of luck to everyone!

@kushalpokharel @godplayer56 @Mankavelda @FayCarsons @TitilayoAdeyemi I'm tagging you all so you might get notified via email, since you didn't comment here and might miss the important notification.

Good luck to us all :)

Thank you so much @nangahamandine for tagging us

nangahamandine commented 10 months ago

You're welcome @TitilayoAdeyemi