Skip to content
This repository has been archived by the owner on Oct 29, 2022. It is now read-only.

add contibuting and modify code of conduct. #40

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/assets/Create Branch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 7 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributor Covenant Code of Conduct
# Python Community News Code of Conduct

## Our Pledge

Expand Down Expand Up @@ -50,11 +50,12 @@ decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
This Code of Conduct applies within the following spaces:

- On the podcast whether as a guest or in chat
- When interacting with other community members on GitHub, our Website, or other platforms that are administered by the Python Community News Team.
- It also applies when an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

## Enforcement

Expand Down
95 changes: 95 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Contributing (Code) to Python Community News

Thank you for taking interest in contributing to this project.


## Before you start
This project has a [Code of Conduct](CODE_OF_CONDUCT.md) that you MUST follow in order to participate in this project in any way.

This document is intended to help first-time or returning contributors to the project. It covers making contributions outside of the scheduled content and topics. For more information on how to submit a topic or conference, please see the [README](README.md).

## About the code in this project

You can break the code into essentially four parts:
- [Contributing (Code) to Python Community News](#contributing-code-to-python-community-news)
- [Before you start](#before-you-start)
- [About the code in this project](#about-the-code-in-this-project)
- [For All Types of Contributions](#for-all-types-of-contributions)
- [Automation with Github via GH Actions](#automation-with-github-via-gh-actions)
- [General Administration around GitHub](#general-administration-around-github)
- [Deployting to our third-party platforms via API](#deployting-to-our-third-party-platforms-via-api)
- [Deploying of content to the web via Render Engine](#deploying-of-content-to-the-web-via-render-engine)

You are able to contribute to all four of these parts but in different ways.

### For All Types of Contributions
To ensure that everyone is one the same page, please follow this process for all types of contributions.

1. Read and follow [Code of Conduct](CODE_OF_CONDUCT.md)
2. Create an issue on GitHub with the title of your perspective change. Use the approriate labels for the type of contribution you are making. Examples of appropriate labels are:
- `bug`
- `feature`
- `documentation`
- `gh action`

For bugs and features include a label for the area of the project that is affected. Examples of appropriate labels are:
- `newsletter`
- `website`
- `podcast`

3. Specify that you will work on this issue. This lets others know that someone is actively working on the project.
4. Fork the repository on your profile and make changes locally.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section feels a bit incomplete. I like the section as a whole, but forking the repository is closer to the beginning of getting a change through than it is to the end.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is, sadly I'm wasn't sure what the steps would be after that. With a little more clarity I hope to add some of the steps as good first issues for others as we begin to better define them.


#### If Wanting to Work on an Existing Issue

**Claim** the issue by commenting on it or stating you will work on the issue. We will accept PRs from the first person (collaborating on an issue is encouraged).

![Create a Branch from an Issue](.github/assets/Create%20Branch.jpg)

### Automation with Github via GH Actions

GH Actions allow you to automate the deployment of your code to GitHub.

We intend to use GitHub Actions to automate the compilation of issues to consider for the show and the creation of at show pull request.

We'll also use GitHub Actions to interact with issues as they relate to the associated [Project](https://github.com/users/kjaymiller/projects/4) boards.

Just adding a missing period here.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Just adding a missing period here.

Sorry, that was meant to be a comment and not part of the suggestion. I must have accidentally put it inside of the suggestion block instead of after.


We'll also be using GH Actions to automate sending supporting content to our newsletter service (currently [ButtonDown](https://buttondown.email/)), and perhaps other services as we see fit.

You should submit a PR for a GitHub Actions if you believe the action will improve how we interact with our existing workflow.

If you would like to pose a change to the existing workflow, please file and issue and wait for aggreement from the maintainers before working on the project.

## General Administration around GitHub
We use GitHub issues to communicate many changes that we would like to deploy to our website/podcast/newsletter and the inner workings of between them all. These may result in an issue with an `admin` label.

These are often changes to issue/PR templates or documentation that communicates the intention of the project.

You are more than invited to work on these issues. Following the guidance given [above](#for-all-types-of-contributions).

### Deployting to our third-party platforms via API

We have to authenticate with our third-party platforms to deploy content to them and this requires an API key and often subject to rate-limiting.

If you are working on code that would connect to a Third Party, YOU MUST USE A TEST-CASE and mock the API call request and responses.

We use [`httpx`](https://www.python-httpx.org) to make REST API calls to our third-party platforms and [`pytest-httpx`](https://pypi.org/project/pytest-httpx/) to mock those API calls in testing.

We are not taking requests to change any of the services. Solicitation of services is not allowed and will be seen as Harassment and Handled according to our [CODE of CONDUCT](CODE_OF_CONDUCT.md).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with "no solicitation" in general, but this feels like either

  1. a bit of a preemptive hard line to take or
  2. something that should be spelled out explicitly in the code of conduct rather than in a document containing contributing instructions

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I put this here because if someone has a service or they are willing to sponsor us to use that service and it's sincerely better than what we're doing, I won't complain. That said I feel like sending a PR that ultimately is "CHANGED from SERVICE X to Y" code contributions is a waste of that persons time and something I want to gaurd against.

I feel like that's something that does happen a lot during OSS contribution pushes (#HacktoberFest)

I'm okay with removing the text and creating a discussion point around it.


## Deploying of content to the web via Render Engine
We want to keep an archive of our content and make it easier for people for find the show and share it with others. For that reason all of our episodes are also shared at https://pythoncommunitynews.com.

We use [Render_Engine](https://github.com/kjaymiller/render_engine). Render Engine is a Static Site Generator that uses markdown and frontmatter to generate static HTML pages.

If you have a change on how Render Engine should generate the pages, please submit an issue on [that repository](https://github.com/kjaymiller/render_engine)

If you have a content change that you would like to make please submit a PR in the correct file/directory/repository.

If there is a typo or specific change to content change and the show has not been released, comment on the corresponding issue with the `[BUILD]<YYYY-MM-DD.md>` name. If caught in time doing this will ensure the changes are deployed to all the relevant places.

If the content has been released already, submit a PR to the corresponding file in `/site/content/YYYY-MM-DD.md`. Once the show and newsletter have been released, we can manually change the information in the archive but it is unlikely that people will get the change before it has been sent to them.

We store the output of Render Engine in the `web` repository. This helps to eliminate confusion as to where content needs to be updated. The website is rebuilt with every pull request.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
We store the output of Render Engine in the `web` repository. This helps to eliminate confusion as to where content needs to be updated. The website is rebuilt with every pull request.
We store the output of Render Engine in the `web` branch. This helps to eliminate confusion as to where content needs to be updated. The website is rebuilt with every pull request.