AstuteSource / chasten

:dizzy: Chasten Uses XML and XPATH to Check a Python Program's AST for Specified Patterns!
https://pypi.org/project/chasten/
GNU General Public License v2.0
7 stars 8 forks source link

Integrate The Tool into the Workflow for Atleast 5 Complete Undergraduate Projects #20

Open gkapfham opened 1 year ago

gkapfham commented 1 year ago

Once there is evidence that chasten tool works correctly on at least 20 small projects (see the 12 forked repositories in the AstuteSource organization), then there should be a major push to apply chasten to at least 5 course projects created during the Fall 2023 semester in the Department of Computer and Information Science at Allegheny College and to scan those projects for the most relevant patterns of the patterns that are ultimately implemented as part of the completion of Issue #6.

There should be convincing evidence that chasten works on the solution and starter repositories that faculty members and students create as part of a Computer Science, Data Science, Software Engineering, or Informatics course at Allegheny College.

boulais01 commented 9 months ago

Associated with #19

Jaclynpqc commented 8 months ago

Update: I'm currently working on integrating chasten with several engineering efforts in the course CMPSCI 101. Most of the effort in this issue is going through the checks in gatorgrade.yml and converting certain checks to XPATH patterns.

I attached a screenshot below of how chasten analyzing CMPSCI101-ee1-integer-squaring:

Screenshot 2023-12-12 at 1 53 45 PM

Here is the screenshot of chasten analyzing checks in CMPSCI101-ee2-primality-testing:

Screenshot 2023-12-12 at 3 30 13 PM

My main concern at the moment is where to push the config folders that contain the checks for each assignment. The checks I'm running right now are stored in my personal assignment repo. After consulting with Professor Kapfhammer, we agreed to push the checks to gatoreducator.

Further improvements can be made my add more checks to checks.yml. I basically translated all the checks in gatorgrade that relate to code pattern to XPATH. However, I noticed that the checks are quite brief(i,e.checking for function name, call of function) and not a lot of checks for double-for loop, iteration. With XPATH, it's easier to include such checks