Any tips on contributing to the Phoenix code base?

What kinds of ways could I contribute to the Phoenix code base? I have a pretty good understanding of OTP and Phoenix considering I have zero production experience.

My goal is to start a career as a Elixir developer and so what I lack in experience, i make up in availability and enthusiasm.

3 Likes

I’d suggest there are two simple ways to get involved with any project, including Phoenix.

  1. Improve the documentation. I know this isn’t what you’re immediately asking but JosĆ© and Chris really foster the idea of documentation as a first class citizen. So documentation improvements are alway well received and its a way for you to get involved in the project community.

  2. Work on open issues. This is the most direct way to get involved in the code itself and get familiar with the how the maintainers manage the project.

3 Likes

On #1 is this I should be asking about first or can I just jump in and make it more readable, add examples,etc?

1 Like

I’d give the community here a chance to give you feedback on areas where documentation could be added or improved. But you don’t need to wait for anything. If you see an opportunity for improvement, submit a PR. Start small so you get a feel for how the project runs - but I’ve no doubt you’ll find the maintainers appreciative of well-intentioned contributions.

Go for it!

1 Like

Ok I’ll do a little bit and see what they say :+1:

Oh oh, help me with this PR!

I kid, I kid. But for real, is it a faux pax to ask on the forums for help? :grimacing: Cough, @LostKobrakai , cough.

I’m very willing to help. How patient are you? :laughing:

I think I would need a lot of help getting to your level but it would continue to pay dividends.

I have no formal CS education so making meaningful open-source contributions is really my pathway to a career in this field.

I’ve been an Elixir fan boy since 2018, ever since I learned about lambda calculus and started digging into functional programming.

I figured since most seasoned programmers are used to OO it was a chance for me to on ramp into being a programmer. :slight_smile:

2 Likes

While it is very nice that you want to get involved, I would suggest to start with another project. The reason I’m saying this is the fact that phoenix uses almost for everything metaprogramming and the last time I looked at some source code it was borderline unreadable, of course if you are interested in exclusively doing metaprogramming then go for it!

Does meta programming mean macros and protocols etc?

Macros, code generation/injection, AST manipulation all the magic you see in the framework. While the basic concepts are not that hard, creating and debugging macros is very big pain in the ass.

There’s a great, well-defined feature on Ecto’s issue tracker here: Add Ecto.Changeset.changed?(changeset, field, filters \\ []) Ā· Issue #4117 Ā· elixir-ecto/ecto Ā· GitHub

Give it a shot!

1 Like

If you are an experienced programmer I would say pick an issue from the tracker and get lost in the code. Breaking something and fixing it is a very useful learning experience. But IMO, don’t submit a PR too early asking for help getting unstuck. Force yourself to get unstuck.

Also just my IMO, but I highly discourage people advertising themselves this way. Particularly when looking for jobs. I have only seen it lead to being abused/taken advantage of. In my experience it leads to your ā€œvalueā€ being seen as your willingness to sacrifice your health/personal life for the benefit of someone else. Whatever skills you have accumulated that make you a fit for learning Elixir is your value.

Ok it’s good to hear other perspectives on that.

I welcome feedback on these changes to the documentation on this generator.