First off, I really enjoyed the on-air this morning.
Great to hear your stories @pedroleaoc and @bianka. Thank you both for your investment and engagement with the juju community.
Following the on-air, @erik-lonroth and I were discussing the “new user journey” and a few tools that we believe could be valuable in helping onboard developers to learn juju and develop charms.
Some common recurring themes in our conversation:
Missing state diagram
A simple visualization will speak 1,000,000 words here. Verbally or textually explaining the event lifecycle to someone is a difficult task. We believe a simple diagram could alleviate the contention of what the juju event framework is, and how to build into it. This would be extremely helpful for new-comers and existing charmers alike.
Well defined patterns for development of a charm
When first diving into writing a charm, the implementer is often (from our experience) left wondering how to go about writing a charm the “right way” and what best practices for writing charms exist. Questions often arise like “what patterns exist?”, “how can I ensure I am programming against the system in a way it was intended to be used?”, “what is available in an event object?, why?”. The detailed information about these things at a lower level are difficult to understand initially and are the things that actually really matter, especially when getting started. We feel a curated guide to juju internals and charm development are badly needed.
There is a good amount of documentation out there on juju (cheers and thank you), whether it is accurate/up to date is another story We feel that a general educational platform for learning juju itself and developing charms has been overlooked. An onboarding process for developing charms would allow users to go through the motions of understanding how juju works and what charm development looks/feels like. We believe that copying other open ecosystem’s success story in educating and onboarding users may behoove the juju ecosystem here. One onboarding success story that we keep referencing is the android developer guide. We are wondering what people’s thoughts are on adopting an onboarding process and content for juju and charming that is similar in structure to the android development onboarding.
We have a few ideas on how to get started on bringing the aforementioned initiatives to life, but wanted to open these topics up for feedback before we try and jump in any further.
What do you think? Is that what you had in mind? Please feel free to sketch something else, add to it, or just add comments and I will try to refine it later. I can also see if someone from the design team at Canonical can render that into something pretty later
Yes! We have some plans to flag good charms and good practices on charmhub. I will let @bianka to expand on that as she is the charmhub expert.
I think that was beautifully covered by this post. Maybe we should expose it sooner to new charmers.
I actually have pretty much the whole second semester allocated to work on this. My vision is to have some sort of interactive course for Juju and then, ideally, a sandbox (or a free cloud space program) so people can effortlessly give it a try. Would definitely like to hear more about your ideas on this - maybe we can set up an open working session at some point?
Thank you for your time, folks. I truly appreciate it.