-
Notifications
You must be signed in to change notification settings - Fork 250
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
Outreachy Summer 2023 #1402
Comments
Hello, I was on step 0,
I had followed all the previous steps carefully, and encountered no errors before this. Then, I tried,
In the end, I removed all changes to the repo, and ran |
I suppose this issue needs a senior hand of advice. |
@AryanGodara what version of OCaml is your current opam switch using? you can check by running the following command.
|
@moazzammoriani I have |
I would suggest switching over to a recent version of OCaml 4. You can do this by creating a new |
@moazzammoriani , it took some tries to get the versioning right, but it finally worked!
|
@reynir I completed the Hello world tutorial. I ran into the same problems earlier mentioned by @AryanGodara but after switching from |
Hi everyone. Just joined in...aaand I'm super excited to get this experience. I've successfully ran those commands and set up my environment :) So I tried opening the overview page, documentation, and MirageOS hello-world unikernel by clicking directly on the link, but I've been unsuccessful. I am met with a "site cannot be reached...time out error" |
Regarding my issues earlier on, the site is back on. |
Hello Everyone. Just joining in on the project. Looking forward to learning and growing through this experience. I want to confirm that if is the public channel for conversations on this project and there is no chatroom elsewhere? |
Hi @fikkyJ |
Hiii, successfully completed step one :) ./dist/hello 2023-03-13 13:53:56 +01:00: INF [application] hello 2023-03-13 13:53:57 +01:00: INF [application] hello 2023-03-13 13:53:58 +01:00: INF [application] hello 2023-03-13 13:53:59 +01:00: INF [application] hello |
I encountered similar issues like @AryanGodara but after switching the version as suggested by @moazzammoriani , it was successful. |
@moazzammoriani , will we get good-first-issues for MIDI over ethernet with MirageOS soon ? |
@AryanGodara you can checkout some first-issues to work on for the MIDI over Ethernet project over here: |
@moazzammoriani A little late to ask this😅 |
@AryanGodara I believe we're using OCaml because that's the default language for MirageOs for several reasons, including:
While Rust and C are also popular languages for systems programming, they have different design goals and trade-offs compared to OCaml. Rust, for example, places a strong emphasis on memory safety and has a unique ownership model to prevent common programming errors. C, on the other hand, is a low-level language that gives the programmer fine-grained control over memory and hardware resources. Each language has its own strengths and weaknesses, and the choice ultimately depends on the specific requirements of the project. I hope this helps :) |
Thanks for the info @0x0god , this was really helpful. |
@AryanGodara : There is a strong emphasis on correctness and safety in MirageOS, this is both in terms of the separation of the unikernel from the OS and other applications, and via the language OCaml. As a statically typed functional language (with all that brings), OCaml is inherently more typesafe and easier to reason about than what is possible in OO languages. Concerning the module system of OCaml which @0x0god mentioned, this is specifically also a nice fit for abstracting over different devices and backends with MirageOS. It is determined statically (when running |
Thanks for this...it helps :) |
Thank you @rand00 and @0x0god , this really cleared up my doubts! |
While OCaml in my opinion has clear advantages for writing unikernels there are unikernel projects that are written in C, Rust, and other languages. There is a list here though I don't know what the state is of the projects listed (besides Mirage) http://unikernel.org/projects/ |
So far really enjoying the challenge. I've managed to run hello world and build for another backend. yaay. Loving every bit |
It is clear that this response was generated by ChatGPT and that it conveys incorrect information (and that the reader should be made aware of this) with regard to MirageOS and OCaml. In particular, MirageOS is not compatible with OCaml 5 yet and we do not intend to use multiple cores (yet). The MirageOS team has also not been significantly involved in optimizing the OCaml runtime (other people/companies/groups are doing this work that we are discussing with but the MirageOS team has a more conservative approach to the OCaml runtime). More generally, it is unfortunate to see this type of response especially in the context of Outreachy where mutual help, knowledge transfer and learning are central to the interactions between apprentices and mentors. However, I hope that @reynir and @rand's answers (from their experiences) have clarified the questions originally asked. |
Thanks for that, I have a question; can you recommend any resources to learn/practice MBR/file system with OCaml? |
Hi I have completed the My only issue is that I have not been able to setup the appropriate VS Code extensions for OCaml 😥 |
@kamtoeddy Just OCaml Platform extension should be enough, in the left bar (below ur docker, version control, etc) there is OCaml, where you can manage your Sandbox, Switches, and their installed dependencies, plus support for separate terminals. |
Hi @AryanGodara, Thanks |
@kamtoeddy , Did you follow all the steps provided by @moazzammoriani for installing ocaml-platform? (And did you get the desired results there?) Next, can you check your Then, there's this command you have to run
In this maybe you can see everything that I have installed, and their versions. I'm sorry for late reply, my mid-semester exams are going on. I'll update faster this time @kamtoeddy 😅 |
Hey @AryanGodara, |
@kamtoeddy are you still getting the errors? Strangely, your |
Also, the main issue comment has been edited with a note on the use of ChatGPT and generative AI. |
@moazzammoriani, @AryanGodara I switched to WSL. Installed from scratch and restarted my editor. Now it works Thanks |
Ref to That's very true thanks for pointing that out. I made that mistake while starting out my contribution But I stopped immediately I found out most of the responses from AI are not always correct and I learned that AI is only good for getting ideas or research on projects but not good for providing immediate solutions to the project. I learned the best way to provide a solution is by making research on a particular bug or project (maybe using google, AI chats, etc.), checking documentation, asking questions in the community, discussing with mentors e.t.c Try as much to understand the project. I will advise all fellow applicants to take note of that as well. Thanks to my mentors for recommending good resources to me....now I've been getting good shapes on running OCaml codes, Data Types, modules, functors, etc... on my Fedora 37 and found out OCaml is the type of language that will be so much useful to my future projects as a software engineer and aspiring data scientist. |
I also learned |
I just completed some important OCaml fundamentals using this youtube channel by a professor I have learned how to create a Module, List, Funtors, Records, Types, etc using OCaml with some little exercises. Now looking out to check into the recent bugs I'm working on while also practicing using the Janestreet OCaml workshop github exercises. :) All thanks to my mentors. |
I understand that we can create a Thanks. |
those interested in MIDI with MirageOS can also keep on an eye on https://github.com/rand00/fry |
You're welcome :) |
@Khadija411 feel very welcome, |
Hello, mentor @reynir, I just sent you an email, please check. Thank you. |
Hi Outreachy applicants, I hope you all had a great time contributing to OCaml! Some folks working on improving the OCaml user experience for newcomers have recently started a survey to discover the main pain points for newcomers. If you could take a sec to fill it in, that would be super helpful: https://docs.google.com/forms/d/e/1FAIpQLSe4ZwOEQ_gj0o9vzCRJnKJqiQTZ9gI0qYE4QFsprAoltQUKlg/viewform |
Filled! |
|
completed |
I just completed 17 of 21 exercises of JaneStreet Ocaml workshop Here , implemented some solutions of other 4 exercises but not yet completed. I was able to understand some advance concepts...looking forward to complete the remaining 4 exercises in few days, so I can use the knowledge to complete some of my PRs. I really recommend all my fellow mates to checkout the workshop. :) |
Congrats to those selected 🥇 , Godspeed to you all! |
I will continue improving my ocaml skills and try luck next time 🙂 . Please, mentors, I will really appreciate some feedback to improve my skills. 🙏 🙏 . Thanks :) |
Some info about Outreachy summer 2023
Hi all,
here's some information about the Outreachy application period. First of all: welcome! 🥳
For non-applicants confused by this see this section.
For applicants
Thanks for contributing to the MirageOS ecosystem! This is the right place to start, if you're considering applying to any of the following three Outreachy projects:
conntest
with visualizationsInstalling OCaml on Your System
Quick Installation
The quickest way to install OCaml currently is using the OCaml Platform Installer.
You'll need to install some dependencies if they're not already installed. This can be done easily using a package manager.
If you're running an Ubuntu/Debian system you can run the following command in your terminal.
After your dependencies are installed run the below install script.
Install the Platform tools.
We also need to install an opam switch that uses a version of OCaml 4 that Mirage currently supports.
Finally, we simply update the new opam environment.
Other Installation Methods
If the OCaml Platform installation method does not suit you then you can take a look at the variety of other installation methods described at ocaml.org.
What is MirageOS?
You see OS in the name so you're probably guessing that MirageOS is some sort of operating system. That's certainly true but perhaps that distracts from the problem MirageOS tries to solve.
MirageOS is indeed an operating system, but it is a special kind of operating system. It is a library operating system that constructs this thing called a unikernel. A unikernel is a stripped-down, bare-bones operating system that has only the parts needed to run a single application.
When it comes to containing applications, if the container--e.g Docker--was the successor to virtual machines then the next step after the container is the unikernel.
You can learn more about MirageOS from its overview page and its documentation page.
Contributions
Let's get right at it! By the end of the day, you're here to contribute to the MirageOS ecosystem and to apply to one of the three projects mentioned above.
First step: the MirageOS hello-world
If you want to apply to any of the those projects, the first step for you will be to compile and run the MirageOS hello-world unikernel: https://mirage.io/docs/hello-world. Please, read through Step 0 and Step 1 of that document to build a Unix binary containing your hello-world unikernel. When running
./hello
, you should seehello
(no need to build it for thehvt
backend as well - although, of course, you're welcome to do so, if you're interested and on a Linux machine).Once you've achieved that, please let us know here on the issue that you have. And if you have troubles with it, don't hesitate to ask!
Second step: a
good-first-issue
Once got the
hello-world
unikernel to run, you're ready to start contributing. Where to find good issues to work on depends on the project you want to apply to.Persistent Storage in MirageOS
Please find a list of relevant issues to contribute towards here: mirage/ocaml-mbr#15
Once you've tackled one good-first-issue issue, you can try a
medium
issue as well (optional):<We're going to post an issue tracker with
medium
issues for the Persistent Storage in MirageOS soon.>Extend the network testing tool
conntest
with visualizationsPlease find a list of relevant issues to contribute towards here: https://github.com/rand00/conntest/issues
Once you've tackled one good-first-issue issue, you can try a
medium
issue as well (optional):<We're going to post an issue tracker with
medium
issues for the Extend the network testing toolconntest
with visualizations soon.>MIDI with MirageOS
Good first issues:
Once you've tackled one good-first-issue issue, you can try a
medium
issue as well (optional):<We're going to post an issue tracker with
medium
issues for the MIDI with MirageOS soon.>Note: when working with
cardio-crumble
make sure that youropam switch
is using OCaml 5Ask Questions!
You are bound to get stuck somewhere and that's perfectly fine because that means you're moving towards progress!
If you don't know how to move forward with the problem you're stuck with then don't hesitate to ask .
For general questions, you can ask on discord, which you can access via this invitation link. Once you've joined discord, if you have a question about PPX that's not related to some issue, you can ask on the MirageOS channel. If you have a general question about something else, e.g. how to get OCaml up and running, you can ask on another discord channel, for example on the Outreachy channel.
Happy hacking :)
Mentors
You have five mentors for the application period: Reynir (github: @reynir), Claes (@rand00), Oskar (@musha68k), Moazzam (github: @moazzammoriani, discord: mwzm) and Sonja (github: @pitag-ha, discord: pitag). Reynir and Claes are both experienced MirageOS hackers (including OCaml experience). Oskar, long time OCaml and MirageOS enthusiast is very familiar with networks and general systems programming. Moazzam has completed his own Outreachy internship about a year ago and has since been hacking on RISC-V. Sonja is very familiar with OCaml, has some experience with MirageOS and MIDI, and has already mentored during three previous Outreachy rounds.
We're all very excited about having Outreachy applicants and later Outreachy interns contributing to the MirageOS context! On weekends we tend to be non- or less available.
For Non-applicants
Outreachy is an initiative to give folks from under-represented groups in open-source the opportunity to do a remote internship in an open-source project. So for open-source communities, Outreachy is a great opportunity to work together with folks from lots of different backgrounds and maybe even grow the community and become more diverse! Outreachy provides the infrastructure for the internships and application process, and the open-source communities need to provide projects and mentoring. Three of the projects we -i.e. the OCaml community- is participating with in this Outreachy round are MirageOS related. So we might get some Outreachy applicants contributing to some of our MirageOS repos from (...) till (...). as part of the application process to those projects :)
A Note on Using ChatGPT and Generative AI for Contributions
We, the mentors for MirageOS-related projects (@moazzammoriani, @pitag-ha, @rand00, @reynir) have discussed the role of ChatGPT and generative AI during this contribution period and have identified some of the following--non-exhaustive list of--problems in using this technology to contribute.
Your judgement and understanding
We don't want contributors to be using generated contributions in situations where we want you to make your judgement. Submitting generated code with little or no understanding as a contribution would be an extreme case of this.
We think if you make a contribution you should be exercising your own judgement and trying your best to solve some problem. Your effort and hard-work are the true essence of any contribution.
Borrowing code has almost always been fine, but even when you do that you are expected to make the judgement to borrow it in the first place. It also is still your responsibility to test that code and abstractly know why that code is there to begin with.
Responsibility
A large part of open-source involves is about taking on responsibility. We think that use of these tools should not take away from that.
Mentor time
With all the contributions, the mentor would be trying to read through this contribution and provide any feedback so that the contributor can learn from this and improve. This takes time and effort on the mentor's part. This would be wasted if they realize half-way that the code was AI-generated.
Mentors want to help you learn and improve. This is difficult or even impossible to do if you don't show them your own work.
Concluding remarks
We only request you to be mindful of all this.
If you happened to use ChatGPT for something like brain-storming ideas for a contribution, that's ok. We ask you in that case to let your mentor know. Giving them the heads up might help them save time and even put you in a better position of trust.
The text was updated successfully, but these errors were encountered: