Not a core developer, but I’ve made a few PRs to Julia for changes to Base and the C runtime/codegen.
I usually test locally, make sure things approximately work, and then push for CI when I think I’ve got a thing working (it doesn’t have to be the whole feature/bugfix, it might just be a portion of it when I want to make sure it builds everywhere).
If you develop the C internals, you can just edit files and do make
to only build the changed and dependent files. For developing Base/Stdlibs, Revise works really well to prevent having to do a rebuild, so I usually use that. Usually before I request a review, I’ll do a full rebuild locally to make sure it builds, and then push to validate that tests pass.
Absolutely! I try to work on 2-3 projects at a time, so that I have enough things to work on while I wait on CI. Sometimes those features will be related, sometimes they’re not at all.
For me, personally, having a lot of projects to work on in different areas, across multiple packages, makes it easy to switch to something else when I’m feeling stuck on my current project. Lots of little PRs that each do one thing well makes it easy to do this, and also ends up making the changes easier to review and get merged.
For me, since I work from home, I mix hard sprints of work with breaks, like making food or doing small house work.
Not at all! These are great questions, and are especially helpful for users who’re interested in getting into Julia development.