ocaml-semver / ocaml-api-watch

Libraries and tools to keep watch on you OCaml lib's API changes
ISC License
21 stars 15 forks source link

Oureachy Summer 2024 Guidance #4

Closed NathanReb closed 6 months ago

NathanReb commented 9 months ago

Hi all,

here's some information about the Outreachy application period. First of all: welcome! 🥳

For applicants

Thanks for contributing to ocaml-api-watch! Here's some information that's additional to the project description on the Outreachy site.

Contributions

Where to find issues

You can look for issues in the issue tracker of this project. In particular look for issues labelled with good first issue

First Steps

First of all, to contribute you'll need to get OCaml up and running. If you haven't already done that, you can have a look at the Installing OCaml page on the ocaml.org site.

How to Contribute

Once you got OCaml up and running, you can head to the CONTRIBUTING.md guide on how to setup the project, building it, running the test suites and everything you need to know to make your first contribution.

Where to ask for help

You should not hesitate to ask questions if you need help. You can ask directly on this issue if you need help with this project, how to contribute, etc... If you need help with a particular issue, you can ask directly on that issue.

We'll add links to other communication channels here later on.

Mentors

The mentors for the application period and for the internship are @NathanReb, @dinakajoy and @shonfeder. We're all very excited about having Outreachy applicants and later an Outreachy intern contributing to this project!

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. One of the projects we -i.e. the OCaml community- is participating with in this Outreachy round consists in writing the core of our API diffing system in ocaml-api-watch. We might get some Outreachy applicants contributing to this repo from March 4th until April 2nd 2024 as part of the application process to that project :)

MungaSoftwiz commented 8 months ago

Hello, I'm Munga from Kenya. I saw the project from Outreachy and it caught my eye. I just got OCaml installed, read the project scope from Outreachy and it's interesting to build tools for developers. Going through OCaml resources and will contribute to the OCaml community. Happy to be here.

dinakajoy commented 8 months ago

@MungaSoftwiz It depends on how you installed the required packages. You can read more on https://ocaml.org/docs/opam-switch-introduction to understand why a forked version might not need extra setup. Feel free to ask more questions if not clear on anything

MungaSoftwiz commented 8 months ago

Thankyou @dinakajoy for the resource. I see that I have to create another directory specific switch for this. I have a global switch but not the OCaml version needed.

NathanReb commented 8 months ago

Yes I would recommend to use local (directory specific) switches to work on this project as it requires a specific version of OCaml and that might conflict with other projects.

In general it is recommend to use local switches for each project you are working on as it makes it easier to manage their respective dependencies this way.

amandaguan-ag commented 8 months ago

Hi, I'm Amanda from Seattle, US, and an Outreachy participant. I've been drawn to this project and have already set up OCaml. I'm now going through tutorials and hoping to contribute to the community shortly.

mridulsrivastavaa commented 8 months ago

Hello , I'm Mridul from India. The OCaml project under Outreachy seemed quite fascinating to work upon and I truly am excited for all the learnings that are to come with this project. Looking forward to contributing to this project.

mridulsrivastavaa commented 8 months ago
rename C:\Users\HP\AppData\Local\Programs\DiskuvOCaml\bin\bos-ba00d2.tmp to C:\Users\HP\AppData\Local\Programs\DiskuvOCaml\bin\opam-real.exe: Permission denied

dkml-package.bc: [ERROR] FATAL [5f927a8b].
                         A transient failure occurred.

                         Root cause: The command had exit code 20:
                                       C:\Users\HP\AppData\Local\Temp\7zE9FF4AE4\bin\dkml-install-user-runner.exe
                                         install-user-offline-opamshim --verbosity=info --color=always
                                         --prefix C:\Users\HP\AppData\Local\Programs\DiskuvOCaml
                                         --staging-files C:\Users\HP\AppData\Local\Temp\7zE9FF4AE4\sg

                         >>> A transient failure occurred. <<<

I am not able to install OCaml. Facing the above error and am not able to rectify this.

dinakajoy commented 8 months ago

@mridulsrivastavaa what Operating System please

shonfeder commented 8 months ago

Hi, @mridulsrivastavaa! It looks like you may be hitting https://github.com/diskuv/dkml-installer-ocaml/issues/87

Please try the fix described at https://github.com/diskuv/dkml-installer-ocaml/issues/87#issuecomment-1837115174

Protip: I found this issue by searching for the first line of your error. That can often help point the way to fixes :)

MungaSoftwiz commented 8 months ago

Happy to meet you @amandaguan-ag and @mridulsrivastavaa. Welcome to this amazing OCaml community.

Payne680 commented 8 months ago

Hi @MungaSoftwiz please I love to contribute to this project but there are no issues

MungaSoftwiz commented 8 months ago

Welcome to the community @Payne680. Please check on the issues section and tag one of our mentors for an issue you would like to contribute to. If no issue is available please contact a mentor. The mentor will advice you on the way forward.

Payne680 commented 8 months ago

Alright @MungaSoftwiz, I will reach out to a mentor asap

mridulsrivastavaa commented 8 months ago

Hi, @mridulsrivastavaa! It looks like you may be hitting diskuv/dkml-installer-ocaml#87

Please try the fix described at diskuv/dkml-installer-ocaml#87 (comment)

Protip: I found this issue by searching for the first line of your error. That can often help point the way to fixes :)

I tried this but still it shows the same error.

mridulsrivastavaa commented 8 months ago

@mridulsrivastavaa what Operating System please

Windows

MungaSoftwiz commented 8 months ago

@mridulsrivastavaa what Operating System please

Windows

I see you tried renaming a file hence the no permission error. Things to think about:

  1. Did you run the command with privileges? If you're using Windows, make sure you're running the command prompt or PowerShell with administrative privileges. Right-click on the command prompt or PowerShell icon and select Run as administrator.
  2. With windows sometimes the antivirus might interfere when trying to install programs. Try temporarily disabling the antivirus software to see if it works.
mridulsrivastavaa commented 8 months ago

Contributor

I tried turning off the microsoft windows defender and also checked for running powershell as administrator but didn't work. How should I proceed further ?

MungaSoftwiz commented 8 months ago

Can you please provide the updated error logs? We might be able to deduce something @mridulsrivastavaa .

mridulsrivastavaa commented 8 months ago

Can you please provide the updated error logs? We might be able to deduce something @mridulsrivastavaa .

2024-03-06T16:45:23.801Z [Win32] C:\Program Files\Git\cmd\git.exe -C C:\Users\HP\AppData\Local\Temp\PA19DC~1\0 clone https://github.com/thekid/inotify-win.git Cloning into 'inotify-win'... 2024-03-06T16:45:26.480Z [Win32] C:\Program Files\Git\cmd\git.exe -C C:\Users\HP\AppData\Local\Temp\PA19DC~1\0\inotify-win -c advice.detachedHead=false checkout 36d18f3dfe042b21d7136a1479f08f0d8e30e2f9 HEAD is now at 36d18f3 Merge branch 'master' of github.com:thekid/inotify-win 2024-03-06T16:45:26.568Z [Win32] C:\WINDOWS\system32\cmd.exe /c call "C:\Users\HP\AppData\Local\Temp\PA19DC~1\0\inotify-win\compile.bat"

C:\Users\HP\AppData\Local\Temp\7z5822BFA0>"C:\DiskuvOCaml\BuildTools\Common7\Tools\vsdevcmd.bat" -no_logo -vcvars_ver=14.26 -winsdk=10.0.18362.0 && csc.exe /nologo /target:exe "/out:C:\Users\HP\AppData\Local\Temp\PA19DC~1\0\inotify-win\inotifywait.exe" "C:\Users\HP\AppData\Local\Temp\PA19DC~1\0\inotify-win\src*.cs" The system cannot find the path specified.

The above is the log file.

mridulsrivastavaa commented 8 months ago

Can you please provide the updated error logs? We might be able to deduce something @mridulsrivastavaa .

As I am absolutely new to open source, do let me know if I haven't understood your question well.

mridulsrivastavaa commented 8 months ago

Setup did not complete because an error occurred. Win32 command failed! Exited with 1. Command was: C:\WINDOWS\system32\cmd.exe /c call "C:\Users\HP\AppData\Local\Temp\PA19DC~1\0\inotify-win\compile.bat".

at Invoke-Win32CommandWithProgress, C:\Users\HP\AppData\Local\Temp\7z5822BFA0\sg\network-ocamlcompiler\windows_x86_64\setup-userprofile.ps1: line 771 at , C:\Users\HP\AppData\Local\Temp\7z5822BFA0\sg\network-ocamlcompiler\windows_x86_64\setup-userprofile.ps1: line 914 at , : line 1 at , : line 1

Bug Reports can be filed at https://github.com/diskuv/dkml-installer-ocaml/issues Please copy the error message and attach the log file available at C:\Users\HP\AppData\Local\Programs\DISKUV~1\setup-userprofile.full.log

FATAL [a0d16230]. A transient failure occurred.

Root cause: The conformant command had exit code 1: C:\Users\HP\AppData\Local\Temp\7z5822BFA0\sg\network-ocamlcompiler\windows_x86_64\setup-userprofile.bat -AllowRunAsAdmin -InstallationPrefix C:\Users\HP\AppData\Local\Programs\DISKUV~1 -MSYS2Dir C:\Users\HP\AppData\Local\Programs\DISKUV~1\tools\MSYS2 -OpamExe C:\Users\HP\AppData\Local\Programs\DISKUV~1\bin\OPAM-R~1.EXE -DkmlPath C:\Users\HP\AppData\Local\Temp\7Z5822~1\sg\NETWOR~1\WINDOW~1\dkmldir -GlobalCompileDir C:\Users\HP\AppData\Local\Temp\7Z5822~1\sg\STAGIN~1\generic -NoDeploymentSlot -DkmlHostAbi windows_x86_64 -TempParentPath C:\Users\HP\AppData\Local\Temp\PA19DC~1 -SkipProgress -SkipMSYS2Update

A transient failure occurred. <<<

dkml-package.bc: [ERROR] FATAL [5f927a8b]. A transient failure occurred.

                     Root cause: The command had exit code 20:
                                   C:\Users\HP\AppData\Local\Temp\7z5822BFA0\bin\dkml-install-user-runner.exe
                                     install-user-network-ocamlcompiler --verbosity=info
                                     --color=always --prefix
                                     C:\Users\HP\AppData\Local\Programs\DiskuvOCaml
                                     --staging-files C:\Users\HP\AppData\Local\Temp\7z5822BFA0\sg

                     >>> A transient failure occurred. <<<

This is the error message

dinakajoy commented 8 months ago

@mridulsrivastavaa are you running WSL on your machine?

mridulsrivastavaa commented 8 months ago

@mridulsrivastavaa are you running WSL on your machine?

Yes, I installed it as the requirements for the project stated windows users to have WSL

MungaSoftwiz commented 8 months ago

@mridulsrivastavaa are you running WSL on your machine?

Yes, I installed it as the requirements for the project stated windows users to have WSL

Then you can install an Ubuntu version from Microsoft Store. This will enable you to work in a Linux environment in windows. Install Ubuntu from Microsoft Store:

  1. Open the Microsoft Store on your Windows machine.
  2. Search for Ubuntu and select Ubuntu from the search results. Click on Install to download and install Ubuntu on your system. We have several version but go with the latest 22.04

Launch Ubuntu: After installation, launch Ubuntu from the start menu or by searching for it.

Initial Configuration: Upon first launch, ubuntu will prompt you to set up a new user account. Follow the on-screen instructions to create your username and password. Select one you won't forget because it will be used for privileged actions/commands.

Update Packages (Optional): The run the following commands in the Ubuntu terminal to update the package lists and upgrade existing packages:

sudo apt update
sudo apt upgrade

If you have not used a linux environment before I would suggest going to YouTube and watch some videos of LearnLinuxTv. Here is a the playlist: https://www.youtube.com/watch?v=lvSoxOMg5_c&list=PLT98CRl2KxKHaKA9-4_I38sLzK134p4GJ

Then you can go to the contributions page and install OCaml on your linux environment.

Personally I think working in a Linux environment would be easier for the project compared to windows.

Siddhi-agg commented 8 months ago

Hello everyone! This is Siddhi from India. I am an Outreachy participant and am very excited to work on this project. I have started studying up on OCaml and have set up this project repository in my local machine. Looking forward to interacting and contributing!

Payne680 commented 8 months ago

@NathanReb Please there are no free issues for me to contribute

mridulsrivastavaa commented 8 months ago

@mridulsrivastavaa are you running WSL on your machine?

Yes, I installed it as the requirements for the project stated windows users to have WSL

Then you can install an Ubuntu version from Microsoft Store. This will enable you to work in a Linux environment in windows. Install Ubuntu from Microsoft Store:

  1. Open the Microsoft Store on your Windows machine.
  2. Search for Ubuntu and select Ubuntu from the search results. Click on Install to download and install Ubuntu on your system. We have several version but go with the latest 22.04

Launch Ubuntu: After installation, launch Ubuntu from the start menu or by searching for it.

Initial Configuration: Upon first launch, ubuntu will prompt you to set up a new user account. Follow the on-screen instructions to create your username and password. Select one you won't forget because it will be used for privileged actions/commands.

Update Packages (Optional): The run the following commands in the Ubuntu terminal to update the package lists and upgrade existing packages:

sudo apt update
sudo apt upgrade

If you have not used a linux environment before I would suggest going to YouTube and watch some videos of LearnLinuxTv. Here is a the playlist: https://www.youtube.com/watch?v=lvSoxOMg5_c&list=PLT98CRl2KxKHaKA9-4_I38sLzK134p4GJ

Then you can go to the contributions page and install OCaml on your linux environment.

Personally I think working in a Linux environment would be easier for the project compared to windows.

Thank you, the issue got resolved.

NathanReb commented 8 months ago

@NathanReb Please there are no free issues for me to contribute

@Payne680 I'm sorry we closed, at least temporarily, the project to new applicant as we already have a lot more than we initially expected. I can only advise you to look for other projects in the meantime.

I'll let you know if we re-open it and have issues opened for new contributors.

Payne680 commented 8 months ago

Alright @NathanReb, I will look for another project in the meantime

harshey1103 commented 8 months ago

@NathanReb @shonfeder I've been considering an alternative approach for implementing the api-watch project, and I wanted to suggest the idea of using the OCaml parse tree. This approach uses the parse tree to analyze modifications, deletions, or additions. While I'm not very experienced in parsing and syntax trees, I had been reading about crafting interpreters, and it occurred to me that this approach might offer a solution to our problem. However, I also acknowledge that I might be mistaken and need to be corrected about this suggestion.

NathanReb commented 8 months ago

@harshey1103 The parsetree is a mere abstract representation of the source code in .ml or .mli files.

The .cmi files are interface files, built by the compiler from .mli files. Their content is very similar to the parsetree but is simplified to be strictly what we care about here and has already been partially interpreted by the compiler.

By using the .cmi files, i.e. the Types.signature type, we ensure that we agree with the compiler on what the actual interface of a module is.

MungaSoftwiz commented 8 months ago

Hello @NathanReb @shonfeder. I have been working on the final application and could not help but notice the statement below: You have not provided answers to community-specific questions. Please double check with your mentor and coordinator if you need to provide additional information.

Do we have any community specific questions for this project please? I wanted to ask early because of the fast approaching Easter celebrations.

shonfeder commented 8 months ago

We do not have any Communtiy-specific questions!

NathanReb commented 6 months ago

I'm closing this as the application period has ended!