{"id":23478223,"url":"https://github.com/checkstyle/regression-tool","last_synced_at":"2025-04-14T21:29:46.770Z","repository":{"id":21616765,"uuid":"92950585","full_name":"checkstyle/regression-tool","owner":"checkstyle","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-18T19:21:21.000Z","size":242,"stargazers_count":9,"open_issues_count":28,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-03-27T03:56:52.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/checkstyle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-31T13:49:23.000Z","updated_at":"2023-12-18T07:33:57.000Z","dependencies_parsed_at":"2022-08-25T09:10:16.657Z","dependency_job_id":null,"html_url":"https://github.com/checkstyle/regression-tool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/checkstyle%2Fregression-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/checkstyle%2Fregression-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/checkstyle%2Fregression-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/checkstyle%2Fregression-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/checkstyle","download_url":"https://codeload.github.com/checkstyle/regression-tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231142951,"owners_count":18334321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T19:17:14.548Z","updated_at":"2024-12-24T19:17:21.667Z","avatar_url":"https://github.com/checkstyle.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Regression-tool\n\nRegression-tool is an automation tool to do regression testing based on proposed patch(Pull Request) \nof checkstyle project. The tool could generate configuration based on Git changes, which is used to \ngenerate diff report between the base and the patch branch.\n\n## Setup\n\n### Requirements\n\n- Checkstyle repository which including both master and patch branch need to be cloned.\nIn most case, it should be your forked repository.\n- [Contribution repository](https://github.com/checkstyle/contribution) need to be cloned.\n- Regression-tool uses environment variable `M2_HOME` or system property `maven.home` to find the maven binary files.\nYou need to specify either `M2_HOME` or `maven.home` in advance. You could get the path of maven home by running `mvn -v`.\n\n### Clone\n\nJust clone this repository to your local.\n\n```bash\n$ git clone git@github.com:checkstyle/regression-tool.git\n```\n\nOr use HTTPS mode.\n```bash\n$ git clone https://github.com/checkstyle/regression-tool.git\n```\n\n### Generate Jar\n\nGenerate a `regression-tool-XX-all.jar`(XX means the version of regression-tool) in the `target` folder.\n\n```bash\n$ cd /path/to/regression-tool\n$ mvn clean package -Passembly\n```\n\n## Usage\n\n```bash\n$ java -jar regression-tool-XX-all.jar -r \u003carg\u003e -p \u003carg\u003e [-t \u003carg\u003e] [--stopAfterConfigGeneration]\n```\n\n### Arguments\n\n#### checkstyleRepoPath (r)\n\nThe path of the checkstyle repository. **Required, one argument.**\n\n#### patchBranch (p)\n\nThe name of the PR branch, which would be compared with the master. **Required, one argument.**\n\n#### stopAfterConfigGeneration\n\nIndicates that regression-tool would stop after generating config. By default, the tool would generate \nthe diff report after generating config. **Optional, no argument.**\n\nThe report generation might requires network and be time-consuming. \nIf you are not able to connect to network or just don't want to do the generation right now, \nyou could use this mode.\n\n\n#### checkstyleTesterPath (t)\n\nThe path of the checkstyle-tester directory. If you are **NOT** using `--stopAfterConfigGeneration` mode, this \noption is required, otherwise this could be absent. **Optional, one argument.**\n\n### Example\n\n[Here is an example in CI](./.ci/travis/checkstyle_regression_no_exception.sh).\n\nGenerate regression report for branch `issue1234`.\n\n```bash\n$ java -jar target/regression-tool-XX-all.jar -r /path/to/checkstyle/ -p issue1234 -t /path/to/contribution/checkstyle-tester/\n```\n\nYou could also use long options.\n\n```bash\n$ java -jar target/regression-tool-XX-all.jar --checkstyleRepoPath /path/to/checkstyle/ --patchBranch issue1234 --checkstyleTesterPath /path/to/contribution/checkstyle-tester/\n```\n\nGenerate only the config file and don't generate the report.\n\n```bash\n$ java -jar target/regression-tool-XX-all.jar -r /path/to/checkstyle/ -p issue1234 --stopAfterConfigGeneration\n```\n\n### Output\n\nThe config file would be generated in current working directory.\n\nThe report would be generated somewhere in TBD.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheckstyle%2Fregression-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheckstyle%2Fregression-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheckstyle%2Fregression-tool/lists"}