pyjanitor
pyjanitor copied to clipboard
Developer Team
Hello team,
I'd like to start putting together a dev team for pyjanitor.
Before anybody freaks out though, rest assured, I'm not leaving the project! I just think I need a bit of help with some tasks. At the same time, I want to make some aspects of the project robust by sharing access to things (e.g. the CI system, the PyPI releases, etc.) in case I need to go offline for a while.
The pyjanitor
project has always been a beginner-friendly place to contribute. "Beginner-friendly" has a few axes:
- The bar for contributing doesn't involve complex programming styles. It's simple functions with one decorator.
- Tests aren't required to be parametrized in complex ways, they simply have to be readable.
- The mood on the issue tracker stays positive and constructive, with no demeaning comments thus far and hopefully into the future.
- The code standards teach newcomers best practices. Even if they seem strict and exacting, e.g. "must conform to style, must have docstring coverage, new functions must be tested", they are in place as an example of what software excellence can look like. This is good for beginners long-term.
- The practices used are, as much as possible, best practices, also to set an example for newcomers. This is also good for beginners long-term.
- Documentation on how to get setup is geared towards newcomers.
Now, with that said, there's been things I know I haven't been able to do well alone, such as taking care of the submodules, documentation fixes, onboarding newcomers and keeping pace with the R package, which is part of the original intent.
As such, I'd like to start putting together the dev team with specialized primary responsibilities for certain things. You probably can tell from the description above, the "dev team" responsibilities is much broader that "producing code".
I have had certain criteria when inviting individuals as collaborators on the repository:
- Submodule creators, like @zjpoh and @anzelpwj for the pyspark submodule
- Early contributors to the project, e.g. @szuckerman
- Sustained code contributors, e.g. @hectormz and @samukweku
- Those who were in the trenches with me leading sprints, e.g. @jk3587, @sallyhong and @zbarry
- Sustained specialized contributors, e.g. @shandou for docs
A common thread amongst everybody is that you all do have some farily good grasp of software development workflow, and even if it's not perfect, I see that you try to level-up your abilities, learn best practices, stay constructive and positive in your interactions, and that you're also accommodating of my legacy mistakes left in the repo.
I have also strived to be conscious about maintaining geographic, racial and gender diversity amidst those who are invited to have commit rights.
Now, I'd like to start forming a more "official" developer team: completely voluntary and self-defined. So no compulsion here. The intent is to help with specific tasks. In my mind are some tasks that I know I've not been very good about that I could use some help with.
- Triaging issues. I'm hoping to have a lead specialize in this.
- Infrastructure maintenance: CI systems. I'm hoping to make sure at least two others have the ability to fix CI problems or update them as needed, in case I'm offline for a long period of time.
- Infrastructure maintenance: Docker development container. I want to make sure at least two others have the ability to update the dev container, in case I'm offline for a long period of time.
- Release manager: PyPI. Also want to make sure at least two others have the ability to update the PyPI package as new features and bug fixes get added in.
- Social media manager: One person to help compose posts to the various social media channels, and take charge of posting them. (We can even experiment building automation to help with this!) I have been extremely delinquent here.
- Documentation review: One person to help with reviewing new pull requests that are primarily documentation fixes.
- Code review: At least two more individuals willing to do code review with me, so I can start ensuring that more eyes are on the code than just myself.
- Recruitment: One other person who is keeping an eye out for sustained contributors to invite onto the dev team, whom I can consult?
With respect to onboarding volunteers onto the tasks, naturally I'll restrain myself from "just going ahead and doing things", and will make sure that you're feeling comfortable handling them.
Those, of course, are just my own ideas. I'd like to hear from you all as well. Are there things not listed above that you'd like to learn more, for which you think the pyjanitor
could be a great testbed to learn? Are there tasks that I've not listed that could also take the project up a level?
Please chime in here. I'd love to hear from you. If possible, please strive to keep comments substantial (unless, of course, it's you chiming into say, "I'd like to volunteer to do X!"), and take advantage of quoting others' lines so that we can keep the context train in place. If you're volunteering, do be cognizant of your own time commitments, as the last thing I'd want is for your day job or personal life to be impacted by volunteering. And if you stay silent, I'll assume you're just busy, with no hard feelings :smile:.
@anzelpwj @hectormz @jk3587 @sallyhong @samukweku @shandou @szuckerman @zbarry @zjpoh
Sign me up for the infrastructure maintenance bit - CI and Docker. Always wanted to learn and delve into that.
I think your points are well laid out. I’m not sure if you picked out a role for someone to track the R landscape - (I’m guessing Tidyverse?)
This sounds like a good plan forward! I'm committed to pyjanitor
. With that said, I'm not sure which specific tasks I'm most drawn to. I enjoy code/doc review, but if there's a certain area you need me/think I can contribute the most, that works for me too. I'm not sure if you intend to have some roles that are exclusively defined, or if there are roles that might contribute to a few needs.
Coming back from beyond the grave I've been busy with a number of other items for a while, but I'd really like to come back and have an active part in one of these roles. Personally, I like the code review, but I also wouldn't mind taking a stab at the social media aspect.
I'll definitely try to help a little bit with some Spark development, but apologies for not being active for a while. Parenting is exhausting, doubly so during a pandemic, and at the end of the day my brain is generally melting out of my ears.
Happy to help with infrastructure maintenance along with @samukweku. Would you like to walk us through your setup sometime?
Sign me up for the infrastructure maintenance bit - CI and Docker. Always wanted to learn and delve into that.
Happy to help with infrastructure maintenance along with @samukweku. Would you like to walk us through your setup sometime?
Thank you, @samukweku and @zbarry! Yes, we should walk through it. @samukweku is in Sydney, while @zbarry is in the same time zone as I am. I have done calls to Sydney recently; from those experiences, it looks like a call that begins after 7 pm Eastern Time/9 am Australian Eastern Standard Time works best. @samukweku does that work for you?
I think your points are well laid out. I’m not sure if you picked out a role for someone to track the R landscape - (I’m guessing Tidyverse?)
You are right, I haven't, and should. Let me add that up.
This sounds like a good plan forward! I'm committed to pyjanitor. With that said, I'm not sure which specific tasks I'm most drawn to. I enjoy code/doc review, but if there's a certain area you need me/think I can contribute the most, that works for me too. I'm not sure if you intend to have some roles that are exclusively defined, or if there are roles that might contribute to a few needs.
@Hectormz wonderful to hear! I have enjoyed your contributions, they are meticulously done and follow community best practices very closely. (It's to the point that I don't really feel the need to scrutinize every line :smile:.) Your code have also been very helpful in catching things that I forget. If you want to simply continue doing what you're doing, that's already wonderful!
Coming back from beyond the grave I've been busy with a number of other items for a while, but I'd really like to come back and have an active part in one of these roles. Personally, I like the code review, but I also wouldn't mind taking a stab at the social media aspect.
Welcome back, @szuckerman!! Totally understand that - life does get in the way at times :smile:. Yes, I'm happy to have you handle both code review and social media together 😸. Apart from me retweeting and ranting a ton on Twitter, I haven't had much experience doing the social media piece. I have some ideas on things to make the social media presence of the project a bit more automated, such as auto-tweeting on merge, but those should be done if and only if there's enough bandwidth and willpower, no compulsion here! Meanwhile, I'll also mark you down as a code reviewer.
I'll definitely try to help a little bit with some Spark development, but apologies for not being active for a while. Parenting is exhausting, doubly so during a pandemic, and at the end of the day my brain is generally melting out of my ears.
Thanks @anzelpwj! That said, your priorities come first, so don't feel pressured to move the needle here.
Can we please push it to 7.30 pm? I drop the kids off at child care around 9am Sydney time.
Team, I'm realizing async chat on GitHub issues isn't a good way to communicate.
I set up a Discord server for us to chat. I don't appear to have everyone's email. Please ping me at http://www.shortwhale.com/ericmjl if you don't get an email from me!
(Btw, even if you didn't volunteer to be a core dev, but I did tag you in the first issue, please ping me about access anyways! Hanging out is always fun.)