cffr 1.0.0
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.
Major changes
Classes and methods
Now cffr implements a new class system for definitions.reference
, definitions.person
and definitions.entity
objects:
- List of
definitions.reference
(e.g,references)
has classcff_ref_lst, cff
and individual elements (e.gpreferred-citation
or each
member ofreferences
) has classcff_ref, cff
. - List of
definitions.person
ordefinitions.entity
(e.g.authors
,contact
) has classcff_pers_lst, cff
and individual elements (e.gpublisher
or each member ofauthors
) has classcff_pers, cff
.
This change allow to write specific S3
Methods and extend the capabilities of the
package.
- New
as_cff()
S3 generic method (replacingas.cff()
): This method coerces
R objects tocff
class format. Current methods provided are:as_cff.Bibtex()
.as_cff.bibentry()
, replacing cff_parse_citation().as_cff.person()
, similar toas_cff_person()
but only forperson
objects. We recommend usingas_cff_person()
since it can coerce also string representing authors in BibTeX markup ("{von Neumen}, James"
), that can't be captured properly via methods.
- New
as_bibentry()
method for a variety of classes (character
,list
,
NULL
and classes defined by cffr). - New
as_cff_person()
method. - The following base and utils methods supports now
cff
class:as.data.frame.cff()
.as.person()
, although only fordefinitions.person
or
definitions.entity
(e.g.authors
,contacts
,editors
,
publisher,
etc.).head.cff()
,tail.cff()
.toBibtex.cff()
.
API
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.
Deprecation
cff_to_bibtex()
andcff_extract_to_bibtex()
: replaced byas_bibentry()
S3 generic.cff_parse_person()
andcff_parse_person_bibtex()
: replaced by
as_cff_person()
S3 generic.cff_parse_citation()
: replaced byas_cff()
S3 generic.cff_from_bibtex()
: replaced bycff_read_bib()
(for*.bib
files) and
cff_read_bib_text()
(for character strings).write_bib()
andwrite_citation()
: replaced bycff_write_bib()
and
cff_write_citation()
respectively.- Argument
path
incff()
is also deprecated, usecff_read()
instead.
New capabilities
- Now reading from external files is performed exclusively by
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 bycff_read()
), namely:cff_read_cff_citation()
,cff_read_description()
,cff_read_citation()
cff_read_bib()
.
- New
cff_modify()
function for updating and modifyingcff
objects easily.
Other changes
- Minimum R version required now is 4.0.0.
- Update of BibTeX crosswalk (see
vignette("bibtex_cff", package = "cffr")
) and consequently changes in the mapping performed byas_bibtex()
cff_parse_citation()
:
What's Changed
- Update lint.yaml by @dieghernan in #57
- Bump actions/checkout from 3 to 4 by @dependabot in #59
- Bump github/codeql-action from 2 to 3 by @dependabot in #60
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #61
- Overhaul of cff-bibtex conversion system by @dieghernan in #63
- New API by @dieghernan in #65
- Refactor internal code by @dieghernan in #67
- Doc review by @dieghernan in #68
New Contributors
- @dependabot made their first contribution in #59
Full Changelog: v0.5.0...v1.0.0