Releases: ESHackathon/CiteSource
Releases · ESHackathon/CiteSource
CiteSource 1.0.0
First stable release, following acceptance on CRAN.
Bug fixes
compare_sources()now honorsinclude_references: whenTRUE, the bibliographic columns are joined back onto the source/label/string indicator matrix, matching the behavior ofcount_unique(). Previously the argument was silently ignored and only indicator columns were returned.calculate_detailed_records(): the Total row'sDistinct Recordsnow respectslabels_to_include. It previously used the unfiltered input, making the Total inconsistent with the filtered per-source rows and overstating distinct records when labels were restricted.
Improvements
create_detailed_record_table()andcreate_precision_sensitivity_table()redesigned for readability: related columns are grouped under spanner headers, the contribution/uniqueness percentages have clearer labels, Precision and Recall are formatted as percentages, and the Total row is visually distinguished as a summary.
Documentation
- README now includes CRAN status and download badges.
Full Changelog: v0.2.1...v1.0.0
CiteSource 0.2.1 (CRAN)
CiteSource 0.2.1 — now on CRAN.
New features
- Incremental deduplication:
dedup_citations_add_sources()adds new citations to a previously deduplicated set and deduplicates across both, preserving prior automatic and manual merge decisions and the originalrecord_idsprovenance. Exposed in the Shiny app. - Deferred manual deduplication: run automatic dedup now and complete manual review later via
export_dedup_candidates()/reimport_dedup_candidates(), with amanual_dedup_completeflag inexport_csv()/reimport_csv(). - Shiny app: re-importing a deduplicated set shows a read-only source overview before adding more; the re-upload input accepts a candidate-pairs CSV and several files at once.
Bug fixes
reimport_csv()now reads all columns as character, matching the canonical types produced bydedup_citations().- Shiny app: the re-upload input no longer errors when more than one file is selected.
Documentation
- In-app User Guide and README updated to document incremental and deferred deduplication.
CiteSource 0.2.0
CiteSource 0.2.0
Breaking changes
- Requires R >= 4.1.0 (native pipe and
across()syntax used throughout).
New features
read_citations()now warns whencite_labelvalues are outside the standard
vocabulary (search,screened,final), since phase-analysis functions
depend on those exact strings.
Bug fixes
calculate_phase_records():n_distinct()called as a terminal pipe no
longer throws an error; fixed by replacing withsummarise() |> pull().calculate_initial_records()/calculate_detailed_records(): separator
regex inseparate_rows()changed from","to",\\s*"so sources with
spaces after commas are split correctly.generate_apa_reference(): NA DOI values no longer cause an error in
str_detect(); handled withcase_when(is.na(doi) ~ NA_character_, ...).- Shiny app —
summaryPrecTab:n_uniquewas referenced without therv$
prefix, causing a scope error; fixed. - Shiny app —
manual_dedup_dt:columnDefstargetsnow computed as
0-based integer indices rather than column name strings, matching the DT API. count_unique()/compare_sources(): added!is.na()guard alongside
!= ""so NA values incite_source,cite_label,cite_stringno longer
cause filter or pivot errors.- Shiny app —
rv$pairs_to_check[,1:36]subsetting removed; full data frame
passed directly.
Performance
generate_apa_citation()andgenerate_apa_reference(): allrowwise()
calls replaced withpurrr::map2_chr()andpurrr::pmap_chr(), avoiding
per-row dplyr group overhead.- Shiny app:
compare_sources()is now computed once in a shared reactive and
consumed by both the heatmap and upset plot, halving the work on each render. - Shiny app: multi-value column filtering replaced from per-row
sapply+
str_splitto vectorizedstrsplit+vapplyvia a file-scope helper
.filter_multivalue_col.
CRAN / dependency changes
- ASySD deduplication functions vendored directly into
R/asys_dedup.R
(GPL-3, with attribution to CAMARADES / Kaitlyn Hair); the GitHub-only
ASySDpackage is no longer a dependency. Remotes:field removed from DESCRIPTION.- New imports:
cli,igraph,parallelly,RecordLinkage,utf8. - Removed from imports:
ASySD,plogr. - Added to Suggests:
bslib. .onLoadside effects removed;shiny.maxRequestSizeis no longer set
at package load time.%>%re-export removed; use the native|>pipe.
Deprecations
record_counts()→calculate_initial_records()calculate_record_counts()→calculate_detailed_records()calculate_phase_count()→calculate_phase_records()record_counts_table()→create_initial_record_table()record_summary_table()→create_summary_record_table()precision_sensitivity_table()→create_phase_record_table()
All deprecated functions remain callable with a .Deprecated() warning
pointing to their replacements.
Internal
- Google Analytics injection simplified: URL-path reactive detection replaced
by a file-scopeCITESOURCE_ENVenvironment variable check evaluated once at
app startup.