Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
1ff003f
Merge pull request #241 from ESHackathon/main
TNRiley Nov 20, 2025
ea81bfe
Add helper functions for metadata column expansion
TNRiley Nov 20, 2025
8f5df6e
Refactor count_sources() to use expand_single_metadata_column()
TNRiley Nov 20, 2025
0dd88ae
Refactor count_unique() to use expand_metadata_columns()
TNRiley Nov 20, 2025
0dcd11a
Refactor compare_sources() to use expand_single_metadata_column()
TNRiley Nov 20, 2025
7bfeb1c
Refactor functions in new_count_and_table.R to use helper functions
TNRiley Nov 20, 2025
f8469c3
Refactor calculate_phase_count() to use expand_metadata_columns()
TNRiley Nov 20, 2025
89b799d
Refactor export_csv() to use expand_single_metadata_column()
TNRiley Nov 20, 2025
ea24a57
Fix Shiny deduplication message calculation and improve messaging
TNRiley Nov 20, 2025
9b1ed4c
Refactor app.R to use metadata expansion helper functions
TNRiley Nov 20, 2025
e60b868
Refactor app2.R to use metadata expansion helper functions
TNRiley Nov 20, 2025
7434007
Use CiteSource::: to access internal helper functions in Shiny apps
TNRiley Nov 20, 2025
9c1a3f5
Filter out 'unknown' source from detailed record table
TNRiley Nov 20, 2025
f74cc6a
feat: enable manual field value selection in Card View deduplication
TNRiley Dec 11, 2025
c174fcf
removed test metadata completeness feature maybe future dev
TNRiley Dec 11, 2025
5d2c396
removed "got to pair #" function in card view options
TNRiley Dec 11, 2025
6e94404
added information on how deduplication works
TNRiley Dec 11, 2025
66d8532
Custom deduplication (R/dedup.R, R/dedup_custom.R):
TNRiley Feb 17, 2026
4efc795
Sync with TempCollab/main: Shiny UI overhaul, ASySD vendor, renv, vig…
TNRiley May 13, 2026
b7077ec
Documentation
actions-user May 13, 2026
665a765
Fix _pkgdown.yml: remove deleted vignettes, add new one, fix URL scheme
TNRiley May 13, 2026
42c20e8
Remove deprecated functions, fix .Rbuildignore, fix pkgdown build
TNRiley May 13, 2026
0233ecc
Documentation
actions-user May 13, 2026
b70e7b6
Fix magrittr dot placeholder incompatibility with native pipe
TNRiley May 13, 2026
5afde83
Split new_count_and_table.R into count.R and tables.R
TNRiley May 13, 2026
e1c673e
Documentation
actions-user May 13, 2026
b520410
Fix CRAN check warnings and CI workflow error
TNRiley May 13, 2026
e98de1a
Documentation
actions-user May 13, 2026
12e6b5b
Update cran-comments.md with clean check results and vendored code note
TNRiley May 13, 2026
c2ffc88
Merge branch 'dev' into Trevor-Patch
TNRiley May 13, 2026
de38f1a
Merge pull request #248 from ESHackathon/Trevor-Patch
TNRiley May 13, 2026
37c9aec
Fix ambiguous if/else parse in app.R tibble construction
TNRiley May 13, 2026
2f43f9c
Merge pull request #249 from ESHackathon/trevor-patch-sync
TNRiley May 13, 2026
9ba25de
Fix two app.R parse errors preventing Shiny startup
TNRiley May 13, 2026
3a3ff7e
Merge pull request #250 from ESHackathon/fix-app-parse
TNRiley May 13, 2026
e2eda8c
Add DESCRIPTION to Shiny app dir so rsconnect includes CiteSource
TNRiley May 13, 2026
0f9e6f1
Merge pull request #251 from ESHackathon/fix-citesource-dep
TNRiley May 13, 2026
7ba1fba
Fix multi-line @importFrom tags for roxygen2 8.0.0 compatibility
TNRiley May 13, 2026
84f321c
Merge pull request #252 from ESHackathon/fix-citesource-dep
TNRiley May 13, 2026
ec4cde9
Install CiteSource via pak in setup step so rsconnect detects it
TNRiley May 13, 2026
360d6dc
Merge pull request #253 from ESHackathon/fix-citesource-dep
TNRiley May 14, 2026
f7766d9
Use renv::install for CiteSource so rsconnect detects it as GitHub so…
TNRiley May 14, 2026
43e9cfb
Merge pull request #254 from ESHackathon/fix-citesource-dep
TNRiley May 14, 2026
30b6603
Fix workflow conditional syntax for GitHub Pages deploy step
TNRiley May 14, 2026
fafd647
Merge pull request #255 from ESHackathon/fix-citesource-dep
TNRiley May 14, 2026
73bdb3a
updates for CRAN submission
TNRiley May 14, 2026
f4018f4
Prepare for CRAN submission: fix DESCRIPTION, reduce tarball size
TNRiley May 14, 2026
9ab814d
Documentation
actions-user May 15, 2026
0a2dd6a
Fix CRAN check notes from win-devel review
TNRiley May 15, 2026
e01038f
Merge branch 'dev' of https://github.com/ESHackathon/CiteSource into dev
TNRiley May 15, 2026
d33896d
Documentation
actions-user May 15, 2026
ad97566
description update - prebuilt caught in spellcheck so removed
TNRiley May 15, 2026
8c3cd76
Merge branch 'dev' of https://github.com/ESHackathon/CiteSource into dev
TNRiley May 15, 2026
3c48992
update gitignore
TNRiley May 15, 2026
a003088
Updated CRAN comments with win-devel result
TNRiley May 15, 2026
febbdd8
update page URL for landing page and vignettes
TNRiley May 15, 2026
05abbea
Fix progress bar crash when importing 100+ files in Shiny
TNRiley May 18, 2026
f4ac05f
Fix integer/double type error in cli progress bar total
TNRiley May 18, 2026
cd08b9a
Fix DESCRIPTION title formatting and quote package names
TNRiley May 20, 2026
7e0caf9
Address CRAN reviewer feedback on docs and file writing
TNRiley May 20, 2026
c1e0c65
Update build and submission infrastructure for resubmission
TNRiley May 20, 2026
728bc0a
Add Win-devel check results to cran-comments
TNRiley May 20, 2026
6b2a4bd
Fix tidyselect deprecation warning in generate_apa_reference
TNRiley May 21, 2026
99521e6
Incremental merge in dedup_citations_add_manual
TNRiley May 21, 2026
6388792
feat: add field selection presets to CSV export
TNRiley May 27, 2026
c502d73
Documentation
actions-user May 27, 2026
89dda65
fix: improve export tab UI — field labels, required markers, cite pan…
TNRiley May 27, 2026
0019839
fix: rename vignette to .Rmd and fix manual workflow deploy condition
TNRiley May 27, 2026
3b0d181
feat: add dedup_log() and expose auto_pairs from ASySD
TNRiley May 28, 2026
40a869c
feat: shiny dedup log export, expanded manual dedup fields, fix custo…
TNRiley May 28, 2026
e5438e8
chore: add guide/ and CLAUDE.md to .gitignore, update CRAN-SUBMISSION
TNRiley May 28, 2026
df9d65d
fix: align record_level_table DT columns for sources and labels
TNRiley May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .Rbuildignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
^\.claude
^renv$
^renv\.lock$
^.*\.Rproj$
Expand All @@ -8,4 +9,14 @@
^_pkgdown.yml$
^cran-comments\.md$
^\.httr-oauth$
^docs$
^CITATION\.cff$
^REQUIREMENTS.*$
^vignettes/working_example_data$
^vignettes/benchmark_data$
^vignettes/vignette_exports$
^vignettes/new_stage_data$
^vignettes/new_benchmark_data$
^vignettes/topic_data$
^vignettes/valid_data$
^tests/shinytest$
^CRAN-SUBMISSION$
2 changes: 1 addition & 1 deletion .github/workflows/document-and-deploy-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)"

- name: Deploy to GitHub pages 🚀
if: ${{ github.ref_name }} == 'main' || ${{ github.ref_name }} == 'master'
if: ${{ github.ref_name == 'main' || github.ref_name == 'master' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
clean: true
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/document-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up R Dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: devtools, plogr, roxygen2, remotes, rsconnect, pkgdown
extra-packages: devtools, roxygen2, remotes, rsconnect, pkgdown

- name: Create documentation
run: |
Expand All @@ -36,28 +36,28 @@ jobs:
roxygen2::roxygenise();
try(devtools::build_manual())
"

- name: commit
run: |
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
git add -f man/\* NAMESPACE
git commit -m 'Documentation' || echo "No changes to commit"
git push origin || echo "No changes to commit"

- name: Deploy latest from dev
if: github.ref == 'refs/heads/dev'
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
RENV_CONFIG_SNAPSHOT_VALIDATE: "false"
run: |
R -e "
remotes::install_github('ESHackathon/CiteSource', force = TRUE);
rsconnect::setAccountInfo(name=${{secrets.SHINY_LUKAS_ACCOUNT}}, token=${{secrets.SHINY_LUKAS_TOKEN}}, secret=${{secrets.SHINY_LUKAS_SECRET}});
renv::install('ESHackathon/CiteSource@dev');
rsconnect::setAccountInfo(name=${{secrets.SHINY_LUKAS_ACCOUNT}}, token=${{secrets.SHINY_LUKAS_TOKEN}}, secret=${{secrets.SHINY_LUKAS_SECRET}});
rsconnect::deployApp(
appName = 'CiteSource_latest',
appDir = './inst/shiny-app/CiteSource',
forceUpdate = TRUE)"
forceUpdate = TRUE)"

- name: Deploy stable version from main
if: github.ref == 'refs/heads/main'
Expand All @@ -66,25 +66,25 @@ jobs:
RENV_CONFIG_SNAPSHOT_VALIDATE: "false"
run: |
R -e "
remotes::install_github('ESHackathon/CiteSource', force = TRUE);
rsconnect::setAccountInfo(name=${{secrets.SHINY_LUKAS_ACCOUNT}}, token=${{secrets.SHINY_LUKAS_TOKEN}}, secret=${{secrets.SHINY_LUKAS_SECRET}});
renv::install('ESHackathon/CiteSource');
rsconnect::setAccountInfo(name=${{secrets.SHINY_LUKAS_ACCOUNT}}, token=${{secrets.SHINY_LUKAS_TOKEN}}, secret=${{secrets.SHINY_LUKAS_SECRET}});
rsconnect::deployApp(
appName = 'CiteSource',
appDir = './inst/shiny-app/CiteSource',
forceUpdate = TRUE)"
forceUpdate = TRUE)"

- name: Create pkgdown
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
run: |
R -e "
if (!require(CiteSource)) remotes::install_github('ESHackathon/CiteSource', force = TRUE);
devtools::install(dependencies = FALSE, upgrade = FALSE);
pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)"

- name: Deploy to GitHub pages 🚀
if: ${{ github.ref_name }} == 'main'
if: ${{ github.ref_name == 'main' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
clean: true
branch: gh-pages
folder: docs
folder: docs
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
.RData
.Ruserdata
.DS_Store
.claude/
guide/
CLAUDE.md
inst/doc
.httr-oauth
CITESOURCE_V020_CHANGES.md
custom_dedup_notes.md
3 changes: 2 additions & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ authors:
given-names: "Matthew J."
orcid: "https://orcid.org/0000-0001-8426-6495"
title: "CiteSource: An R Package for Data-Driven Search Strategy Development and Enhanced Evidence Synthesis Reporting"
version: 0.1.1
version: 0.2.0
date-released: 2026-05-13
doi: TBD
url: "https://github.com/ESHackathon/CiteSource"
preferred-citation:
Expand Down
3 changes: 3 additions & 0 deletions CRAN-SUBMISSION
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Version: 0.2.0
Date: 2026-05-20 13:12:58 UTC
SHA: 728bc0a1274a64087c45193e90721cf19d4905d0
56 changes: 28 additions & 28 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Package: CiteSource
Title: An R package for data-driven search strategy development and enhanced evidence synthesis reporting
Version: 0.1.1
Date: 2023-06-22
Title: Data-Driven Search Strategy Development and Evidence Synthesis Reporting
Version: 0.2.0
Date: 2026-05-11
Authors@R: c(
person("Trevor", "Riley", , "trevor.riley@noaa.gov", role = c("aut", "cre"),
person("Trevor", "Riley", , "tnriley@gmail.com", role = c("aut", "cre"),
comment = c(ORCID = "0000-0002-6834-9802")),
person("Kaitlyn", "Hair", , "kaitlyn.hair@ed.ac.uk", role = "aut",
comment = c(ORCID = "0000-0003-0180-7343")),
Expand All @@ -18,58 +18,58 @@ Authors@R: c(
person("Neal", "Haddaway", , "nealhaddaway@gmail.com", role = "aut",
comment = c(ORCID = "0000-0003-3902-2234")),
person("Martin", "Westgate", role = "cph", comment = "Author of included synthesisr fragments"),
person("Eliza", "Grames", role = "cph", comment = "Author of included synthesisr fragments")
person("Eliza", "Grames", role = "cph", comment = "Author of included synthesisr fragments"),
person("Kaitlyn", "Hair", role = "cph", comment = "Author of included ASySD deduplication code"),
person("CAMARADES Group", role = "cph", comment = "Authors of ASySD (github.com/camaradesuk/ASySD)")
)
Description: This package was developed in order to provide researchers the ability to
examine the utility and efficacy of literature resources and search
methodologies. The package provides users with the ability to deduplicate
references while maintaining customizable metadata. The resulting data
can be analyzed using predeveloped plots and tables, including a summary
table. Users are also able to export and reimport data in .ris, and csv.
files. The package includes a shiny application for interactive use.
Description: Tools for data-driven search strategy development and evidence
synthesis reporting. Researchers can deduplicate references while
maintaining customizable metadata, analyze results using
plots and tables, and import or export data in 'RIS' and 'CSV' formats.
An interactive 'shiny' application is included for exploratory use.
License: GPL (>= 3)
URL: https://www.eshackathon.org/CiteSource
BugReports: https://github.com/ESHackathon/CiteSource/issues
Imports:
ASySD (>= 0.3.0),
Imports:
dplyr,
DT,
forcats,
ggnewscale,
ggplot2,
glue,
gt,
progress,
igraph,
parallelly,
purrr,
RecordLinkage,
rlang,
scales,
stringr,
tibble,
tidyr,
tidyselect,
UpSetR
Suggests:
UpSetR,
utf8
Suggests:
bslib,
htmltools,
jsonlite,
knitr,
networkD3,
plotly,
progressr,
rmarkdown,
shiny,
shinyalert,
shinyjs,
progressr,
shinybusy,
shinyjs,
shinyWidgets,
testthat (>= 3.0.0),
plogr
VignetteBuilder:
testthat (>= 3.0.0)
VignetteBuilder:
knitr
Config/testthat/edition: 3
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Depends:
R (>= 3.5.0)
Remotes:
camaradesuk/ASySD,
plogr=url::https://cran.r-project.org/src/contrib/Archive/plogr/plogr_0.2.0.tar.gz
Depends:
R (>= 4.1.0)
Config/roxygen2/version: 8.0.0
85 changes: 75 additions & 10 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Generated by roxygen2: do not edit by hand

S3method(as.data.frame,bibliography)
export("%>%")
export(calculate_detailed_records)
export(calculate_initial_records)
export(calculate_phase_count)
Expand All @@ -15,37 +14,103 @@ export(create_initial_record_table)
export(create_precision_sensitivity_table)
export(dedup_citations)
export(dedup_citations_add_manual)
export(dedup_log)
export(export_bib)
export(export_csv)
export(export_ris)
export(plot_contributions)
export(plot_source_overlap_heatmap)
export(plot_source_overlap_upset)
export(precision_sensitivity_table)
export(read_citations)
export(record_counts)
export(record_counts_table)
export(record_level_table)
export(record_summary_table)
export(reimport_csv)
export(reimport_ris)
export(runShiny)
export(run_shiny)
import(dplyr)
import(gt)
import(rlang)
import(scales)
import(tidyr)
importFrom(dplyr,"%>%")
importFrom(RecordLinkage,compare.dedup)
importFrom(RecordLinkage,jarowinkler)
importFrom(dplyr,across)
importFrom(dplyr,all_of)
importFrom(dplyr,anti_join)
importFrom(dplyr,any_of)
importFrom(dplyr,arrange)
importFrom(dplyr,bind_cols)
importFrom(dplyr,bind_rows)
importFrom(dplyr,case_when)
importFrom(dplyr,coalesce)
importFrom(dplyr,desc)
importFrom(dplyr,distinct)
importFrom(dplyr,everything)
importFrom(dplyr,filter)
importFrom(dplyr,first)
importFrom(dplyr,group_by)
importFrom(dplyr,if_else)
importFrom(dplyr,last_col)
importFrom(dplyr,left_join)
importFrom(dplyr,matches)
importFrom(dplyr,mutate)
importFrom(dplyr,n)
importFrom(dplyr,n_distinct)
importFrom(dplyr,na_if)
importFrom(dplyr,pull)
importFrom(dplyr,relocate)
importFrom(dplyr,rename)
importFrom(dplyr,rename_with)
importFrom(dplyr,right_join)
importFrom(dplyr,row_number)
importFrom(dplyr,rowwise)
importFrom(dplyr,select)
importFrom(dplyr,slice_head)
importFrom(dplyr,starts_with)
importFrom(dplyr,summarise)
importFrom(dplyr,transmute)
importFrom(dplyr,ungroup)
importFrom(gt,cell_borders)
importFrom(gt,cell_text)
importFrom(gt,cells_body)
importFrom(gt,cells_column_labels)
importFrom(gt,cells_column_spanners)
importFrom(gt,cols_align)
importFrom(gt,cols_label)
importFrom(gt,fmt_number)
importFrom(gt,fmt_percent)
importFrom(gt,gt)
importFrom(gt,md)
importFrom(gt,px)
importFrom(gt,sub_missing)
importFrom(gt,tab_footnote)
importFrom(gt,tab_header)
importFrom(gt,tab_options)
importFrom(gt,tab_source_note)
importFrom(gt,tab_spanner_delim)
importFrom(gt,tab_style)
importFrom(igraph,components)
importFrom(igraph,graph_from_data_frame)
importFrom(parallelly,availableCores)
importFrom(rlang,":=")
importFrom(rlang,.data)
importFrom(rlang,as_name)
importFrom(rlang,enquo)
importFrom(rlang,inform)
importFrom(rlang,is_installed)
importFrom(rlang,quo_is_null)
importFrom(rlang,sym)
importFrom(scales,percent)
importFrom(scales,trans_format)
importFrom(stats,na.omit)
importFrom(stats,xtabs)
importFrom(tidyr,fill)
importFrom(tidyr,pivot_longer)
importFrom(tidyr,pivot_wider)
importFrom(tidyr,replace_na)
importFrom(tidyr,separate)
importFrom(tidyr,separate_rows)
importFrom(tidyr,unite)
importFrom(tidyselect,where)
importFrom(utf8,utf8_encode)
importFrom(utils,head)
importFrom(utils,menu)
importFrom(utils,read.table)
importFrom(utils,tail)
importFrom(utils,write.table)
Loading
Loading