Skip to content

Latest commit

 

History

History
129 lines (88 loc) · 9.03 KB

CONTRIBUTING.md

File metadata and controls

129 lines (88 loc) · 9.03 KB

Contributing Guidelines

👾 🎉 Thank you for contributing to the project! 🎉 👾

The following is a set of guidelines for contributing to the project on GitHub. These are mostly guidelines, not rules. Use your best judgment and feel free to propose changes to this document in a Pull Request.

Table of Contents:


💜 Code of Conduct

This project and everyone participating in it is expected to abide by and uphold the Code of Conduct. Please report any unacceptable behaviour to Dr Sarah Gibson.

❓ What should I know before I get started?

🤖 What is the project?

This repository (https://github.com/sgibson91/bump-jhub-image-action) is specifically designed to check if Docker images that provide computational environments for a given JupyterHub deployment are up-to-date with the most recent tags published on a container registry.

This project is mostly a Python wrapper around HTTP requests to the GitHub REST API, with some YAML/JSON handling.

🎁 How can I contribute?

🐛 Reporting Bugs

If something doesn't work the way you expect it to, please check it hasn't already been reported in the repository's issue tracker. Bug reports should have the bug label, or have a title beginning with [BUG].

If you can't find an issue already reporting your bug, then please feel free to open a new issue. This repository has a bug report template to help you be as descriptive as possible so we can squash that bug! 💪

✨ Requesting Features

If there was something extra you'd like to see added, please check that the feature hasn't already been requested in the project's issue tracker. Feature requests should have the enhancement label. Please also check the closed issues to make sure the feature has not already been requested but the project maintainers decided against developing it.

If you find an open issue describing the feature you wish for, you can "+1" the issue by giving a thumbs up reaction on the top comment of the issue. You may also leave any thoughts or offers of support as new comments on the issue.

If you don't find an issue describing your feature, please open a feature request. This repository has a feature request template to help you map out the feature you'd like.

🐣 Your First Contribution

Unsure where to start contributing? Check out the good first issue and help wanted labels to see where the project is looking for input.

➡️ Pull Requests

A Pull Request is a means for people to collaboratively review and work on changes before they are introduced into the base branch of the code base.

To prepare your contribution for review, please follow these steps:

  1. Fork this repository
  2. Create a new branch on your fork
    1. Where possible and appropriate, please use the following convention when naming your branch: <type>/<issue-number>/<short-description>. For example, if your contribution is fixing a a typo that was flagged in issue number 11, your branch name would be as follows: fix/11/typo.
  3. Make your changes!
  4. Open your Pull Request
    1. This repository has a pull request template which will help you summarise your contribution and help reviewers know where to focus their feedback. Please complete it where possible and appropriate.

Congratulations! 🎉 You are now a developer for the project! 👾

The maintainers will then review your Pull Request and may ask for some changes. Once you and the maintainers are happy, your contribution will be merged!

🎨 Styleguides

🐍 Python Styleguide

When writing Python scripts for this repository, it is recommended that contributors use black, flake8 and isort for formatting/linting styles and sorting imports. The repository has GitHub Actions to check files are conforming to this styleguide, though not doing so will not prevent your contribution from being merged. These tools are used as the maintainers believe this makes the code easier to read and keeps consistent formatting as more people contribute to the project.

While flake8 commands can be disabled, we only recommend doing this for specific lines in such cases where reformatting would produce "ugly code". The maintainers retain final say on what is "ugly code" on a case-by-case basis.

⌨️ Python Static Typing and Type Hints

When adding or updating a Python function, we recommend using static typing and type hints where appropriate. The maintainers encourage this practice since they believe it makes the code easier to read and understand, and explicitly defines what inputs and outputs a function may produce.

While type hints do not affect the code at runtime, the project does implement GitHub Actions to run mypy to check the code conforms to the declared type hints.

📝 Markdown Styleguide

Documentation files are written in Markdown.

When writing Markdown, it is recommended to start a new sentence on a new line and define a new paragraph by leaving a single blank line. (Check out the raw version of this file for an example!) While the sentences will render as a single paragraph; when suggestions are made on Pull Requests, the GitHub User Interface will only highlight the affected sentence - not the whole paragraph. This makes reviews much easier to read!

📓 Additional Notes

🏷️ Issue and Pull Request Labels

Issues and Pull Requests can have labels assigned to them which indicate at a glance what aspects of the project they describe. It is also possible to sort issues by label making it easier to track down specific issues. Below is a table with the currently used labels in the repository.

Label Description
bug Something isn't working
documentation Improvements or additions to the documentation
enhancement New feature or request
good first issue Good for newcomers
help wanted Extra attention is needed