Skip to content

Commit

Permalink
Merge branch 'main' into coverage_menu_fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
dyga01 authored Oct 24, 2024
2 parents 66f7bb2 + 42a6d20 commit ccfc020
Show file tree
Hide file tree
Showing 13 changed files with 1,083 additions and 575 deletions.
24 changes: 21 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# Bug Report
=======
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand All @@ -15,8 +25,16 @@ A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.

**Operating System**
What operating system were you using when you encountered the bug?
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@

# Feature Request
=======
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Expand Down
21 changes: 21 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Security Policy


We are committed to ensuring that **execexam** remains secure and up to date.

## Reporting a Vulnerability

If you discover a security vulnerability in **execexam**, please help us by reporting it responsibly. We take all security concerns seriously, and your input helps us improve the security of the project.

To report a vulnerability:
1. Email us at [[email protected]] with the details of the issue.
2. Please include as much information as possible, including:
- Steps to reproduce the vulnerability
- The potential impact of the vulnerability
- Any suggested fixes or patches (if applicable)

## Security Updates

- All security updates will be documented in the repository's [Changelog](https://github.com/PCain02/execexam/releases) with appropriate details.

Thank you for helping keep **execexam** safe for everyone.
26 changes: 12 additions & 14 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
When creating a pull request to add a new feature or alter an existing one,
there are some important elements to include to help our team review and process it more efficiently.
# Pull Request

1. Make sure the title is descriptive of what the PR includes. Don't mention
issue names/numbers; save that for the description.
When creating a pull request to add a new feature or alter an existing one, there are some important elements to include to help our team review and process it more efficiently.

2. List the names of those who contributed to the project.
**1. Make sure the title is descriptive of what the PR includes. Don't mention issue names/numbers; save that for the description.**

3. Link the issue the pull request is meant to fix/resolve.
**2. List the names of those who contributed to the project.**

4. Add all labels that apply. (e.g., documentation, ready-for-review)
**3. Link the issue the pull request is meant to fix/resolve.**

5. Describe the contents and goal of the pull request.
**4. Add all labels that apply. (e.g., documentation, ready-for-review)**

6. Will coverge be maintained/increased?
**5. Describe the contents and goal of the pull request.**

7. What operating systems has this been tested on? How were these tests conducted?
**6. Will coverage be maintained/increased?**

8. Include a code block and/or screenshots displaying the functionality of your
feature, if applicable/possible.
**7. What operating systems has this been tested on? How were these tests conducted?**

**8. Include a code block and/or screenshots displaying the functionality of your feature, if applicable/possible.**

Mark as a draft until it is ready to begin the reviewing process and then tag
[Gregory Kapfhammer](https://github.com/gkapfham) when you mark it as ready
for review.
[Gregory Kapfhammer](https://github.com/gkapfham) when you mark it as ready for review.
26 changes: 17 additions & 9 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,48 @@
# Publishing workflow

name: Publish

# Use more columns for terminal output
env:
COLUMNS: 120
PYTHONIOENCODING: utf8

# trigger the publishing of the
# execexam package to PyPI
# with any tag starting with 'v'
on:
push:
tags:
- 'v*' # Triggers on tags starting with 'v'
- 'v*'

# Create one single job
# that publishes the package
# to PyPI using Poetry

jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11' # Use the Python version compatible with your project

python-version: '3.12'
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
poetry install
- name: Configure Poetry for PyPI
run: |
poetry config repositories.pypi https://upload.pypi.org/legacy/
poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}
- name: Publish package to PyPI
run: |
poetry publish --repository pypi --build
- name: Check for Successful Publication
run: |
version=$(poetry version --short)
Expand All @@ -46,4 +54,4 @@ jobs:
echo "Package execexam version $version was not found on PyPI."
exit 1
fi
45 changes: 45 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [email protected]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq
111 changes: 111 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# For Contributors

## Welcome

Welcome to the `Contributors Guide` for Execexam!

## Getting Started

To contribute to Execexam, you must have [Python 3.11 or later](https://www.python.org/downloads/) and [Poetry](https://python-poetry.org/) installed.

To set up a development environment for `execexam`, first clone the Execexam repository.

`git clone [email protected]:GatorEducator/execexam.git`

Then, in your copy of `execexam`, run poetry install. This will install all of Execexam's runtime and development dependencies. Now, you can begin to contribute to the GatorGrade project following the guidelines below.

## Links to Resources

## Contributing Changes

### GitHub Flow

Execexam is maintained using the [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow) workflow. This means that before making any changes to your copy of Execexam, you should [create a new branch](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-branch) off of the main branch. The name of the branch should be a short, descriptive name that describes the changes you plan on making in the branch. For example, if you are planning to update the README.md, you might name your branch update-readme. Notice that the branch name should be all lowercase and have words separated by hyphens.

### Testing Changes

Running Execexam Locally
As you make changes, you will want to see how they affect the output of Execexam. To do this, in the branch that contains your changes, run:

`poetry build`
This will build an archive (i.e. a release artifact) of Execexam that contains your changes. To use this archive, you can install it with pipx:

`pipx install dist/execexam-<archive-version>.whl`
Then, you can run the `execexam` commands in any assignment repository to view the output of Execexam with your changes.

If you have already done this, have made additional changes, and would like to try out your most recent changes, we recommend that you first uninstall Execexam with pipx:

`pipx uninstall execexam`
Then, you can proceed with building and installing a new Execexam archive.

### Running the Test Suite

You should also test that your changes have not caused any regressions in the Execexam system. You can do this by running:

`poetry run task test`
This will run the test task defined in the pyproject.toml, which will execute all of the tests. You can be confident that your changes have not caused any regressions if all tests pass.

Additionally, you should lint your changes to make sure they follow the stylistic rules of the Execexam project. You can do this by running:

`poetry run task lint`
This will run the lint task, which executes various linters such as pylint, that ensure that the style of your changes matches the rest of GatorGrade. Any linting errors that appear should be addressed.

### Committing Changes

As you make and test changes, you should be making small, focused, and targeted commits. Additionally, commit messages should follow these guidelines:

Should be 50 characters or less (soft limit - exceptions include co-author or function names for example)
Should be in the imperative mood
Should be void of all grammatical and spelling mistakes

### Pull Requests

Once you have finished making and committing your changes to your branch, you should [create a pull request](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-pull-request) so that others can review your changes. Before creating a pull request, make sure that the last commit in your branch produced a passing build in GitHub Actions. When you create a pull request, please make sure to fill out all portions of the template.

### Version Tag

In this repo we have two ways to version tag that will automatically push the current version to PyPI. The first way is a test tag that will test the automatic publishing feature to [PyPI](https://pypi.org/project/execexam/) using [TestPyPI](https://test.pypi.org/project/execexam/).

#### Test Publish

The purpose of test publish action is to test the publishing process itself. To test publish use the lowercase `t` tag. A test publish tag should look like `t0.3.1`.

Example Commands for Test Publish:

- `poetry version 0.3.1`
- `git add pyproject.toml`
- `git commit -m "Chore: Bump version to 0.3.1"`
- `git tag t0.3.1`
- `git push origin t0.3.1`

#### Publish

The purpose of the publish action is to automatically publish the version to PyPI. The publish action uses the lowercase `v` tag. A tag for publishing should look like `v0.3.1`.

Example Commands for Publish:

- `poetry version 0.3.1`
- `git add pyproject.toml`
- `git commit -m "Chore: Bump version to 0.3.1"`
- `git tag v0.3.1`
- `git push origin v0.3.1`

### Bug Reports

Please submit your bug reports using the [GitHub Issue Tracker](https://github.com/GatorEducator/execexam/issues). Use the bug template for submission guidelines.

### Feature Suggestions

Please submit your feature suggestions using the [GitHub Issue Tracker](https://github.com/GatorEducator/execexam/issues). Use the feature request template for submission guidelines.

## Code of Conduct

Please refer to our `CODE_OF_CONDUCT.md` for our guidelines on conduct.

## Thank You

Big thank you to everyone who has contributed to this project thus far!

## Owner Information

If you would like to contact the owner of this project please message `@gkapfham` for more information.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,7 @@ Follow these steps to install the `execexam` program:
wiki](https://github.com/gkapfham/execexam/wiki)!
- Contact [Gregory M. Kapfhammer](https://www.gregorykapfhammer.com/) with any
questions or suggestions about ExecExam!

## Contributing to Execexam

If you would like to contribute to Execexam, please refer to the [Execexam Wiki](https://github.com/GatorEducator/gatorgrade/wiki/Contributing-Guidelines) for contributing guidelines.
Loading

0 comments on commit ccfc020

Please sign in to comment.