Releases: GatorEducator/gatorgrader
v1.1.1
Get more info!
Although small, this patch release incorporates changes from three PRs that improve the visibility of information in both GatorGrader output and documentation, as well as formalize the PyPI packaging implementation. Especially important are the README.md
updates to ensure correctness about the use of Poetry.
What's Changed
- Add metadata for PyPI publishing by @Michionlion in #241
- Update README.md with details/fixes for poetry integration by @Michionlion in #244
- Add expected number of fragments to output by @mariakimheinert in #242
Full Changelog: v1.1.0...v1.1.1
v1.1.0-legacy
Describe your checks!
Now, the optional --description
argument allows setting a custom description per check, to cut down on student confusion. In addition, this release includes changes to the release workflow and continuous integration setup.
Note: This release is the last one compatible with GatorGradle
Note: This release is compatible with Python 3.7+
What's Changed
- Migration from Travis CI to GitHub Actions by @schultzh in #222
- Document the New Features of GatorGrader in the README by @corlettim in #209
- Add description argument to enable custom check descriptions by @Michionlion in #238
Full Changelog: v1.0.5...v1.1.0-legacy
v1.1.0
Note: This release should be viewed as newer than v1.1.0-legacy
This release refactors a significant amount of GatorGrader internals, and is the first release available on PyPI. The release was initially intended to be a stop-gap solution. In future versions, some changes may be made to the structure and distribution of the PyPI package. Additionally, the documentation available in this release may or may not be fully accurate. For users who just wish to use GatorGrader on the command line, all that is needed is to install this package and run gatorgrader
. For help on syntax and available options, see gatorgrader --help
.
For users who would like to interact with GatorGrader programmatically, refer to the docstrings available in gatorgrader.py
and gator/__init__.py
(or view them in your editor-of-choice with support for a Python Language Server). In summary, however, GatorGrader can be run by importing the gator
package and calling gator.grader(["list", "--of", "command", "--line", "arguments"])
, the syntax of which matches previous versions of GatorGrader. For additional help or guidance, see gatorgrader --help
or reach out to any of the core maintainers.
v1.0.5
Fix line endings and formatting and upgrade Travis CI
This PR is a bugfix that resolves issues with incorrect code formatting and the setup with AppVeyor and Travis CI.
@corlettim: This PR is to help with fixing the issued line ending error that we have come upon.
@gkapfham: This PR includes the following modifications:
- Add a
.gitattributes
file that mandates that line endings follow the Unix standard - Upgrade the development dependencies listing in the
Pipfile.lock
- Fix line ending issues that were (likely) causing AppVeyor builds to fail
- Fix AppVeyor configuration so that it uses the supported Python 3.7.5,
which was causing coverage uploads to fail for Python 3.7.4 - Upgrade Travis CI to use the Pro/Com version since Org is now deprecated
- Fix small mistakes in the README file (e.g., trailing blank spaces)
Auto-generated by pr-tag-release
v1.0.4
Fix line endings and formatting and upgrade Travis CI
This PR is a bugfix that resolves issues with incorrect code formatting and the setup with AppVeyor and Travis CI.
@corlettim: This PR is to help with fixing the issued line ending error that we have come upon.
@gkapfham: This PR includes the following modifications:
- Add a
.gitattributes
file that mandates that line endings follow the Unix standard - Upgrade the development dependencies listing in the
Pipfile.lock
- Fix line ending issues that were (likely) causing AppVeyor builds to fail
- Fix AppVeyor configuration so that it uses the supported Python 3.7.5,
which was causing coverage uploads to fail for Python 3.7.4 - Upgrade Travis CI to use the Pro/Com version since Org is now deprecated
- Fix small mistakes in the README file (e.g., trailing blank spaces)
Auto-generated by pr-tag-release
v1.0.3
Fix line endings and formatting and upgrade Travis CI
This PR is a bugfix that resolves issues with incorrect code formatting and the setup with AppVeyor and Travis CI.
@corlettim: This PR is to help with fixing the issued line ending error that we have come upon.
@gkapfham: This PR includes the following modifications:
- Add a
.gitattributes
file that mandates that line endings follow the Unix standard - Upgrade the development dependencies listing in the
Pipfile.lock
- Fix line ending issues that were (likely) causing AppVeyor builds to fail
- Fix AppVeyor configuration so that it uses the supported Python 3.7.5,
which was causing coverage uploads to fail for Python 3.7.4 - Upgrade Travis CI to use the Pro/Com version since Org is now deprecated
- Fix small mistakes in the README file (e.g., trailing blank spaces)
Auto-generated by pr-tag-release
v1.0.2
Fix wording issue for CountCommits check
Updated to say "The repository has..." rather than "Repository has..." to match other content.
What is the current behavior?
Check displays text "Repository has" which does not match current format (i.e. it is missing a preceding "the" to start the statement). This PR is associated with the below issue:
What is the new behavior if this PR is merged?
Updated to say "The repository has..." to match current format
Other information
This PR has:
- Commit messages that are correctly formatted
- Tests for newly introduced code
- Docstrings for newly introduced code
This PR is a small change that fixes #195
Developers
Auto-generated by pr-tag-release
v1.0.1
Fix wording issue for CountCommits check
Updated to say "The repository has..." rather than "Repository has..." to match other content.
What is the current behavior?
Check displays text "Repository has" which does not match current format (i.e. it is missing a preceding "the" to start the statement). This PR is associated with the below issue:
What is the new behavior if this PR is merged?
Updated to say "The repository has..." to match current format
Other information
This PR has:
- Commit messages that are correctly formatted
- Tests for newly introduced code
- Docstrings for newly introduced code
This PR is a small change that fixes #195
Developers
Auto-generated by pr-tag-release
v1.0.0
Use a Plugin-Based Approach to Provide a Linter-Inspired Interface
This PR adopts a plugin-based approach to provide a linter-inspired interface.
This means:
-- A person using GatorGrader will be able to introduce their own checks dynamically
-- The command-line interface will feature positional required arguments for all checks
This PR also introduces a significant number of bug fixes and improvements to the tool. For instance, there were a number of problems in the way that GatorGrader previously handled the combination of wildcards with the use of --exact
. These issues have been resolved, at the expense of making the code more complex. I suggest that we still merge this PR and then revisit this complexity in a future PR. For instance, the invoke_all_comment_checks
function in the invoke
module is now more complex that is appropriate, in part because it now correctly makes diagnostics for a wide variety of edge cases.
What is the current behavior?
GatorGrader currently does not:
-- Allow a person to specify their own checks. As such, the tool is currently not extensible.
-- Allow the specification of checks in an easy-to-document and easy-to-use fashion.
What is the new behavior if this PR is merged?
GatorGrader will now support a plugin-based and linter-inspired interface. It does so by using the PluginBase package described at: https://github.com/mitsuhiko/pluginbase
@jjumadinova and @amohangit and @dluman and @obonhamcarter please note that once this PR is merged, the way in which you will write checks in a gatorgrader.yml
file will change. If you want to continue to use the old approach, you can use a version:
tag in the YAML header of your gatorgrader.yml
file, using a method that @Michionlion will finish implementing before the Fall 2019 semester starts. With that said, @Michionlion and all of the other core maintainers of GatorGrader suggest that you adopt this new approach instead as it will be easier to specify your own checks and add checks that are not currently provided by GatorGrader.
If @jjumadinova or @amohangit or @dluman or @obonhamcarter have questions about the implications of merging this PR to GatorGrader, they should communicate with @gkapfham.
Unit Testing Details
There are currently a few branches and lines of code that are not covered by the unit test test suite. With that said, this PR has 99% coverage of the statements and the branches and I think that this is high enough to support the merge of the PR.
Here are the details from the coverage report:
Test session starts (platform: linux, Python 3.7.3, pytest 5.0.1, pytest-sugar 0.9.2)
rootdir: /home/gkapfham/working/source/gatorgrader, inifile: pytest.ini
plugins: sugar-0.9.2, cov-2.7.1
collecting ...
tests/test_arguments.py ✓✓✓✓✓✓✓✓✓✓ 1% ▎
tests/test_checkers.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 4% ▍
tests/test_comments.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 17% █▊
✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 20% ██
tests/test_constants.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 24% ██▌
tests/test_display.py ✓✓✓✓✓✓ 25% ██▌
tests/test_files.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 27% ██▊
tests/test_fragments.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 40% ████
✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 46% ████▋
tests/test_invoke.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 50% █████
tests/test_leave.py ✓✓✓✓✓✓✓✓✓✓ 51% █████▏
tests/test_markdown.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 53% █████▍
tests/test_orchestrate.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 55% █████▌
tests/test_report.py ✓✓✓✓✓✓ 56% █████▋
tests/test_repository.py ✓✓✓✓✓✓✓✓✓✓✓ 57% █████▊
tests/test_run.py ✓✓✓✓✓✓ 58% █████▊
tests/test_util.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 63% ██████▍
tests/checks/test_check_ConfirmFileExists.py ✓✓✓✓✓✓✓✓✓✓✓ 64% ██████▍
tests/checks/test_check_CountCommandOutput.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 66% ██████▋
tests/checks/test_check_CountCommits.py ✓✓✓✓✓✓✓✓✓✓✓ 67% ██████▊
tests/checks/test_check_CountFileLines.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 70% ██████▉
tests/checks/test_check_CountFileParagraphs.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 72% ███████▎
tests/checks/test_check_CountFileWords.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 74% ███████▍
tests/checks/test_check_CountMarkdownTags.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 77% ███████▋
tests/checks/test_check_CountMultipleLineComments.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 80% ████████
tests/checks/test_check_CountParagraphWords.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 82% ████████▎
tests/checks/test_check_CountSingleLineComments.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 86% ████████▋
tests/checks/test_check_ExecuteCommand.py ✓✓✓✓✓✓✓✓✓✓ 87% ████████▊
tests/checks/test_check_ListChecks.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 89% ████████▉
tests/checks/test_check_MatchCommandFragment.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 92% █████████▎
tests/checks/test_check_MatchCommandRegex.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 95% █████████▌
tests/checks/test_check_MatchFileFragment.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 98% █████████▊
tests/checks/test_check_MatchFileRegex.py ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ 100% ██████████
----------- coverage: platform linux, python 3.7.3-final-0 -----------
Name Stmts Miss Branch BrPart Cover Missing
---------------------------------------------------------------------------------------------
gator/__init__.py 0 0 0 0 100%
gator/arguments.py 31 0 4 0 100%
gator/checkers.py 84 0 36 0 100%
gator/checks/__init__.py 0 0 0 0 100%
gator/checks/check_ConfirmFileExists.py 16 0 0 0 100%
gator/checks/check_CountCommandOutput.py 19 0 0 0 100%
gator/checks/check_CountCommits.py 18 0 0 0 100%
gator/checks/check_CountFileLines.py 22 0 0 0 100%
gator/checks/check_CountFileParagraphs.py 21 0 0 0 100%
gator/checks/check_CountFileWords.py 23 0 0 0 100%
gator/checks/check_CountMarkdownTags.py 24 0 0 0 100%
gator/checks/check_CountMultipleLineComments.py 24 0 0 0 100%
gator/checks/check_CountParagraphWords.py 23 0 0 0 100%
gator/checks/check_CountSingleLineComments.py 24 0 0 0 100%
gator/checks/check_ExecuteCommand.py 14 0 0 0 100%
gator/checks/check_ListChecks.py 28 0 4 0 100%
gator/checks/check_MatchCommandFragment.py 21 0 0 0 100%
gator/checks/check_MatchCommandRegex.py 21 0 0 0 100%
gator/checks/check_MatchFileFragment.py 24 0 0 0 100%
gator/checks/check_MatchFileRegex.py 24 0 0 0 100%
gator/comments.py ...
v0.3.2
Delete mutmut from Pipfile and Pipfile.lock.
This pull request deletes mutmut
from the Pipfile
and Pipfile.lock
since we are not doing mutation testing on the test suite.
What is the current behavior?
Currently, mutmut
is a dependency.
See issue #183 for more details.
What is the new behavior if this PR is merged?
This PR will delete the mutmut
dependency
Other information
This PR has:
- Commit messages that are correctly formatted
This PR is a small change that fixes #183
Developers
Auto-generated by pr-tag-release