{"id":59217,"name":"good-enough-practices","description":"Good Enough Practices in Scientific Computing","url":"https://github.com/carpentries-lab/good-enough-practices","last_synced_at":"2025-09-05T15:27:45.805Z","repository":{"id":37818790,"uuid":"345606322","full_name":"carpentries-lab/good-enough-practices","owner":"carpentries-lab","description":"Good Enough Practices in Scientific Computing","archived":false,"fork":false,"pushed_at":"2025-08-26T01:56:09.000Z","size":10726,"stargazers_count":22,"open_issues_count":10,"forks_count":21,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-08-26T03:41:27.905Z","etag":null,"topics":["carpentries-lab","carpentry","computing","data","data-management","english","helpwanted-list","lesson","novice","peer-reviewed","project-organisation","stable","version-control"],"latest_commit_sha":null,"homepage":"https://carpentries-lab.github.io/good-enough-practices/","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carpentries-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json"},"funding":{"github":["carpentries"],"custom":["https://give.communityin.org/TheCarpentries"]}},"created_at":"2021-03-08T09:50:07.000Z","updated_at":"2025-08-25T09:06:32.000Z","dependencies_parsed_at":"2023-09-21T19:23:39.502Z","dependency_job_id":"264289a4-0a37-42ee-b3b4-e4959ac7fc39","html_url":"https://github.com/carpentries-lab/good-enough-practices","commit_stats":{"total_commits":227,"total_committers":19,"mean_commits":"11.947368421052632","dds":0.6872246696035242,"last_synced_commit":"7db847ebaf4460e94599bdc3a3ff9c224c14967c"},"previous_names":["carpentries-lab/good-enough-practices"],"tags_count":2,"template":false,"template_full_name":"carpentries-incubator/template","purl":"pkg:github/carpentries-lab/good-enough-practices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-lab","download_url":"https://codeload.github.com/carpentries-lab/good-enough-practices/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273775723,"owners_count":25165918,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"}},"owner":{"login":"carpentries-lab","name":"The Carpentries Lab","uuid":"41486373","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/41486373?v=4","repositories_count":3,"last_synced_at":"2023-03-04T20:37:38.696Z","metadata":{"has_sponsors_listing":false,"funding":{"github":["carpentries"],"custom":["https://give.communityin.org/TheCarpentries"]}},"html_url":"https://github.com/carpentries-lab","funding_links":["https://github.com/sponsors/carpentries","https://give.communityin.org/TheCarpentries"],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T00:21:57.824Z","updated_at":"2023-03-04T20:37:38.719Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-lab","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-lab/repositories"},"packages":[],"commits":{"id":1330653,"full_name":"carpentries-lab/good-enough-practices","default_branch":"main","committers":[{"name":"Edward Wallace","email":"ewallace","login":"ewallace","count":71},{"name":"ameynert","email":"alison.meynert@igmm.ed.ac.uk","login":null,"count":34},{"name":"Tomasz Zielinski","email":"tomasz.zielinski@ed.ac.uk","login":null,"count":32},{"name":"emma-wilson","email":"57262254+emma-wilson","login":"emma-wilson","count":16},{"name":"MatthiasMimault","email":"34157729+MatthiasMimault","login":"MatthiasMimault","count":12},{"name":"HeidiSeibold","email":"heidi.bold@gmail.com","login":null,"count":10},{"name":"Edward Wallace","email":"ewjwallace@gmail.com","login":null,"count":9},{"name":"Samuel Joseph Haynes","email":"37002508+DimmestP","login":"DimmestP","count":7},{"name":"aromanowski","email":"georomano@gmail.com","login":null,"count":6},{"name":"Toby Hodges","email":"tbyhdgs@gmail.com","login":null,"count":6},{"name":"Allen Lee","email":"alee","login":"alee","count":6},{"name":"Zhian N. Kamvar","email":"zkamvar@gmail.com","login":"zkamvar","count":6},{"name":"Alison Meynert","email":"ameyner2@ed.ac.uk","login":null,"count":4},{"name":"Flic Anderson","email":"FlicAnderson","login":"FlicAnderson","count":2},{"name":"Graeme Grimes","email":"Graeme.Grimes@Gmail.com","login":null,"count":2},{"name":"ppxasjsm","email":"antonia.mey@ed.ac.uk","login":null,"count":1},{"name":"JenDaub","email":"42603409+JenDaub","login":"JenDaub","count":1},{"name":"Lex Nederbragt","email":"lex.nederbragt@ibv.uio.no","login":null,"count":1},{"name":"jjyh","email":"32889988+jjyh","login":"jjyh","count":1}],"total_commits":227,"total_committers":19,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":11.947368421052632,"dds":0.6872246696035242,"past_year_committers":[{"name":"Edward Wallace","email":"ewallace","login":"ewallace","count":40},{"name":"ameynert","email":"alison.meynert@igmm.ed.ac.uk","login":null,"count":19},{"name":"emma-wilson","email":"57262254+emma-wilson","login":"emma-wilson","count":15},{"name":"HeidiSeibold","email":"heidi.bold@gmail.com","login":null,"count":10},{"name":"Allen Lee","email":"alee","login":"alee","count":6},{"name":"Zhian N. Kamvar","email":"zkamvar@gmail.com","login":"zkamvar","count":6},{"name":"Toby Hodges","email":"tbyhdgs@gmail.com","login":null,"count":2},{"name":"aromanowski","email":"georomano@gmail.com","login":null,"count":1},{"name":"Flic Anderson","email":"FlicAnderson","login":"FlicAnderson","count":1},{"name":"Lex Nederbragt","email":"lex.nederbragt@ibv.uio.no","login":null,"count":1}],"past_year_total_commits":101,"past_year_total_committers":10,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":10.1,"past_year_dds":0.6039603960396039,"last_synced_at":"2024-01-29T09:02:59.646Z","last_synced_commit":"7db847ebaf4460e94599bdc3a3ff9c224c14967c","created_at":"2023-09-11T16:54:43.981Z","updated_at":"2024-01-29T09:02:59.646Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.343Z","repositories_count":5480019,"commits_count":853389012,"contributors_count":31098138,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"carpentries-lab/good-enough-practices","html_url":"https://github.com/carpentries-lab/good-enough-practices","last_synced_at":"2024-01-29T09:03:35.978Z","status":null,"issues_count":61,"pull_requests_count":49,"avg_time_to_close_issue":37836042.416666664,"avg_time_to_close_pull_request":2176412.8571428573,"issues_closed_count":48,"pull_requests_closed_count":49,"pull_request_authors_count":11,"issue_authors_count":10,"avg_comments_per_issue":1.5081967213114753,"avg_comments_per_pull_request":0.5510204081632653,"merged_pull_requests_count":48,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":18,"past_year_pull_requests_count":26,"past_year_avg_time_to_close_issue":1529209.3333333333,"past_year_avg_time_to_close_pull_request":533777.4615384615,"past_year_issues_closed_count":9,"past_year_pull_requests_closed_count":26,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.5769230769230769,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":25,"created_at":"2023-09-11T16:54:53.638Z","updated_at":"2025-09-02T13:57:23.751Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-lab%2Fgood-enough-practices/issues","issue_labels_count":{"help wanted":9,"type:enhancement":5,"type:discussion":4,"good first issue":2,"type:bug":1,"type:formatting":1,"high priority":1},"pull_request_labels_count":{"type: template and tools":8},"issue_author_associations_count":{"COLLABORATOR":49,"MEMBER":5,"CONTRIBUTOR":5,"NONE":2},"pull_request_author_associations_count":{"COLLABORATOR":41,"NONE":9,"MEMBER":7,"CONTRIBUTOR":2},"issue_authors":{"ewallace":43,"emma-wilson":4,"aromanowski":4,"alee":3,"ameynert":2,"FlicAnderson":1,"ckravit":1,"egountouna":1,"tobyhodges":1,"zkamvar":1},"pull_request_authors":{"ewallace":29,"carpentries-bot":8,"tobyhodges":6,"ameynert":5,"emma-wilson":4,"alee":3,"aromanowski":1,"FlicAnderson":1,"HeidiSeibold":1,"zkamvar":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10103789,"issues_count":31523126,"pull_requests_count":97734489,"authors_count":10703676,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"type: template and tools":4},"past_year_issue_author_associations_count":{"COLLABORATOR":1},"past_year_pull_request_author_associations_count":{"NONE":4,"COLLABORATOR":4,"MEMBER":1},"past_year_issue_authors":{"emma-wilson":1},"past_year_pull_request_authors":{"ewallace":4,"carpentries-bot":4,"tobyhodges":1},"maintainers":[{"login":"ewallace","count":72,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ewallace"},{"login":"emma-wilson","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/emma-wilson"},{"login":"tobyhodges","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tobyhodges"},{"login":"ameynert","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ameynert"},{"login":"alee","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alee"},{"login":"zkamvar","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zkamvar"}],"active_maintainers":[{"login":"ewallace","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ewallace"},{"login":"emma-wilson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/emma-wilson"},{"login":"tobyhodges","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tobyhodges"}]},"events":{"total":{"ReleaseEvent":1,"WatchEvent":5,"DeleteEvent":9,"IssueCommentEvent":10,"PushEvent":65,"PullRequestReviewEvent":2,"PullRequestEvent":12,"CreateEvent":8},"last_year":{"ReleaseEvent":1,"WatchEvent":5,"DeleteEvent":9,"IssueCommentEvent":10,"PushEvent":65,"PullRequestReviewEvent":2,"PullRequestEvent":12,"CreateEvent":8}},"keywords":["carpentries-lab","carpentry","computing","data","data-management","english","helpwanted-list","lesson","novice","peer-reviewed","project-organisation","stable","version-control"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/pr-close-signal.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:22.918Z","updated_at":"2023-09-06T06:15:22.918Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/pr-close-signal.yaml","dependencies":[{"id":13378183380,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-comment.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:23.055Z","updated_at":"2023-09-06T06:15:23.055Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/pr-comment.yaml","dependencies":[{"id":13378187136,"package_name":"carpentries/actions/download-workflow-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378187140,"package_name":"carpentries/actions/check-valid-pr","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378187141,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378187142,"package_name":"carpentries/actions/comment-diff","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-post-remove-branch.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:24.185Z","updated_at":"2023-09-06T06:15:24.185Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/pr-post-remove-branch.yaml","dependencies":[{"id":13378187786,"package_name":"carpentries/actions/download-workflow-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378187787,"package_name":"carpentries/actions/remove-branch","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-preflight.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:24.567Z","updated_at":"2023-09-06T06:15:24.567Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/pr-preflight.yaml","dependencies":[{"id":13378190566,"package_name":"carpentries/actions/check-valid-pr","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190567,"package_name":"carpentries/actions/comment-diff","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-receive.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:25.081Z","updated_at":"2023-09-06T06:15:25.081Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/pr-receive.yaml","dependencies":[{"id":13378190739,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378190740,"package_name":"carpentries/actions/check-valid-pr","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190741,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378190742,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13378190743,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13378190744,"package_name":"carpentries/actions/setup-sandpaper","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190745,"package_name":"carpentries/actions/setup-lesson-deps","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/sandpaper-main.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:25.285Z","updated_at":"2023-09-06T06:15:25.285Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/sandpaper-main.yaml","dependencies":[{"id":13378190781,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378190782,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13378190783,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13378190784,"package_name":"carpentries/actions/setup-sandpaper","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190785,"package_name":"carpentries/actions/setup-lesson-deps","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/update-cache.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:25.421Z","updated_at":"2023-09-06T06:15:25.421Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/update-cache.yaml","dependencies":[{"id":13378190846,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378190847,"package_name":"carpentries/actions/check-valid-credentials","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190851,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13378190852,"package_name":"carpentries/actions/update-lockfile","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190853,"package_name":"carpentries/create-pull-request","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/update-workflows.yaml","sha":null,"kind":"manifest","created_at":"2023-09-06T06:15:25.695Z","updated_at":"2023-09-06T06:15:25.695Z","repository_link":"https://github.com/carpentries-lab/good-enough-practices/blob/main/.github/workflows/update-workflows.yaml","dependencies":[{"id":13378190886,"package_name":"carpentries/actions/check-valid-credentials","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190887,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13378190888,"package_name":"carpentries/actions/update-workflows","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false},{"id":13378190889,"package_name":"carpentries/create-pull-request","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]}],"score":6.410174881966167,"created_at":"2025-09-04T15:51:35.841Z","updated_at":"2025-10-07T08:23:17.150Z","avatar_url":"https://github.com/carpentries-lab.png","language":"TeX","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/carpentries","https://give.communityin.org/TheCarpentries"],"readme_doi_urls":["https://doi.org/10.1371/journal.pcbi.1005510"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["carpentries-incubator","pre-alpha","workflows","workflow-management","bioinformatics","metagenomics","nextflow","nf-core","bulk-rna-seq","rna-seq-analysis"],"project_url":"https://science.ecosyste.ms/api/v1/projects/59217","html_url":"https://science.ecosyste.ms/projects/59217","bibtex_url":"https://science.ecosyste.ms/projects/59217/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/59217/export.apalike"}