{"id":19768198,"url":"https://github.com/squareslab/melt","last_synced_at":"2026-03-08T16:05:32.827Z","repository":{"id":190543375,"uuid":"682863741","full_name":"squaresLab/MELT","owner":"squaresLab","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-23T16:46:28.000Z","size":2983,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-30T16:44:18.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/squaresLab.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,"zenodo":null}},"created_at":"2023-08-25T03:45:46.000Z","updated_at":"2024-08-23T16:46:31.000Z","dependencies_parsed_at":"2023-08-25T06:02:48.582Z","dependency_job_id":"ae296715-c685-4503-9b93-89dd05c27134","html_url":"https://github.com/squaresLab/MELT","commit_stats":null,"previous_names":["squareslab/melt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/squaresLab/MELT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FMELT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FMELT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FMELT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FMELT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squaresLab","download_url":"https://codeload.github.com/squaresLab/MELT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FMELT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265546128,"owners_count":23785921,"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-11-12T04:36:08.519Z","updated_at":"2026-03-08T16:05:27.805Z","avatar_url":"https://github.com/squaresLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MELT\n\nThe github action for MELT is found here: https://github.com/squaresLab/melt_action\n\n## Set up your environment:\n\n1. Create a python env.\n```bash\npython -m venv melt_env\nsource melt_env/bin/activate\n```\n\n2. Go to MELT's directory and install dependencies \n\n```bash\ncd MELT\npip install -r requirements.txt\n```\n\n3. Add MELT to PYTHONPATH\n```bash\nexport PYTHONPATH=$PYTHONPATH:`pwd`\n```\n\n## How to run\n\nMELT main file is under src/inference/main.py. The main file takes the following arguments:\n\nTo run the script, you need to provide the following input arguments:\n\n1. `--library`: The name of the library in the format \"user/repo\" (e.g., \"scikit-learn/scikit-learn\").\n2. `--pr`: The Pull Request (PR) number.\n3. `--gh_key`: A github access key (classic token) with only public permissions. This is used to extract data from the PR. Instructions on how to create a Token can be found [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic)\n4. `api_keyword`: The name of the API being deprecated.\n5. `--out_dir` (optional): The output directory where the generated rules will be saved. The default is the current directory.\n6. `--version` (optional): The version of the library (e.g., 1.5). The default is \"1.5\".\n\nThe script will then mine the changes from the specified PR, filter deprecated APIs, and generate comby rules based on the changes. The generated rules will be saved as JSON files in the specified output directory.\nPlease make sure to provide the required arguments when running the script, and ensure that your GitHub API keys are correctly set up.\n\n### Example:\n\n```python\npython3 src/inference/main.py --library pandas-dev/pandas --pr 44539 --gh_key ghp_********* --api_keyword append\n```\n\nCurrently, it is necessary to provide the name of the deprecated API for which we want to mine rules. The zenodo versions contains the heuristics, including an NLP-based approach for identifying the relevant API names. \n\n## How to cite\n```latex\n@inproceedings{ramos2023melt,\n  title={MELT: Mining Effective Lightweight Transformations from Pull Requests},\n  author={Ramos, Daniel and Mitchell, Hailie and Lynce, In\\\\^es and Manquinho, Vasco and Martins, Ruben and Le Goues, Claire},\n  booktitle={Proc. International Conference on Automated Software Engineering (ASE)},\n  year={2023}\n}\n```\n\n## Disclaimer\nThis is a research prototype. If you have any problems setting an environment for MELT to work feel free to reach out or open an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareslab%2Fmelt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquareslab%2Fmelt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareslab%2Fmelt/lists"}