r_citation in cff_write().
When it is set to TRUE a R citation file
(inst/CITATION) would be generated/updated with the
information of the generated CITATION.cff file. No
backup copy would be created, for more control use
cff_write_citation() (#79).repository-code now also recognizes Codeberg as a valid repository
(#88).repository-code recognizes repositories regardless of
casing. It is still advised to use lower caps as a good practice for
R developers.CITATION file providing a doi, the
CITATION doi would be used as the main
CITATION.cff doi and the CRAN
doi would be added as an identifier.doi.cff_create(dependencies = TRUE) and the package dependency
is on CRAN, the CRAN doi would be used
for the dependency in the references key.commit from RemoteSha.cran_to_spdx dataset.cff_write() to add a new encoding
argument to make it work with different encodings, see
iconv().This is a major release with some notable changes. The change mainly
affects to non-core functions, hence the natural
workflow (cff_create() → cff_write() →
cff_validate()) shouldn’t be affected.
Now cffr implements a new class system for definitions.reference,
definitions.person
and definitions.entity
objects:
definitions.reference (e.g,
references) has class cff_ref_lst, cff and
individual elements (e.g preferred-citation or each member
of references) has class cff_ref, cff.definitions.person or
definitions.entity (e.g. authors,
contact) has class cff_pers_lst, cff and
individual elements (e.g publisher or each member of
authors) has class cff_pers, cff.This change allow to write specific S3 Methods and extend the capabilities of the package.
as_cff() S3 generic method (replacing
as.cff()): This method coerces R objects
to cff class format. Current methods provided are:
as_cff.Bibtex().as_cff.bibentry(), replacing
cff_parse_citation().as_cff.person(), similar to
as_cff_person() but only for person objects.
We recommend using as_cff_person() since it can coerce also
string representing authors in BibTeX markup
("{von Neumen}, James"), that can’t be captured properly
via methods.as_bibentry() method for a variety of classes
(character, list, NULL and
classes defined by cffr).as_cff_person() method.cff class:
as.data.frame.cff().as.person(), although only for
definitions.person or definitions.entity
(e.g. authors, contacts, editors,
publisher, etc.).head.cff(), tail.cff().toBibtex.cff().The API has been completely reviewed to provide more clarity on functions naming and to facilitate internal maintenance. This change only affects to non-core functions. Now each function does less things but does it better. The old API has been deprecated and it would warn when used, providing advice on the replacement function.
cff_to_bibtex() and
cff_extract_to_bibtex(): replaced by
as_bibentry() S3 generic.cff_parse_person() and
cff_parse_person_bibtex(): replaced by
as_cff_person() S3 generic.cff_parse_citation(): replaced by as_cff()
S3 generic.cff_from_bibtex(): replaced by
cff_read_bib() (for *.bib files) and
cff_read_bib_text() (for character strings).write_bib() and write_citation() :
replaced by cff_write_bib() and
cff_write_citation() respectively.path in cff() is also deprecated,
use cff_read() instead.cff_read() (that is designed to fit all supported file
types on a single entry point) and the new specific readers (that are
used under the hood by cff_read()), namely:
cff_read_cff_citation(),cff_read_description(),cff_read_citation()cff_read_bib().cff_modify() function for updating and modifying
cff objects easily.vignette("bibtex_cff", package = "cffr")) and consequently
changes in the mapping performed by as_bibtex()
cff_parse_citation():
cff_to_bibtex() and
cff_extract_to_bibtex() have been merged, the latter
(cff_extract_to_bibtex()) is now soft-deprecated.write_citation() that can generate a
inst/CITATION file from a cff object (#51).Additional authors of a R package can be now
included based on the role on the DESCRIPTION file, via the
parameter authors_roles (#49).
New message interface based on cli capabilities.
Now the (invisible) result of cff_validate()
includes the summary of errors (if any) as an attributes()
named "error", as
jsonvalidate::json_validate() does when
verbose = TRUE:
Be verbose? If
TRUE, then an attribute"errors"will list validation failures as a data.frame
Improvements in the extraction of
`date-release`.
cff_validate().cff_from_bibtex().preferred-citation is only produced when a
CITATION R file has been provided with the
package (#37).cff_read() function. This functionality was already
implemented on cff() but new function added in order to
provide clarity.master or
mainbranch.references field, using citation(auto = TRUE).
dependencies parameter on cff_create()
and cff_write().cff_parse_citation():
cff_parse_citation() extracts more information of
authors, based on the fields provided on the DESCRIPTION
file.cff_parse_citation() does a better job extracting
information from bibentry() /BibTeX and mapping it to
preferred-citation/references fields of CFF.cff_git_hook_install()cff_git_hook_remove()cff_extract_to_bibtex()cff_to_bibtex()cff_parse_person_bibtex()write_bib()lifecycle.pages on cff_parse_citation()
.gh_keywords parameter on cff_create()
/cff_write(). If TRUE, it would include GitHub
repo topics as keywords.keys parameter.cran_to_spdx.citation().preferred-citation key from
DESCRIPTION.cff_schema_definitions_reference() to
cff_schema_definitions_refs().repository key is supported.vignette("crosswalk", package = "cffr").cff_gha_update().