cffr (development version)
-
cff_gha_update()action now runs inubuntu-latestby default to save GitHub Actions quota (#90, thanks to @Pakillo). - Improve comments detection and parsing in
as_cff_person()function family.
cffr 1.2.0
CRAN release: 2025-01-25
- New parameter
r_citationincff_write(). When it is set toTRUEa R citation file (inst/CITATION) would be generated/updated with the information of the generatedCITATION.cfffile. No backup copy would be created, for more control usecff_write_citation()(#79). -
repository-codenow also recognizes Codeberg as a valid repository (#88). -
repository-coderecognizes repositories regardless of casing. It is still advised to use lower caps as a good practice for R developers.
cffr 1.1.0
CRAN release: 2024-07-23
- Now cffr adds automatically dois to packages on CRAN (e.g. https://doi.org/10.32614/CRAN.package.cffr):
- If the package has a
CITATIONfile providing a doi, theCITATIONdoi would be used as the mainCITATION.cffdoiand the CRAN doi would be added as anidentifier. - Otherwise, CRAN doi would be used as
doi. - When extracting dependencies (e.g
cff_create(dependencies = TRUE)and the package dependency is on CRAN, the CRAN doi would be used for the dependency in thereferenceskey.
- If the package has a
- Extract
commitfromRemoteSha. - Update
cran_to_spdxdataset.
cffr 1.0.1
CRAN release: 2024-04-09
- Update
cff_write()to add a newencodingargument to make it work with different encodings, seeiconv(). - Fix NOTEs due to empty lines in docs.
cffr 1.0.0
CRAN release: 2024-03-12
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, cffand individual elements (e.gpreferred-citationor each member ofreferences) has classcff_ref, cff. - List of
definitions.personordefinitions.entity(e.g.authors,contact) has classcff_pers_lst, cffand individual elements (e.gpublisheror 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 tocffclass format. Current methods provided are:-
as_cff.Bibtex(). -
as_cff.bibentry(), replacingcff_parse_citation(). -
as_cff.person(), similar toas_cff_person()but only forpersonobjects. 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,NULLand classes defined by cffr). - New
as_cff_person()method. - The following base and utils methods supports now
cffclass:-
as.data.frame.cff(). -
as.person(), although only fordefinitions.personordefinitions.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 byas_cff_person()S3 generic. -
cff_parse_citation(): replaced byas_cff()S3 generic. -
cff_from_bibtex(): replaced bycff_read_bib()(for*.bibfiles) andcff_read_bib_text()(for character strings). -
write_bib()andwrite_citation(): replaced bycff_write_bib()andcff_write_citation()respectively. - Argument
pathincff()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: - New
cff_modify()function for updating and modifyingcffobjects 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():- @inbook and @book gains a new value on CFF when series is provided: collection-type: book-series.
- Can handle BibLaTeX @inbook, that differs significantly from BibTeX @inbook.
cffr 0.5.0
CRAN release: 2023-05-05
Lifecycle
- Function
cff_to_bibtex()andcff_extract_to_bibtex()have been merged, the latter (cff_extract_to_bibtex()) is now soft-deprecated.
New features
- New function
write_citation()that can generate a inst/CITATION file from acffobject (#51).
Enhancements
Additional authors of a R package can be now included based on the role on the
DESCRIPTIONfile, via the parameterauthors_roles(#49).New message interface based on cli capabilities.
-
Now the (invisible) result of
cff_validate()includes the summary of errors (if any) as anattributes()named"error", asjsonvalidate::json_validate()does whenverbose = TRUE:Be verbose? If
TRUE, then an attribute"errors"will list validation failures as a data.frame Improvements in the extraction of
`date-release`.
cffr 0.4.1
CRAN release: 2023-01-30
- Replace crayon dependency for cli (#46).
- Improvements on the performance of
cff_validate().
cffr 0.4.0
CRAN release: 2022-11-17
- Fix typo (#40) by @dpprdan
- Add new function
cff_from_bibtex(). - Consistent behavior on dependency urls when RSPM is the default repo (i.e. on GitHub Actions or RStudio Cloud).
cffr 0.3.0
CRAN release: 2022-09-23
-
preferred-citationis only produced when aCITATIONR file has been provided with the package (#37). - Improve email handling on authors.
- Add
cff_read()function. This functionality was already implemented oncff()but new function added in order to provide clarity.
cffr 0.2.2
CRAN release: 2022-04-08
- cffr now uses a local copy of the schema.json for validating. (#33).
cffr 0.2.1
CRAN release: 2022-01-16
- GitHub Action now runs only on
masterormainbranch. - Better handling of references
cffr 0.2.0
CRAN release: 2022-01-04
- Now cffr extracts also information of the package dependencies and adds the main citation of the dependencies to the
referencesfield, usingcitation(auto = TRUE).- New
dependenciesparameter oncff_create()andcff_write().
- New
- Other improvements on
cff_parse_citation():-
cff_parse_citation()extracts more information of authors, based on the fields provided on theDESCRIPTIONfile. -
cff_parse_citation()does a better job extracting information frombibentry()/BibTeX and mapping it topreferred-citation/referencesfields of CFF.
-
- Add new functions for working with git pre-commit hooks
:
- New BibTeX functions:
- Add a new dependency:
lifecycle.
cffr 0.1.1
CRAN release: 2021-11-11
- Accepted on JOSS
- Include
pagesoncff_parse_citation(). - New
gh_keywordsparameter oncff_create()/cff_write(). IfTRUE, it would include GitHub repo topics as keywords.
cffr 0.0.2
- cffr is part now of rOpenSci.
- Update on docs and README.
- Add fuzzy match on
keysparameter. - New dataset:
cran_to_spdx. - Add DOI https://doi.org/10.5281/zenodo.5509766
- Citation of installed packages extracted using
citation(). - Auto-generating
preferred-citationkey fromDESCRIPTION. - Rename
cff_schema_definitions_reference()tocff_schema_definitions_refs(). -
repositorykey is supported. - Added vignette:
vignette("crosswalk", package = "cffr"). - Add support to Bioconductor packages.
- New function:
cff_gha_update().
