How do Julia Core developers work?

Hi,

I am curious to know how Julia Core developers work when they want to fix a bug (can be specific to an OS) or add a new feature to Julia?

I am aware of all the CI and tools to build and test Julia on various platform. Are they always using them to fix a small bug? Or are they testing their patch on they local machine? If so, do they always go through the process of rebuilding Julia from scratch or is there a more effecient way of rebuilding only the parts of Julia that have changed? Do they work on multiple patches at the same time while CI are running in the background?

I am just curious to know how Julia core developers optimise their time when working on Julia? What is the typical day of a Julia core developer?

I apologise if these questions might sound a bit dumb or naive. I am simply new to open source and am curious to know how they work.

Thank you
Best regards.

5 Likes

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.

13 Likes