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

Commit 7fd9b66

Browse files
authored
Merge pull request #89 from kjaymiller/jm-add-contributing
Jm-add-contributing
2 parents 940ddf1 + 64a8374 commit 7fd9b66

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed

.github/assets/Create Branch.jpg

303 KB
Loading

CONTRIBUTING.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Contributing (Code) to Python Community News
2+
3+
Thank you for taking interest in contributing to this project.
4+
5+
6+
## Before you start
7+
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.
8+
9+
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).
10+
11+
## About the code in this project
12+
13+
You can break the code into essentially four parts:
14+
- [Contributing (Code) to Python Community News](#contributing-code-to-python-community-news)
15+
- [Before you start](#before-you-start)
16+
- [About the code in this project](#about-the-code-in-this-project)
17+
- [For All Types of Contributions](#for-all-types-of-contributions)
18+
- [If Wanting to Work on an Existing Issue](#if-wanting-to-work-on-an-existing-issue)
19+
- [Automation with Github via GH Actions](#automation-with-github-via-gh-actions)
20+
- [General Administration around GitHub](#general-administration-around-github)
21+
- [Deployting to our third-party platforms via API](#deployting-to-our-third-party-platforms-via-api)
22+
- [Deploying of content to the web via Render Engine](#deploying-of-content-to-the-web-via-render-engine)
23+
24+
You are able to contribute to all four of these parts but in different ways.
25+
26+
### For All Types of Contributions
27+
To ensure that everyone is one the same page, please follow this process for all types of contributions.
28+
29+
1. Read and follow [Code of Conduct](CODE_OF_CONDUCT.md)
30+
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:
31+
- `bug`
32+
- `feature`
33+
- `documentation`
34+
- `gh action`
35+
36+
For bugs and features include a label for the area of the project that is affected. Examples of appropriate labels are:
37+
- `newsletter`
38+
- `website`
39+
- `podcast`
40+
41+
3. Specify that you will work on this issue. This lets others know that someone is actively working on the project.
42+
4. Fork the repository on your profile and make changes locally.
43+
44+
#### If Wanting to Work on an Existing Issue
45+
46+
**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).
47+
48+
![Create a Branch from an Issue](.github/assets/Create%20Branch.jpg)
49+
50+
### Automation with Github via GH Actions
51+
52+
GH Actions allow you to automate the deployment of your code to GitHub.
53+
54+
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.
55+
56+
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.
57+
58+
Just adding a missing period here.
59+
60+
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.
61+
62+
You should submit a PR for a GitHub Actions if you believe the action will improve how we interact with our existing workflow.
63+
64+
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.
65+
66+
## General Administration around GitHub
67+
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.
68+
69+
These are often changes to issue/PR templates or documentation that communicates the intention of the project.
70+
71+
You are more than invited to work on these issues. Following the guidance given [above](#for-all-types-of-contributions).
72+
73+
### Deployting to our third-party platforms via API
74+
75+
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.
76+
77+
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.
78+
79+
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.
80+
81+
## Deploying of content to the web via Render Engine
82+
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.
83+
84+
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.
85+
86+
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)
87+
88+
If you have a content change that you would like to make please submit a PR in the correct file/directory/repository.
89+
90+
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.
91+
92+
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.
93+
94+
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.

0 commit comments

Comments
 (0)