{"id":21676978,"url":"https://github.com/uwplse/coq-change-analytics","last_synced_at":"2026-05-20T10:41:09.085Z","repository":{"id":80929960,"uuid":"154225661","full_name":"uwplse/coq-change-analytics","owner":"uwplse","description":"REPLICA: REPL Instrumentation for Coq Analysis","archived":false,"fork":false,"pushed_at":"2020-01-02T19:54:22.000Z","size":170,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-25T10:26:40.033Z","etag":null,"topics":["analysis","analytics","coq","coq-ecosystem","coq-plugin","proof-engineering","read-eval-print-loop","repl","replica","user-study","user-study-tool"],"latest_commit_sha":null,"homepage":"","language":"Python","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/uwplse.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-22T22:27:45.000Z","updated_at":"2023-04-10T00:30:52.000Z","dependencies_parsed_at":"2023-04-26T14:00:25.891Z","dependency_job_id":null,"html_url":"https://github.com/uwplse/coq-change-analytics","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/uwplse%2Fcoq-change-analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uwplse%2Fcoq-change-analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uwplse%2Fcoq-change-analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uwplse%2Fcoq-change-analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uwplse","download_url":"https://codeload.github.com/uwplse/coq-change-analytics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244590202,"owners_count":20477680,"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":["analysis","analytics","coq","coq-ecosystem","coq-plugin","proof-engineering","read-eval-print-loop","repl","replica","user-study","user-study-tool"],"created_at":"2024-11-25T14:17:04.814Z","updated_at":"2026-05-20T10:41:04.032Z","avatar_url":"https://github.com/uwplse.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"REPLICA is a Coq plugin that collects data on the changes proof engineers make\nas they make them. The goal of this project is to classify and analyze this data,\nthen use it to inform several proof engineering tools, including a proof patching tool\nand a machine learning tool.\n\n***UPDATE, December 2019***: We have published the paper about this study in CPP 2020.\nThe paper is [here](http://tlringer.github.io/pdf/analytics.pdf), and the data is \n[here](https://github.com/uwplse/analytics-data).\nThanks for your participation! If you see any mistakes in how your data was classified,\nfeel free to reach out to us and we can post an errata.\n\n***UPDATE, September 2019***: The REPLICA study has ended.\nIf you install REPLICA, it will not send data to the server because the server is no longer receiving data.\nInstead, it will log locally.\nFeel free to tweak the locally logged data so that it is easier to process, or feel free to\nhook up REPLICA to a server of your choice instead.\nDoing this requires a few lines of modification to the source for now, but we have done it in another\nsetting already, so please cut an issue if you would like our help.\nAnd feel free to submit a PR making it easier to reuse the infrastructure, in the meantime!\n\n# Philosophy\n\nProof engineers commit only large changes to Github, and rarely commit\nbroken proofs. As a result, data from Github reveals little about the proof development process.\nTools that aim to improve the development process for proof engineers ought to have insight\ninto how that development process currently works. This plugin will provide those tools with that information.\n\n# Dependencies\n\nYou will need [Opam](https://opam.ocaml.org/). The build script will take\ncare of the remaining dependencies.\n\n# Building REPLICA\n\nTo build the plugin initially, run:\n\n```\n./build.sh\n./make\n```\n\nThis will walk you through the entire process, including pulling the appropriate dependencies and\nmaking sure you have a version of Coq that is compatible with the plugin.\n\nThis build script will ask you if you would like to install Coq locally. If you choose to install Coq locally,\nplease make sure that you also use this verison of Coq for your normal development. \n\nIn the future, if you would like to skip rebuilding Coq, and would like to rebuild only the plugin, just run:\n\n```\n./make\n```\n\n# Using REPLICA\n\nSimply add this line:\n\n```\nRequire Import Analytical.Analytics.\n```\nto the beginning of your [coqrc](https://coq.inria.fr/refman/practical-tools/coq-commands.html#by-resource-file) resource file \n(creating one if it does not exist).\n\n**IMPORTANT NOTE**: By default, `coq_makefile` sets a compilation flag that disables loading your coqrc resource file during compilation passes.\nThus, inside of the projects you develop during your time using the plugin, if you use `coq_makefile`,\nplease overwrite `COQFLAGS` in your `[MakefileName].conf` file so that it does not include the `-q` option.\n\nThen go on with your proof development as you normally would.\n\n# Reanswering Profile Questions\n\nWhen you first install the plugin, it will ask you a number of questions about your Coq usage. If at any point\nyou would like to reset your answers to these questions, run:\n\n```\n./reset-profile.sh\n./make\n```\n\nYou will then be prompted to reanswer the questions.\n\n# Debugging REPLICA\n\nTo print analytics data locally instead of sending it to a server,\nset the Debug Analytics option:\n\n```\nSet Debug Analytics.\n```\n\n# Reporting Bugs\n\nPlease report any bugs that you find to Github. If you need to temporarily disable the plugin due to a severe bug,\nyou can comment out the line in your coqrc; if you do so, please let us know so we prioritize fixing the bug.\n\n# Removing the Plugin\n\nWhen you are done with the study, please remove the line you added to your [coqrc](https://coq.inria.fr/refman/practical-tools/coq-commands.html#by-resource-file) resource file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuwplse%2Fcoq-change-analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuwplse%2Fcoq-change-analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuwplse%2Fcoq-change-analytics/lists"}