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

Outreachy: getting familiar with the development environment #3105

Closed
benclifford opened this issue Feb 23, 2024 · 32 comments · Fixed by #3122, #3123, #3131, #3148 or #3190
Closed

Outreachy: getting familiar with the development environment #3105

benclifford opened this issue Feb 23, 2024 · 32 comments · Fixed by #3122, #3123, #3131, #3148 or #3190
Labels
outreachy Good initial contributions for Outreachy applicants

Comments

@benclifford
Copy link
Collaborator

This issue is targeted at potential applications for Parsl's participation in Outreachy. The tasks in this issue can be performed by any number of applicants. Talk to @benclifford on Slack if you are interested.

The point of the tasks in this issue are to walk you through getting a development environment set up, making a trivial change to the code, seeing how our tooling tests things, deliberately introducing a problem, and then fixing that problem. By the end you should have a trivial 1-byte change to submit to parsl as a PR, to try out the PR process.

There are lots of steps because I have tried to make each step small.

If you get stuck or don't understand any of these steps - you can ask @benclifford on Slack or write publicly in the #parsl-hackers channel on Slack.

  1. Get a Python environment - parsl is supported on Python versions 3.8 - 3.12.
  2. Sign up for a GitHub account
  3. Go to the parsl repository at https://github.com/Parsl/parsl and near the top right, click "Forks / create a new fork". This will make a fork of parsl in your own github account.
  4. Install parsl - follow the instructions in the "For developers" section of the Parsl README at https://github.com/Parsl/parsl - but when asked to run the command git clone https://github.com/parsl/parsl, instead use the address of your fork created in the previous step.
  5. You can run some local tests by running make local_thread_test, and some more advanced tests with make htex_local_alternate_test
  6. You can test our code linting by running `make flake8' which checks all of our Python code to see if it matches the Python style rules in PEP-8
  7. We have configuration to let us break the style rules sometimes. This lives in the file called .flake8. You can open that file and make a change to move us towards proper PEP-8 compliance: find the line that says max-line-length = 158 and make it 1 smaller. (PEP-8 says the max line length should be 80... but we can't change it all at once)
  8. Run make flake8 again - you should see that you can an error: flake8 should have found a line that is now too long.
  9. Edit that line - you'll have to figure out how to make it shorter, perhaps by splitting it into two valid lines of Python
  10. Run make flake8 again and you should see that flake8 passes again
  11. Now you can make a git commit: type git commit -a -m "Reduce flake8 max-line-length. Don't worry if you don't understand what git is doing: you can learn more about that during the internship.
  12. Now push that commit up to github: type git push
  13. Visit your repository on github in your web browser - you should see your commit there now.
  14. Click "Pull request" to make a pull request to the main Parsl repository.
  15. Fill out the template - you don't need to write too much
  16. Sit back and wait for someone to review your pull request - that might happen within minutes, or it might take many hours, depending on who is working/awake/etc. Don't panic if you haven't heard after a few hours!
  17. You might get some feedback and need to make some changes - the reviewer will help you with that
  18. or... they might merge your change, in which case Congratulations! you've made a tiny contribution to Parsl, and our code base is now a tiny bit cleaner!
@benclifford benclifford added the outreachy Good initial contributions for Outreachy applicants label Feb 23, 2024
@Harichandra-Prasath
Copy link
Contributor

My application got approved in outreachy, I will take this and create a pr

@benclifford
Copy link
Collaborator Author

@Harichandra-Prasath ok great! This specific issue #3105 isn't limited to one applicant: it's a basic exercise for everyone to get a development environment going, so other people reading this shoudn't be put off trying this out too.

@Harichandra-Prasath
Copy link
Contributor

I am very interested in this project, sir. May I know how to get started and do quality contributions.

@benclifford
Copy link
Collaborator Author

@Harichandra-Prasath work your way through this issue #3105 and get a pull request merged from a working dev environment, to get started - when that is all working, we can pick out some other issues that are good for you to work on.

@Unique-Usman
Copy link
Contributor

@benclifford I am really interested in this project. I hope to learn and contribute to the project.

@baimamboukar
Copy link

Hello @benclifford !

Could you spend a few minutes of your precious time reviewing #3128 ?

Thanks in advance!

@MundiaNderi
Copy link

Hey @benclifford please review #3126 . Thank you :).

@nupurkale78
Copy link

Hello @benclifford please take a look!

@mercybassey
Copy link
Contributor

mercybassey commented Mar 5, 2024

Hi @benclifford I am an outreachy applicant and I am interested in contributing to this project. Kindly review my PR #3130 Thank you.

@Insharamin12
Copy link
Contributor

Hey @benclifford

My initial application to outreachy got accepted and I'm interested to make contributions in this project.
Please review: #3131

Looking forward to your feedback. Thanks!

@marameref
Copy link
Contributor

hi @benclifford, i just got accepted into the contribution phase of outreachy 2024, and i just created a PR on

#3144

pls review and merge. Thanks

@dawit-andargachew
Copy link

dawit-andargachew commented Mar 7, 2024

Hey @benclifford
I am an Outreachy applicant and I am interested in contributing to this project.
Kindly review my PR - 3138
Thank you.

@OfficialOzioma
Copy link

Hi @benclifford please review my PR #3169 I also updated the readme.

@kemsguy7
Copy link

kemsguy7 commented Mar 7, 2024

While setting up on macos, I encoutered similar issues @OfficialOzioma faced.

When i ran make deps , i got these errors: **ERROR: Failed building wheel for mpi4py
Failed to build mpi4py
ERROR: Could not build wheels for mpi4py, which is required to install pyproject.toml-based projects

**
RESOLUTION
I ran these codes one after the other
brew install open-mpi
pip3 install mpi4py

When also running the make test command, I got the errors below
**process_worker_pool.py:643: error: Module has no attribute "sched_getaffinity" [attr-defined]
parsl/executors/high_throughput/process_worker_pool.py:683: error: Module has no attribute "sched_setaffinity" [attr-defined]
parsl/tests/test_python_apps/test_lifted.py:28: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
parsl/tests/test_python_apps/test_lifted.py:29: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
**
RESOLUTION
I ran the smaller test suite make config_local_test

Also, if you get and error flake8 not found when running make test, use brew or macports depending on your package, manager of choice to install flake8 then re-run that same step

@benclifford
Copy link
Collaborator Author

@kemsguy7 ok, that sched_affinity message sounds like a cross-platform problem where we have tested things right on OS X - I'd be interested if you could paste the whole command and the whole output for that make test into a new issue, along with the version of your operating system, so that we can track it as a separate bug.

@benclifford
Copy link
Collaborator Author

@kemsguy7 once you've done brew install open-mpi, then I think you should be able to run make deps again instead of separately installing mpi4py and flake8 (for example).

@benclifford
Copy link
Collaborator Author

@SobiaAman asked elsewhere:

@benclifford is it okay that multiple contributors are doing the same thing and making the PR Or it should be done by only one contributor that comes first. Kindly clear that, i'm little bit confused in it. Thanks

Its fine for as many people try the more simple issues as they want - but in the end, we will only merge one PR, the first PR that is properly ready with all mentor/reviewer comments addressed. So if you want to try an issue to learn about it, even if someone else is already working on it, you are welcome to try it and get mentor/reviewer feedback - but if you see someone else is doing it, it might be that their PR is what gets merged, not yours, depending on which PR is fully ready to be approved first.

@kemsguy7
Copy link

kemsguy7 commented Mar 7, 2024

@kemsguy7 ok, that sched_affinity message sounds like a cross-platform problem where we have tested things right on OS X - I'd be interested if you could paste the whole command and the whole output for that make test into a new issue, along with the version of your operating system, so that we can track it as a separate bug.

Okay, i'll do that

@SobiaAman
Copy link
Contributor

Okay @benclifford
Got your point, Thanks

@marameref
Copy link
Contributor

hi @benclifford i have update the PR as requested, pls review and merge: #3176

@benclifford you still haven't reviewed my PR : #3176

@error-4u
Copy link
Contributor

error-4u commented Mar 7, 2024

Hello everyone,

Let's address the errors to facilitate the creation of your pull request.

why this issue occuring ?

because you have not fetch the recent changes in your pc

Important message

You should always use a new branch for every different task
and that each pull request comes from a different branch

How to fix it ?

first git remote add upstream https://github.com/parsl/parsl
This will adds a new remote repository to your Git configuration.

then say git fetch upstream
you should see some branches are updating

the next step is to make a new branch by
git checkout -b <branch name> upstream/master

if you type git show you will see recent commits on the branch

the next step is to make change in your code and is you type git diff you wiil see your changes

then make commit by git commit -a
this will commit changes without explict staging them

now type git show should see your commit

now push your changes by git push origin HEAD

@SobiaAman
Copy link
Contributor

SobiaAman commented Mar 7, 2024

Hello @benclifford i've done this task of reducing flake8 max-line length in a separate branch and open an PR #3190 Kindly have a look

@Cvr421
Copy link
Contributor

Cvr421 commented Mar 7, 2024

Hello @benclifford
My initial outreachy application has been selected . And i am looking forward to make meaningful contribution to this project .
please review this PR #3199

@benclifford
Copy link
Collaborator Author

we've closed outreachy applications for new applicants, so I'll close this issue - but existing applicants, if you have interesting information about completing this process, please add comments.

@marameref
Copy link
Contributor

Hi @benclifford I have made changes to the PR as requested. Can you pls review my PR: #3201 thanks in advance

@Ytemiloluwa
Copy link

@Harichandra-Prasath ok great! This specific issue #3105 isn't limited to one applicant: it's a basic exercise for everyone to get a development environment going, so other people reading this shoudn't be put off trying this out too.

Thank you for the nugget @benclifford

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment