Skip to content

This repository is a step towards contributing 'Case Studies and Documentation' to the pytest framework. It is a work in progress.

Notifications You must be signed in to change notification settings

WarrenTheRabbit/pytest-onboarding

Repository files navigation

The pytest onboarding project

This repository is a step towards contributing 'Case Studies and Documentation' to the pytest framework. It is a work in progress.

In this readme, you can view and learn something about:

The Structure

Directory Description Motivation
advice I write up advice I've received from pytest devs here. juniors can give back by documenting and scaling advice
case studies I write up issues and pull requests here. examples and retrospection are teachers
domain I speculate about and suggest domain objects here. thinking about design increases understanding
functions I summarise and hypothesise about pytest functions here. knowledge is data organised, memories are senses processed
objects I summarise and hypothesise about pytest objects here. knowledge is data organised, memories are senses processed
packages I summarise and hypothesise about pytest packages here. knowledge is data organised, memories are senses processed
prompts I write prompts and prompt pipelines here. automation frees up higher-level thinking
python I learn about python and ground those lessons in the pytest codebase here. without meaning, there is despair
scripts I keep scripts that help manage this repo here. automation frees up higher-level thinking

The Process

As I learn and contribute to the pytest framework, I will use this repository to:

  • write up each contribution as a case study
  • record any advice I receive
  • store notes, diagrams, prompts, experiments and workflows

Over time, I hope to convert elements of this repository into documentation that helps onboard and welcome junior developers to the the pytest framework's community.

Motivation

The motivation for this project was first mentioned in pytest issue #11351 (I want to encourage beginners to contribute by making refactoring pull requests):

If I can make the pytest codebase more accessible to beginners like me, maybe programmers will find some of the passion and professionalism they will need to make the world safer by being part of the pytest community.

In general, I hope to make it easier for junior developers to 'find intellectual, social and emotional welcome in the pytest community'.

Background

Issue #11351 is primarily a proposal about refactoring. It suggests a refactoring process that new developers like myself might follow to get started contributing to the pytest framework.

It also provides an example of what a contribution following this process would look like.

The refactoring process is

The larger hope behind the refactoring proposal is 'to increase the number of people who have a passion for something I think is very important':

  • testing systems and making them safer
  • building and maintaining testing tools so that others can make systems safer

If put in service to that goal, I think that 'outreach and documentation of all stripes' could help onboard and inspire junior developers. This repository is the start of my attempt to do that outreach and documentation.

The Author

Who. My name is Warren. I'm a career changer. I'm average height, average weight and of average intelligence. I don't know a lot about programming and I find it very challenging. You are in good company if you are feeling overwhelmed. By documenting some of the steps I'm taking, I hope it helps you take some of yours.

Why. In a sense, this repository embodies how I view software engineering, which I view as different to programming. I enjoy programming and work at improving my skills. But what I'm really passionate about is software engineering. Fundamentally, I see software engineering as a complex social activity that unfolds over time. In my mind, to be a software engineer means to seek responsibility, build relationships and adopt attitudes of curiosity, empathy and servant leadership.

For although programs are technical artifacts inside a computer, software is the attempt to model and achieve something 'out there'. An 'out there' that goes on and changes regardless of what the code says. The 'out there' changes as people's understandings and discoveries of what matters to them most in their reality changes. Therefore, a software engineer cannot model or act with purpose about the things that are 'out there' without patience, commitment, empiricism and people-skills. They must step towards people and think about people.

How. If you interact with me, you can expect me to be passionate, fully engaged and kind. You are also very welcome to interact with me! I've chosen software engineering as a career path because it demands and inspires the whole of my personality and skillset.

About

This repository is a step towards contributing 'Case Studies and Documentation' to the pytest framework. It is a work in progress.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published