Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =============================================================
- LearningFlow - A workflow for new and developing contributors
- =============================================================
- Want to be a new contributor?
- =============================
- Begin by checking your readiness
- --------------------------------
- * You don't have to have mastery in all of these areas to begin contributing.
- * Focus on areas where you have learning to do, use the available resources.
- * Ask quality questions
- Developer support tools
- #######################
- - command line for chosen operating system
- - editor
- - IRC
- - mailing lists
- - version control (any flavor)
- - issue tracker
- Open Source Development project flow
- ####################################
- - New development
- - Sustaining development
- - Continuous process improvement
- Contributor Mindset
- ###################
- - Dedication to learning
- - Flexibility
- - Patience
- - Commitment to community code of conduct (open, considerate, respectful)
- Community responsibility to learner
- ###################################
- - Documentation on resources available in the Python community (i.e. OpenHatch,
- User Groups, pyvideo, books, docs, etc.)
- - Considerate and respectful communication (on IRC and mailing lists)
- Ready to submit a first contribution?
- =====================================
- Although your expectation may be a first contribution is as simple as picking
- an easy issue, writing and submitting a patch, it's rarely that simple.
- Instead, there's a different set of readiness criteria for submitting a patch.
- Developer Support Tools
- #######################
- - Issue Tracker (Python specific)
- - IRC (knowledge of which Python channels are best for different topics)
- - Mailing Lists (which Python lists are helpful to follow or read archives)
- - editor (set up your editor for Python code style)
- - version control (learn mercurial basics - checkout, commit, diff)
- - command line (compilation, patch creation)
- CPython development project flow
- ################################
- - Python dev guide https://docs.python.org/devguide/#contributing
- - Python dev faq
- Contributor mindset
- ###################
- - Willingness to attempt to use the existing available resources
- - Beginning learning layout of code base
- - Ask thoughtful questions
- - Respect other's time
- - Patience while learning (norms for response by core developers to questions)
- Community responsibility
- ########################
- - Documentation on resources available in the Python community (i.e. OpenHatch,
- User Groups, pyvideo, books, docs, etc.)
- - Mentoring GSOC and OPW interns
- - Considerate and respectful communication (on IRC and mailing lists)
- - Show appreciation for contribution and the contributor's effort
- Gathering experience and making further contributions
- =====================================================
- * Gain proficiency in above areas
- * Continue to focus on areas that you find rewarding and be a productive
- contributor
- * Share knowledge with others in community
- Developer Support Tools
- #######################
- - Refine configuration of tools to increase productivity and consistency in
- personal workflow
- CPython development project flow
- ################################
- - Begin building working relationships with other contributors
- - Learn different aspects of the project (triage, development, documentation,
- and testing)
- Contributor mindset
- ###################
- - Willingness to attempt to use the existing available resources
- - Start developing a working knowledge of the code base beyond your expertise
- - Ask thoughtful questions and answer others thoughtfully
- - Respect others' time
- - Patience while learning (guidelines for norms for response to questions)
- - Self check and self care during times of increased stress (i.e. releases)
- Community responsibility to learner
- ###################################
- - Answer others thoughtfully
- - Respect others' time
- - Self check and self care during times of increased stress (i.e. releases)
- ==================================================
- My personal experience making a first contribution
- ==================================================
- Months of increased knowledge of the community
- ----------------------------------------------
- OpenHatch
- PyLadies
- Python User Group
- IRC logs
- PyCon Program Committee
- Poster submission to PyCon
- Encouragement by individuals in the community
- Started considering making a contribution
- -----------------------------------------
- While helping encourage applicants to the
- OPW and GSOC programs on the PyLadies IRC
- channel, I helped guide contributors
- to OpenHatch documentation, core development docs,
- to friendly helpful developers (bitdancer, jesstess,
- and others)
- In the weeks leading up to PyCon, I began really
- digging into the code development guide to try to
- understand the project workflow and development process.
- I also used Pycharm to be able to view the source code and its
- structure. I write code using vim, but found Pycharm easier to
- get a big picture view of the code base.
- At PyCon
- --------
- Met a number of people while at the sprints as I sprinted on
- OpenHatch. These informal interactions over lunch or in the hallway
- helped me see some core developers as accessible and willing to
- collaborate.
- After PyCon
- -----------
- Lots of reading
- - Porting from 2 to 3 book that was given out at PyCon
- - Dev guide - several times
- - Dev FAQ
- - core-mentorship mailing list archives
- Committed to finding a way to use the issue tracker to find a suitable issue
- ----------------------------------------------------------------------------
- The issue tracker was the largest hurdle to making a contribution.
- Its cumbersome user interface combined with the difficulty of easily
- identifying issues that could benefit from my time and effort.
- I found it difficult to identify:
- * issues that a non-core developer could triage in some meaningful way
- * open documentation issues that were not already claimed by others
- * a way to easily tag issues to return to as promising possibilities
- In general, these factors made the issue tracker unappealing and an inefficient
- use of my time. Ultimately, I found the documentation issue that I created a
- patch for on another mailing list and then I looked it up on the issue tracker.
- - the search interface is clunky
- - the number of languishing or non-starter issues that waste a potential
- contributors time and add to overwhelm or frustration with the process
- (just as core developers, contributors value their time and are trying
- to help)
- - no easy way to tag all issues that might be suitable for the individual
- as the individual goes through them
- A quiet first contribution
- --------------------------
- After finding the issue, the patch and submission process was very simple.
- I followed the instructions in the core dev guide.
- I would be happy to continue contributing. That said, there are other
- valuable projects out there that are easier to find an issue to work on
- and be productive with my time.
- I enjoy Python as a language. It's elegant and fun to use (configuration and
- setup issues aside).
- Some gems of wisdom and insights from the core-mentorship logs
- ==============================================================
- bitdancer's experience as a new contributor
- A new section at the top of the devguide FAQ that covers
- questions of the form "I want to ask about X, what's the best forum?"
- would be a nice idea. I created http://bugs.python.org/issue11690 to
- track that.
- I also created http://psf.upfronthosting.co.za/roundup/meta/issue383
- to ask for a "Devguide" component on the tracker.
- Suggestions (please substitute good english):
- * We ask everyone to be welcoming, friendly, and patient.
- * Anything can be asked, and "RTFM" is not an acceptable answer.
- * Neither is "it's in the archives, go read them".
- * List archives are closed, but subscription is open to everyone.
- * Statements made by core developers can be quoted outside.
- * We endorse the PSF's [Diversity statement] (link).
- * Violators will be towed at their own expense.
Advertisement
Add Comment
Please, Sign In to add comment