Skip to content

Commit 08a39c2

Browse files
authored
Merge pull request #244 from GatorEducator/docs/update-readme-with-poetry-details
Update README.md with details/fixes for poetry integration
2 parents b95c5b8 + cc2df9d commit 08a39c2

File tree

1 file changed

+29
-38
lines changed

1 file changed

+29
-38
lines changed

README.md

Lines changed: 29 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ speed!
99
</b>
1010
</p>
1111

12-
[![Lint and Test](https://github.com/GatorEducator/gatorgrader/workflows/Lint%20and%20Test/badge.svg?branch=master)](https://github.com/GatorEducator/gatorgrader/actions?query=workflow%3A%22Lint+and+Test%22+branch%3Amaster) [![codecov.io](https://codecov.io/gh/GatorEducator/gatorgrader/branch/master/graph/badge.svg?token=UKBOlE7kG6)](https://codecov.io/gh/GatorEducator/gatorgrader) [![codacy.com](https://api.codacy.com/project/badge/Grade/3dade81be6dc467b8e34cde66eb5cdc6)](https://www.codacy.com/app/GatorEducator/gatorgrader?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=GatorEducator/gatorgrader&amp;utm_campaign=Badge_Grade) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-orange.svg)](https://github.com/GatorEducator/gatorgrader/graphs/commit-activity) [![GitHub license](https://img.shields.io/github/license/GatorEducator/gatorgrader.svg)](https://github.com/GatorEducator/gatorgrader/blob/master/LICENSE.md) [![All Contributors](https://img.shields.io/badge/all_contributors-33-orange.svg?style=flat-square)](#contributors)
12+
[![Lint and Test](https://github.com/GatorEducator/gatorgrader/workflows/Lint%20and%20Test/badge.svg?branch=master)](https://github.com/GatorEducator/gatorgrader/actions?query=workflow%3A%22Lint+and+Test%22+branch%3Amaster) [![codecov.io](https://codecov.io/gh/GatorEducator/gatorgrader/branch/master/graph/badge.svg?token=UKBOlE7kG6)](https://codecov.io/gh/GatorEducator/gatorgrader) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-orange.svg)](https://github.com/GatorEducator/gatorgrader/graphs/commit-activity) [![GitHub license](https://img.shields.io/github/license/GatorEducator/gatorgrader.svg)](https://github.com/GatorEducator/gatorgrader/blob/master/LICENSE.md) [![All Contributors](https://img.shields.io/badge/all_contributors-33-orange.svg?style=flat-square)](#contributors)
1313

1414
## Table of Contents
1515

@@ -29,12 +29,6 @@ speed!
2929
* [Contributing](#contributing)
3030
* [Contributors](#contributors)
3131

32-
### Notes for PyPI Users
33-
34-
This release (`1.1.0`) of GatorGrader is intended to be a stop-gap solution. It is released from the [`feature/publish-to-pypi`](https://github.com/GatorEducator/gatorgrader/tree/feature/publish-to-pypi) branch on GitHub. In future versions, some changes may be made to the structure and distribution of this package. Additionally, the documentation available in the rest of this document 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`.
35-
36-
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](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)). 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.
37-
3832
## Quickstart Guide
3933

4034
* Starter Repositories
@@ -68,7 +62,7 @@ and what it looks like when those tasks are completed.
6862
GatorGrader automatically checks the work of technical writers and programmers.
6963
It can:
7064

71-
* Use its [Gradle plugin](https://github.com/GatorEducator/gatorgradle) to check
65+
* Enable [GatorGrade](https://github.com/GatorEducator/gatorgrade) to check
7266
projects implemented and documented in a wide variety of languages (e.g.,
7367
Java, Python, LaTeX, Markdown, HTML, and CSS).
7468

@@ -111,13 +105,12 @@ Classroom](https://classroom.github.com/) to effectively handle those tasks.
111105

112106
## Installing GatorGrader
113107

114-
Installing GatorGrader is not necessary if you intend to use it through its
115-
[Gradle plugin](https://github.com/GatorEducator/gatorgradle). If you want to
116-
participate in the development of GatorGrader, the project maintainers suggest
117-
the use of [Pyenv](https://github.com/pyenv/pyenv) to install Python 3.6 or
118-
above. In addition to installing [Git](https://git-scm.com/) to access the
119-
project's GitHub repository, you should also install
120-
[Pipenv](https://github.com/pypa/pipenv) for its support of package and virtual
108+
Installing GatorGrader is not necessary if you intend to use it through [GatorGrade](https://github.com/GatorEducator/gatorgrader).
109+
If you want to participate in the development of GatorGrader, the project
110+
maintainers suggest the use of [Pyenv](https://github.com/pyenv/pyenv) to
111+
install Python 3.7 or above. In addition to installing [Git](https://git-scm.com/)
112+
to access the project's GitHub repository, you should also install
113+
[Poetry](https://python-poetry.org/) for its support of package and virtual
121114
environment management. After completing the installation of these tools, you
122115
can type the following command in your terminal window to clone GatorGrader's
123116
GitHub repository:
@@ -128,11 +121,9 @@ git clone https://github.com/GatorEducator/gatorgrader.git
128121

129122
If you plan to develop new features for GatorGrader or if you want to run the
130123
tool's test suite in [Pytest](https://github.com/pytest-dev/pytest), then you
131-
will need to install the developer dependencies by typing ``pipenv install --python="$(pyenv which python)" --dev`` in the directory that contains
132-
GatorGrader. If you want to use GatorGrader, then you can type ``pipenv install --python="$(pyenv which python)"`` instead. Once these commands complete
133-
successfully, you have officially installed GatorGrader! Note that running these
134-
commands will ensure that Pipenv creates a virtual environment for GatorGrader
135-
that is bound to the version of Python that Pyenv set for use.
124+
will need to install a virtual environment for development by typing `poetry install`
125+
in the directory that contains GatorGrader. For help with this process, refer to
126+
[Poetry's documentation](https://python-poetry.org/docs/).
136127

137128
## Testing GatorGrader
138129

@@ -146,7 +137,7 @@ in a terminal window will perform testing with the version of Python to which
146137
Pipenv's virtual environment is currently bound.
147138

148139
```
149-
pipenv run test
140+
poetry run task test
150141
```
151142

152143
### Test Coverage
@@ -159,16 +150,16 @@ command, this will run the tests in the version of Python to which Pipenv's
159150
virtual environment is currently bound.
160151

161152
```
162-
pipenv run cover
153+
poetry run task cover
163154
```
164155

165156
### Testing with Multiple Python Versions
166157

167158
The previous two commands are restricted to running the test suite in the
168-
version of Python to which Pipenv was bound. If you have installed multiple
169-
versions of Python with Pyenv and you want to iteratively bind Pipenv to each
159+
version of Python with which Poetry was initialized. If you have installed multiple
160+
versions of Python with Pyenv and you want to iteratively initialized Poetry with each
170161
version and then run the test suite, then you should first run the following
171-
commands to install [Pipx](https://github.com/pipxproject/pipx) and use Pipx to
162+
commands to install [Pipx](https://pypa.github.io/pipx/) and use Pipx to
172163
install [Invoke](https://github.com/pyinvoke/invoke). The first of these three
173164
commands will install `pipx`, a program that supports the execution of Python
174165
packages in isolated environments. The second command makes the directory
@@ -211,17 +202,17 @@ The developers of GatorGrader use linting and code formatting tools, such as
211202
[Pylint](https://github.com/PyCQA/pylint),
212203
[Pydocstyle](https://github.com/PyCQA/pydocstyle), and
213204
[Black](https://github.com/python/black). After installing GatorGrader's
214-
development dependencies with Pipenv, you can run all of the linters by typing
205+
development dependencies with Poetry, you can run all of the linters by typing
215206
this command in a terminal window.
216207

217208
```bash
218-
pipenv run lint --check
209+
poetry run task lint --check
219210
```
220211

221212
### Automated Checks
222213

223214
Want to learn about our linting checks? Check us out on our website,
224-
[GatorGrader](https://deploy-preview-1--gatorgrader.netlify.com)! We have detailed
215+
[GatorGrader](https://www.gatorgrader.org/)! We have detailed
225216
descriptions of our linting checks and more! To get an idea of the linting checks we
226217
offer, here is a quick list:
227218

@@ -251,20 +242,17 @@ If `--help` is tagged along with a check then a help message will be displayed a
251242
then exited. If further assistance is needed, please contact us on GitHub.
252243

253244
Another feature with our automated checks is the **plug-in based approach**. This allows
254-
users to implement their own check if our initial 15 do not fulfill a check that
245+
users to implement their own check if our initial checks do not fulfill a check that
255246
you find necessary.
256247

257248
## Running GatorGrader
258249

259-
Students and instructors normally use GatorGrader through its [Gradle
260-
plugin](https://github.com/GatorEducator/gatorgradle), specifying the requested
261-
checks in a `config/gatorgrader.yml` file. When run through Gradle, GatorGrader
250+
Students and instructors normally use GatorGrader through [GatorGrade](https://github.com/GatorEducator/gatorgrade),
251+
specifying the requested checks in a `gatorgrade.yml` file. When run through GatorGrade, GatorGrader
262252
reports each check that it performed, additionally sharing a diagnostic message
263253
for each check that did not pass. Individuals who want to run GatorGrader as a
264-
stand-alone Python application should first install it's application
265-
dependencies with Pipenv and then learn about the supported checks and their
266-
defaults by typing `pipenv run python3 gatorgrader.py --help` in a terminal
267-
window.
254+
stand-alone Python application can install GatorGrader itself through [Pipx](https://pypa.github.io/pipx/),
255+
and then run `gatorgrader --help` to get more details on the command-line interface.
268256

269257
Instructors often run GatorGrader in conjunction with other tools that check
270258
source code and technical writing. For instance, in a Java-based introductory
@@ -285,12 +273,15 @@ with a wide variety of other linters, code formatters, and testing tools.
285273
Instructors may at times need to see a full list of checks to have a better understanding
286274
and therefore, we feel that it is important to know that there is an easy way for that to happen.
287275
This action will be completed through command line and therefore, you can type
288-
`pipenv run python gatorgrader.py ListChecks` into your terminal. This allows for
289-
all of the checks to be printed out as output. This output will have the necessary
276+
`gatorgrader ListChecks` into your terminal, if you've installed GatorGrader as detailed above.
277+
This allows for all of the checks to be printed out as output. This output will have the necessary
290278
name labeled with the required and optional arguments. If this output does not give enough content,
291279
we warmly invite you to navigate to our website, where we go into more detail about our Automated Checks.
292280

293281
## Using Docker
282+
283+
_Note: Docker supports the older GatorGrader execution tool, [GatorGradle](https://github.com/GatorEducator/gatorgradle). It is not needed for GatorGrade!_
284+
294285
A vital part of our process for GatorGrader is to implement and use new techniques
295286
to further our tool to grow. This is why we chose to use Docker! Docker is a container
296287
platform and therefore, allows students using GatorGrader to just open a container

0 commit comments

Comments
 (0)