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 main
branch.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()
.