From d18cccad631a5941c40e98f598125c3ad31e1a0e Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Tue, 8 Feb 2022 12:56:06 +1000 Subject: [PATCH 01/22] update Description date, polish NEWS.md, and update cran-comments --- DESCRIPTION | 2 +- NEWS.md | 8 +++++--- cran-comments.md | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 56f714af..089691df 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: greta Type: Package Title: Simple and Scalable Statistical Modelling in R Version: 0.4.0 -Date: 2021-11-26 +Date: 2022-02-08 Authors@R: c( person("Nick", "Golding", role = c("aut"), diff --git a/NEWS.md b/NEWS.md index 77620b9c..608ec881 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,6 @@ -# greta 0.4.0 (2021-11-26) +# greta 0.4.0 (2022-02-08) + +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. There are many internal changes made to the package, around installation and checking Python modules, using new testing methods like snapshotting, and overhauling the installation helper and suggestions for installing Python modules, which has long been a source of friction for users. We are hopeful that the new `install_greta_deps()` function will help ensure Python dependencies are installed correctly. In a future release we will switch to using TensorFlow 2.6 or higher, ensure `greta` works with Apple computers with an M1 chip ## Fixes: @@ -34,12 +36,12 @@ * `dirichlet()` now returns a variable (rather than an operation) greta array, and the graphs created by `lkj_correlation()` and `wishart()` are now simpler as cholesky-shaped variables are now available internally. -* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). - * Adds helper functions for helping installation get to "clean slate" (#443) ## Features: +* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environemnt, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". + * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. * A `simulate()` method for greta models is now also provided, to simulate the values of all greta arrays in a model from their priors. diff --git a/cran-comments.md b/cran-comments.md index d1f7b843..bb4f041b 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,6 +1,6 @@ ## Test environments -* local R installation, R 4.1.1 -* ubuntu 16.04 (on travis-ci), R 4.1.1 +* local R installation, R 4.1.2 +* ubuntu 16.04 (on travis-ci), R 4.1.2 * win-builder (devel) ## R CMD check results From b3f55fee6a63c302bc975b2848f15874f320d85f Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Wed, 9 Feb 2022 14:07:14 +1000 Subject: [PATCH 02/22] A bit more polish for NEWS, change to 0.4.0.9000 --- DESCRIPTION | 4 ++-- NEWS.md | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 089691df..1cba4f7e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: greta Type: Package Title: Simple and Scalable Statistical Modelling in R -Version: 0.4.0 -Date: 2022-02-08 +Version: 0.4.0.9000 +Date: 2022-02-09 Authors@R: c( person("Nick", "Golding", role = c("aut"), diff --git a/NEWS.md b/NEWS.md index 608ec881..3921127e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,12 @@ -# greta 0.4.0 (2022-02-08) +# greta 0.4.0.9000 (2022-02-09) -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. There are many internal changes made to the package, around installation and checking Python modules, using new testing methods like snapshotting, and overhauling the installation helper and suggestions for installing Python modules, which has long been a source of friction for users. We are hopeful that the new `install_greta_deps()` function will help ensure Python dependencies are installed correctly. In a future release we will switch to using TensorFlow 2.6 or higher, ensure `greta` works with Apple computers with an M1 chip +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. + +There are many internal changes made to the package that impact installation, erorr printing, and testing. We have overhauled the installation checking process, and created a new helper function, `install_greta_deps()`, which helps ensure Python dependencies are installed correctly. We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. + +In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. + +We note that we have technically "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. ## Fixes: @@ -8,17 +14,16 @@ This release presents a variety of improvements over the past 2 years. We are no * head and tail S3 methods for `greta_array` are now consistent with head and tail methods for R versions 3 and 4 ([#384](https://github.com/greta-dev/greta/issues/384)). -* `greta_mcmc_list` objects (returned by `mcmc()`) are now no longer modified by operations (like code::gelman.diag()). +* `greta_mcmc_list` objects (returned by `mcmc()`) are now no longer modified by operations (like `coda::gelman.diag()`). * joint distributions of uniform variables now have the correct constraints when sampling (#377). * array-scalar dispatch with 3D arrays is now less buggy (#298). -* greta now provides R versions of all of R's primitive functions (I think), to prevent them from silently not executing (#317). +* `greta` now provides R versions of all of R's primitive functions (I think), to prevent them from silently not executing (#317). * Uses `Sys.unsetenv("RETICULATE_PYTHON")` in `.onload` on package startup, - to prevent an issue introduced with the latest version of RStudio where they - do not find the current version of RStudio. See [#444](https://github.com/greta-dev/greta/issues/444) for more details. + to prevent an issue introduced with the "ghost orchid" version of RStudio where they do not find the current version of RStudio. See [#444](https://github.com/greta-dev/greta/issues/444) for more details. * Internal change to code to ensure `future` continues to support parallelisation of chains. See [#447](https://github.com/greta-dev/greta/issues/447) for more details. @@ -32,15 +37,15 @@ This release presents a variety of improvements over the past 2 years. We are no * `calculate()` now accepts multiple greta arrays for which to calculate values, via the `...` argument. As a consequence any other arguments must now be named. -* a number of optimiser methods are now deprecated, since they will be unavailable when greta moves to using TensorFlow v2.0: `powell()`, `cg()`, `newton_cg()`, `l_bfgs_b()`, `tnc()`, `cobyla()`, and `slsqp()`. +* A number of optimiser methods are now deprecated, since they will be unavailable when greta moves to using TensorFlow v2.0: `powell()`, `cg()`, `newton_cg()`, `l_bfgs_b()`, `tnc()`, `cobyla()`, and `slsqp()`. * `dirichlet()` now returns a variable (rather than an operation) greta array, and the graphs created by `lkj_correlation()` and `wishart()` are now simpler as cholesky-shaped variables are now available internally. -* Adds helper functions for helping installation get to "clean slate" (#443) +* Adds the `reinstall_greta_env()`, `reinstall_miniconda()`, `remove_greta_env()`, and `remove_miniconda()` helper functions for helping installation get to "clean slate" (#443). ## Features: -* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environemnt, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". +* NEw `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. @@ -50,7 +55,7 @@ This release presents a variety of improvements over the past 2 years. We are no * There are three new variable constructor functions: `cholesky_variable()`, `simplex_variable()`, and `ordered_variable()`, for variables with these constraints but no probability distribution. -* a new function `chol2symm()` - the inverse of `chol()`. +* New `chol2symm()` is the inverse of `chol()`. * `mcmc()`, `stashed_samples()`, and `calculate()` now return objects of class `greta_mcmc_list` which inherit from `coda`'s `mcmc.list` class, but enable custom greta methods for manipulating mcmc outputs, including a `window()` function. From f4619dfd504ae0eb42d7d58b9e90609fc3904081 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Thu, 17 Feb 2022 17:28:52 +1000 Subject: [PATCH 03/22] further proof reading and blogging on NEWS.md --- NEWS.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 3921127e..443db8a8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,12 +1,75 @@ # greta 0.4.0.9000 (2022-02-09) -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. +## Summary -There are many internal changes made to the package that impact installation, erorr printing, and testing. We have overhauled the installation checking process, and created a new helper function, `install_greta_deps()`, which helps ensure Python dependencies are installed correctly. We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. -In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. +### Installation -We note that we have technically "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. +We have overhauled the installation checking process, and created a new helper function for installation, `install_greta_deps()`. + +We need the Tensorflow and Tensorflow Probability Python modules to use `greta`. +When these aren't installed, this now triggers a new prompt which encourages users +to use a new installation helper, that looks like this: + +``` +#> We have detected that you do not have the expected python packages setup. +#> You can set these up by running this R code in the console: +#> `install_greta_deps()` +#> Then, restart R and run: +#> `library(greta)` +#> (Note: Your R session should not have initialised Tensorflow yet.) +#> For more information, see `?install_greta_deps` +``` + +Running `install_greta_deps()` will then go through the process of installing the dependencies, and ask the user to restart R and load `greta` to get it working: + +``` +#> ✓ Installation of greta dependencies is complete! +#> • Restart R, then load greta with: `library(greta)` +``` + +The `install_greta_deps()` function helps ensure Python dependencies are installed correctly. This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". + +So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Pythong modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. + +Why do we need this? Currently `greta` needs specific versions of Tensorflow and Tensorflow Probability, and we know that those specific versions work with a specific version of Python. We wanted to keep things stable for users, so they don't have to go through the (often) painful process of installing dependencies. + +How does it work? When `greta` is loaded, say with `library(greta)`, it searches for a "greta-env" conda environment and loads it. It is not required to use the conda environment, "greta-env", so you can install these Python modules yourself. + +Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. + +### Error printing + +We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. This means we get nifty outputs like this from the new `greta_sitrep()` function: + +``` r +greta::greta_sitrep() +#> ℹ checking if python available +#> ✓ python (version 3.7) available +#> +#> ℹ checking if TensorFlow available +#> ✓ TensorFlow (version 1.14.0) available +#> +#> ℹ checking if TensorFlow Probability available +#> ✓ TensorFlow Probability (version 0.7.0) available +#> +#> ℹ checking if greta conda environment available +#> ✓ greta conda environment available +#> +#> ℹ Initialising python and checking dependencies, this may take a moment. +#> ✓ Initialising python and checking dependencies ... done! +#> +#> ℹ greta is ready to use! +``` + +### Testing + +We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. + +### Looking to the future + +In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. We note that we have gone from "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. ## Fixes: @@ -45,7 +108,7 @@ We note that we have technically "skipped" version 0.4.0, however this is becaus ## Features: -* NEw `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. +* New `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. From fba30577e6311043c12c209d0d822c8e74411501 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:52:50 +1000 Subject: [PATCH 04/22] a bit more polish and examples --- NEWS.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 443db8a8..4b0ad76d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,7 +10,7 @@ We have overhauled the installation checking process, and created a new helper f We need the Tensorflow and Tensorflow Probability Python modules to use `greta`. When these aren't installed, this now triggers a new prompt which encourages users -to use a new installation helper, that looks like this: +to use a new installation helper, which looks like this: ``` #> We have detected that you do not have the expected python packages setup. @@ -31,17 +31,30 @@ Running `install_greta_deps()` will then go through the process of installing th The `install_greta_deps()` function helps ensure Python dependencies are installed correctly. This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". -So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Pythong modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. +So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Python modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. Why do we need this? Currently `greta` needs specific versions of Tensorflow and Tensorflow Probability, and we know that those specific versions work with a specific version of Python. We wanted to keep things stable for users, so they don't have to go through the (often) painful process of installing dependencies. How does it work? When `greta` is loaded, say with `library(greta)`, it searches for a "greta-env" conda environment and loads it. It is not required to use the conda environment, "greta-env", so you can install these Python modules yourself. -Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. +Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. ### Error printing -We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. This means we get nifty outputs like this from the new `greta_sitrep()` function: +We have reviewed all of the error messages in greta, and rewritten the printing methods for the error messages to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. For example: + +``` r +paste0("Objects is of class: ", class(10)) +#> [1] "Objects is of class: numeric" +sprintf("Objects is of class: %s", class(10)) +#> [1] "Objects is of class: numeric" +glue::glue("Objects is of class: {class(10)}") +#> Objects is of class: numeric +cat(cli::format_message("Objects is of class: {.cls {class(10)}}")) +#> Objects is of class: +``` + +Using `cli` also means we get nifty outputs like this from the new `greta_sitrep()` function, which tests if Python and its dependencies are available ``` r greta::greta_sitrep() @@ -65,12 +78,18 @@ greta::greta_sitrep() ### Testing -We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. +We have also overhauled the testing interface to use [snapshotting](https://testthat.r-lib.org/reference/index.html#snapshot-testing). This makes it easier to write and test new error messages, and identify issues with existing print methods, errors, and warnings. ### Looking to the future In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. We note that we have gone from "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. +### Thanks + +A special thanks to everyone who helped with this release: + +@maelle, @assignUser + ## Fixes: * Python is now initialised when a `greta_array` is created (#468). From e4c95f3f8f80d12d8d697f2f655cfc6fde6b1ecb Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:56:52 +1000 Subject: [PATCH 05/22] thank folks --- NEWS.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index 4b0ad76d..54edf3bb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -86,9 +86,7 @@ In a future release we will switch to using TensorFlow 2.6 (or higher), to ensur ### Thanks -A special thanks to everyone who helped with this release: - -@maelle, @assignUser +A special thanks to everyone who helped with this release: [Nick Golding](https://github.com/goldingn), [Jacob Wujciak-Jens](https://github.com/assignUser), and [Maëlle Salmon](https://github.com/maelle). ## Fixes: From f5cad2b9407db332f7dfb0f38a3826126c2c58e0 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:57:45 +1000 Subject: [PATCH 06/22] update version and date ready for release --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1cba4f7e..fcce5017 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: greta Type: Package Title: Simple and Scalable Statistical Modelling in R -Version: 0.4.0.9000 -Date: 2022-02-09 +Version: 0.4.1 +Date: 2022-02-18 Authors@R: c( person("Nick", "Golding", role = c("aut"), From 990ea490dd4ba000da94e1612539462fa9479467 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:59:15 +1000 Subject: [PATCH 07/22] update NEWS heading --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 54edf3bb..925f5752 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# greta 0.4.0.9000 (2022-02-09) +# greta 0.4.1 (2022-02-18) ## Summary From bf9fae64e4a5634e557ce1dac6bf2403fe78692b Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Tue, 8 Feb 2022 12:56:06 +1000 Subject: [PATCH 08/22] update Description date, polish NEWS.md, and update cran-comments --- DESCRIPTION | 2 +- NEWS.md | 8 +++++--- cran-comments.md | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 2f01eb18..efd6bb4f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Type: Package Package: greta Title: Simple and Scalable Statistical Modelling in R Version: 0.4.0 -Date: 2021-11-26 +Date: 2022-02-08 Authors@R: c( person("Nick", "Golding", , "nick.golding.research@gmail.com", role = "aut", comment = c(ORCID = "0000-0001-8916-5570")), diff --git a/NEWS.md b/NEWS.md index e3e46496..91c5c4a7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,6 @@ -# greta 0.4.0 (2021-11-26) +# greta 0.4.0 (2022-02-08) + +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. There are many internal changes made to the package, around installation and checking Python modules, using new testing methods like snapshotting, and overhauling the installation helper and suggestions for installing Python modules, which has long been a source of friction for users. We are hopeful that the new `install_greta_deps()` function will help ensure Python dependencies are installed correctly. In a future release we will switch to using TensorFlow 2.6 or higher, ensure `greta` works with Apple computers with an M1 chip ## Fixes: @@ -34,14 +36,14 @@ * `dirichlet()` now returns a variable (rather than an operation) greta array, and the graphs created by `lkj_correlation()` and `wishart()` are now simpler as cholesky-shaped variables are now available internally. -* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). - * Adds helper functions for helping installation get to "clean slate" (#443) * `greta` currently doesn't work on Apple Silicon (M1 Macs) as they need to use TF 2.0, which is currently being implemented. `greta` now throws an error if M1 macs are detected and directs users to https://github.com/greta-dev/greta/issues/458 (#487) ## Features: +* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environemnt, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". + * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. * A `simulate()` method for greta models is now also provided, to simulate the values of all greta arrays in a model from their priors. diff --git a/cran-comments.md b/cran-comments.md index d1f7b843..bb4f041b 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,6 +1,6 @@ ## Test environments -* local R installation, R 4.1.1 -* ubuntu 16.04 (on travis-ci), R 4.1.1 +* local R installation, R 4.1.2 +* ubuntu 16.04 (on travis-ci), R 4.1.2 * win-builder (devel) ## R CMD check results From 863d606fdf882d82fa991be000636d866d33b236 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Wed, 9 Feb 2022 14:07:14 +1000 Subject: [PATCH 09/22] A bit more polish for NEWS, change to 0.4.0.9000 --- DESCRIPTION | 4 ++-- NEWS.md | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index efd6bb4f..d2cc45bc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: greta Title: Simple and Scalable Statistical Modelling in R -Version: 0.4.0 -Date: 2022-02-08 +Version: 0.4.0.9000 +Date: 2022-02-09 Authors@R: c( person("Nick", "Golding", , "nick.golding.research@gmail.com", role = "aut", comment = c(ORCID = "0000-0001-8916-5570")), diff --git a/NEWS.md b/NEWS.md index 91c5c4a7..d1f62e07 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,12 @@ -# greta 0.4.0 (2022-02-08) +# greta 0.4.0.9000 (2022-02-09) -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. There are many internal changes made to the package, around installation and checking Python modules, using new testing methods like snapshotting, and overhauling the installation helper and suggestions for installing Python modules, which has long been a source of friction for users. We are hopeful that the new `install_greta_deps()` function will help ensure Python dependencies are installed correctly. In a future release we will switch to using TensorFlow 2.6 or higher, ensure `greta` works with Apple computers with an M1 chip +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. + +There are many internal changes made to the package that impact installation, erorr printing, and testing. We have overhauled the installation checking process, and created a new helper function, `install_greta_deps()`, which helps ensure Python dependencies are installed correctly. We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. + +In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. + +We note that we have technically "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. ## Fixes: @@ -8,17 +14,16 @@ This release presents a variety of improvements over the past 2 years. We are no * head and tail S3 methods for `greta_array` are now consistent with head and tail methods for R versions 3 and 4 ([#384](https://github.com/greta-dev/greta/issues/384)). -* `greta_mcmc_list` objects (returned by `mcmc()`) are now no longer modified by operations (like code::gelman.diag()). +* `greta_mcmc_list` objects (returned by `mcmc()`) are now no longer modified by operations (like `coda::gelman.diag()`). * joint distributions of uniform variables now have the correct constraints when sampling (#377). * array-scalar dispatch with 3D arrays is now less buggy (#298). -* greta now provides R versions of all of R's primitive functions (I think), to prevent them from silently not executing (#317). +* `greta` now provides R versions of all of R's primitive functions (I think), to prevent them from silently not executing (#317). * Uses `Sys.unsetenv("RETICULATE_PYTHON")` in `.onload` on package startup, - to prevent an issue introduced with the latest version of RStudio where they - do not find the current version of RStudio. See [#444](https://github.com/greta-dev/greta/issues/444) for more details. + to prevent an issue introduced with the "ghost orchid" version of RStudio where they do not find the current version of RStudio. See [#444](https://github.com/greta-dev/greta/issues/444) for more details. * Internal change to code to ensure `future` continues to support parallelisation of chains. See [#447](https://github.com/greta-dev/greta/issues/447) for more details. @@ -32,17 +37,17 @@ This release presents a variety of improvements over the past 2 years. We are no * `calculate()` now accepts multiple greta arrays for which to calculate values, via the `...` argument. As a consequence any other arguments must now be named. -* a number of optimiser methods are now deprecated, since they will be unavailable when greta moves to using TensorFlow v2.0: `powell()`, `cg()`, `newton_cg()`, `l_bfgs_b()`, `tnc()`, `cobyla()`, and `slsqp()`. +* A number of optimiser methods are now deprecated, since they will be unavailable when greta moves to using TensorFlow v2.0: `powell()`, `cg()`, `newton_cg()`, `l_bfgs_b()`, `tnc()`, `cobyla()`, and `slsqp()`. * `dirichlet()` now returns a variable (rather than an operation) greta array, and the graphs created by `lkj_correlation()` and `wishart()` are now simpler as cholesky-shaped variables are now available internally. -* Adds helper functions for helping installation get to "clean slate" (#443) +* Adds the `reinstall_greta_env()`, `reinstall_miniconda()`, `remove_greta_env()`, and `remove_miniconda()` helper functions for helping installation get to "clean slate" (#443). * `greta` currently doesn't work on Apple Silicon (M1 Macs) as they need to use TF 2.0, which is currently being implemented. `greta` now throws an error if M1 macs are detected and directs users to https://github.com/greta-dev/greta/issues/458 (#487) ## Features: -* Python dependency installation has been overhauled with the new `install_greta_deps()` function (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environemnt, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". +* NEw `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. @@ -52,7 +57,7 @@ This release presents a variety of improvements over the past 2 years. We are no * There are three new variable constructor functions: `cholesky_variable()`, `simplex_variable()`, and `ordered_variable()`, for variables with these constraints but no probability distribution. -* a new function `chol2symm()` - the inverse of `chol()`. +* New `chol2symm()` is the inverse of `chol()`. * `mcmc()`, `stashed_samples()`, and `calculate()` now return objects of class `greta_mcmc_list` which inherit from `coda`'s `mcmc.list` class, but enable custom greta methods for manipulating mcmc outputs, including a `window()` function. From be1798a68fbfad820222785db6ceec9204edd0a5 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Thu, 17 Feb 2022 17:28:52 +1000 Subject: [PATCH 10/22] further proof reading and blogging on NEWS.md --- NEWS.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index d1f62e07..ebe510dc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,12 +1,75 @@ # greta 0.4.0.9000 (2022-02-09) -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases some strong new features implemented by Nick Golding on the `calculate` and `simulate` functions, as well as many bug fixes and improvements. +## Summary -There are many internal changes made to the package that impact installation, erorr printing, and testing. We have overhauled the installation checking process, and created a new helper function, `install_greta_deps()`, which helps ensure Python dependencies are installed correctly. We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. -In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. +### Installation -We note that we have technically "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. +We have overhauled the installation checking process, and created a new helper function for installation, `install_greta_deps()`. + +We need the Tensorflow and Tensorflow Probability Python modules to use `greta`. +When these aren't installed, this now triggers a new prompt which encourages users +to use a new installation helper, that looks like this: + +``` +#> We have detected that you do not have the expected python packages setup. +#> You can set these up by running this R code in the console: +#> `install_greta_deps()` +#> Then, restart R and run: +#> `library(greta)` +#> (Note: Your R session should not have initialised Tensorflow yet.) +#> For more information, see `?install_greta_deps` +``` + +Running `install_greta_deps()` will then go through the process of installing the dependencies, and ask the user to restart R and load `greta` to get it working: + +``` +#> ✓ Installation of greta dependencies is complete! +#> • Restart R, then load greta with: `library(greta)` +``` + +The `install_greta_deps()` function helps ensure Python dependencies are installed correctly. This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". + +So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Pythong modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. + +Why do we need this? Currently `greta` needs specific versions of Tensorflow and Tensorflow Probability, and we know that those specific versions work with a specific version of Python. We wanted to keep things stable for users, so they don't have to go through the (often) painful process of installing dependencies. + +How does it work? When `greta` is loaded, say with `library(greta)`, it searches for a "greta-env" conda environment and loads it. It is not required to use the conda environment, "greta-env", so you can install these Python modules yourself. + +Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. + +### Error printing + +We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. This means we get nifty outputs like this from the new `greta_sitrep()` function: + +``` r +greta::greta_sitrep() +#> ℹ checking if python available +#> ✓ python (version 3.7) available +#> +#> ℹ checking if TensorFlow available +#> ✓ TensorFlow (version 1.14.0) available +#> +#> ℹ checking if TensorFlow Probability available +#> ✓ TensorFlow Probability (version 0.7.0) available +#> +#> ℹ checking if greta conda environment available +#> ✓ greta conda environment available +#> +#> ℹ Initialising python and checking dependencies, this may take a moment. +#> ✓ Initialising python and checking dependencies ... done! +#> +#> ℹ greta is ready to use! +``` + +### Testing + +We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. + +### Looking to the future + +In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. We note that we have gone from "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. ## Fixes: @@ -47,7 +110,7 @@ We note that we have technically "skipped" version 0.4.0, however this is becaus ## Features: -* NEw `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. +* New `install_greta_deps()` - provides installation of python dependencies (#417). This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". When initialising Python, greta now searches for this conda environment first, which presents a great advantage as it isolates these exact versions of these modules from other Python installations. It is not required to use the conda environment, "greta-env". Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. * `calculate()` now enables simulation of greta array values from their priors, optionally conditioned on fixed values or posterior samples. This enables prior and posterior predictive checking of models, and simulation of data. From d74c371476bcaf9f4da529bf5abdd7a549ff8ee8 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:52:50 +1000 Subject: [PATCH 11/22] a bit more polish and examples --- NEWS.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index ebe510dc..035849ed 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,7 +10,7 @@ We have overhauled the installation checking process, and created a new helper f We need the Tensorflow and Tensorflow Probability Python modules to use `greta`. When these aren't installed, this now triggers a new prompt which encourages users -to use a new installation helper, that looks like this: +to use a new installation helper, which looks like this: ``` #> We have detected that you do not have the expected python packages setup. @@ -31,17 +31,30 @@ Running `install_greta_deps()` will then go through the process of installing th The `install_greta_deps()` function helps ensure Python dependencies are installed correctly. This saves exact versions of Python (3.7), and the python modules NumPy (1.16.4), Tensorflow (1.14.0), and Tensorflow Probability (0.7.0) into a conda environment, "greta-env". -So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Pythong modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. +So what is a conda environment? It is similar to the R projects, `packrat` and `renv` (although I believe conda environments are a much older idea!). It allows you to use specific versions of Python and Python modules (Python module = R Package) that do not interact with other projects. Essentially, you "activate" a specific conda environment, which loads the specified Python version and modules. This means you avoid situations where you might update a python module and then all your other code breaks because breaking changes were introduced in a new version. Why do we need this? Currently `greta` needs specific versions of Tensorflow and Tensorflow Probability, and we know that those specific versions work with a specific version of Python. We wanted to keep things stable for users, so they don't have to go through the (often) painful process of installing dependencies. How does it work? When `greta` is loaded, say with `library(greta)`, it searches for a "greta-env" conda environment and loads it. It is not required to use the conda environment, "greta-env", so you can install these Python modules yourself. -Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. +Overall this means that users can run the function `install_greta_deps()`, follow the prompts, and have all the python modules they need installed, without contaminating other software that use different python modules. ### Error printing -We have rewritten the error message printing methods to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. This means we get nifty outputs like this from the new `greta_sitrep()` function: +We have reviewed all of the error messages in greta, and rewritten the printing methods for the error messages to use the `cli` package for prettier, more informative testing. We have also used the `glue` package in place of most uses of `sprintf` or `paste/0`, as the literal string interpolation makes it easier to maintain. For example: + +``` r +paste0("Objects is of class: ", class(10)) +#> [1] "Objects is of class: numeric" +sprintf("Objects is of class: %s", class(10)) +#> [1] "Objects is of class: numeric" +glue::glue("Objects is of class: {class(10)}") +#> Objects is of class: numeric +cat(cli::format_message("Objects is of class: {.cls {class(10)}}")) +#> Objects is of class: +``` + +Using `cli` also means we get nifty outputs like this from the new `greta_sitrep()` function, which tests if Python and its dependencies are available ``` r greta::greta_sitrep() @@ -65,12 +78,18 @@ greta::greta_sitrep() ### Testing -We have also overhauled the testing interface to use snapshotting, which makes it easier to write and test new error messages, and makes it easier to identify issues with existing print methods, errors, and warnings. +We have also overhauled the testing interface to use [snapshotting](https://testthat.r-lib.org/reference/index.html#snapshot-testing). This makes it easier to write and test new error messages, and identify issues with existing print methods, errors, and warnings. ### Looking to the future In a future release we will switch to using TensorFlow 2.6 (or higher), to ensure `greta` works with Apple computers with an M1 chip. We note that we have gone from "skipped" version 0.4.0, however this is because we had a soft release of 0.4.0 on GitHub in December, and wanted to signify that this package has changed since that time. +### Thanks + +A special thanks to everyone who helped with this release: + +@maelle, @assignUser + ## Fixes: * Python is now initialised when a `greta_array` is created (#468). From 63278354b327258841be1b67325ad71d280b48d3 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:56:52 +1000 Subject: [PATCH 12/22] thank folks --- NEWS.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index 035849ed..e6559727 100644 --- a/NEWS.md +++ b/NEWS.md @@ -86,9 +86,7 @@ In a future release we will switch to using TensorFlow 2.6 (or higher), to ensur ### Thanks -A special thanks to everyone who helped with this release: - -@maelle, @assignUser +A special thanks to everyone who helped with this release: [Nick Golding](https://github.com/goldingn), [Jacob Wujciak-Jens](https://github.com/assignUser), and [Maëlle Salmon](https://github.com/maelle). ## Fixes: From a0c368d916acee07d2ba2760c187be4e4a14b19c Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:57:45 +1000 Subject: [PATCH 13/22] update version and date ready for release --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index d2cc45bc..418cccbd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: greta Title: Simple and Scalable Statistical Modelling in R -Version: 0.4.0.9000 -Date: 2022-02-09 +Version: 0.4.1 +Date: 2022-02-18 Authors@R: c( person("Nick", "Golding", , "nick.golding.research@gmail.com", role = "aut", comment = c(ORCID = "0000-0001-8916-5570")), From a3851e9d27a8aefe0144574dca598ba5d93a1fbe Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Fri, 18 Feb 2022 09:59:15 +1000 Subject: [PATCH 14/22] update NEWS heading --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index e6559727..17ed2995 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# greta 0.4.0.9000 (2022-02-09) +# greta 0.4.1 (2022-02-18) ## Summary From ba7b0e53042cf49df2b97baa3eab343b2cf5d506 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 21 Feb 2022 10:58:25 +1000 Subject: [PATCH 15/22] note change of maintainer --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 17ed2995..51c75ca5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ ## Summary -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. This release also sees changing of maintiner, from Nick Golding to Nick Tierney. ### Installation From a2a81da702f8de54fb919fa3f621e7462b3f995c Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 10:42:21 +0800 Subject: [PATCH 16/22] update cran comments --- cran-comments.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index bb4f041b..b7c45e39 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,6 +1,6 @@ ## Test environments -* local R installation, R 4.1.2 -* ubuntu 16.04 (on travis-ci), R 4.1.2 +* local R installation, R 4.1.3 +* ubuntu 16.04 (on travis-ci), R 4.1.3 * win-builder (devel) ## R CMD check results From 95bd2e5b23c27239352ff77333567633e3d92cf1 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 12:39:08 +0800 Subject: [PATCH 17/22] update news and wordlist --- DESCRIPTION | 2 +- NEWS.md | 2 +- inst/WORDLIST | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1535ff1b..804a0817 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: greta Title: Simple and Scalable Statistical Modelling in R -Version: 0.4.0 +Version: 0.4.1 Date: 2022-03-14 Authors@R: c( person("Nick", "Golding", , "nick.golding.research@gmail.com", role = "aut", diff --git a/NEWS.md b/NEWS.md index 51c75ca5..2addc0cc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ ## Summary -This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. This release also sees changing of maintiner, from Nick Golding to Nick Tierney. +This release presents a variety of improvements over the past 2 years. We are now aiming to have smaller, more regular releases of `greta`. This release showcases new features implemented by Nick Golding on the `calculate` and `simulate` functions. There are also many internal changes on installation, error printing, and testing. This release also sees changing of maintainer, from Nick Golding to Nick Tierney. ### Installation diff --git a/inst/WORDLIST b/inst/WORDLIST index da43f21d..ec50e653 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -15,8 +15,10 @@ Inf Jupyter Lmax Lmin +Maëlle Miniconda Nesterov +NumPy OpenBUGS PSAT Poisson @@ -29,6 +31,7 @@ TensorFlow TensorFlow's Tensorflow WinBUGS +Wujciak XLA bayesplot cholesky @@ -37,14 +40,12 @@ conda cran dag devtools -diag dlkjcorr doi dontrun env etc extraDistr -gelman gfortran github greta's @@ -62,6 +63,7 @@ pkgdown poisson polygamma schoolers +snapshotting softmax speedup st From 80457b07b121bc4b4c46ab55094c8b64ccec4d5d Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 13:20:36 +0800 Subject: [PATCH 18/22] add revdep --- cran-comments.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cran-comments.md b/cran-comments.md index b7c45e39..b1a2d474 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -10,3 +10,10 @@ * Maintainer has changed from Nick Golding to Nicholas Tierney. * We have included a LICENSE file with the Apache 2.0 to indicate Nick Golding as the copyright holder +## revdepcheck results + +We checked 1 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. + + * We saw 0 new problems + * We failed to check 0 packages + From f71b4806bfce62bd4885bd4609ec4ca279f1a2d4 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 13:26:47 +0800 Subject: [PATCH 19/22] update codemeta --- codemeta.json | 312 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 211 insertions(+), 101 deletions(-) diff --git a/codemeta.json b/codemeta.json index 28089550..c5dfa3ec 100644 --- a/codemeta.json +++ b/codemeta.json @@ -1,23 +1,19 @@ { - "@context": [ - "https://doi.org/10.5063/schema/codemeta-2.0", - "http://schema.org" - ], + "@context": "https://doi.org/10.5063/schema/codemeta-2.0", "@type": "SoftwareSourceCode", "identifier": "greta", - "description": "Write statistical models in R and fit them by MCMC and optimisation on CPUs and GPUs, using Google 'TensorFlow'.\n greta lets you write your own model like in BUGS, JAGS and Stan, except that you write models right in R, it scales well to massive datasets, and it’s easy to extend and build on.\n See the website for more information, including tutorials, examples, package documentation, and the greta forum.", + "description": "Write statistical models in R and fit them by MCMC and optimisation on CPUs and GPUs, using Google 'TensorFlow'. greta lets you write your own model like in BUGS, JAGS and Stan, except that you write models right in R, it scales well to massive datasets, and it’s easy to extend and build on. See the website for more information, including tutorials, examples, package documentation, and the greta forum.", "name": "greta: Simple and Scalable Statistical Modelling in R", - "codeRepository": "https://greta-stats.org", + "codeRepository": "https://github.com/njtierney/greta", "issueTracker": "https://github.com/greta-dev/greta/issues", - "license": "https://spdx.org/licenses/Apache-2.0", - "version": "0.3.1.9012", + "license": "Apache License 2", + "version": "0.4.1", "programmingLanguage": { "@type": "ComputerLanguage", "name": "R", - "version": "3.6.2", "url": "https://r-project.org" }, - "runtimePlatform": "R version 3.6.2 (2019-12-12)", + "runtimePlatform": "R version 4.1.3 (2022-03-10)", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", @@ -31,6 +27,13 @@ "familyName": "Golding", "email": "nick.golding.research@gmail.com", "@id": "https://orcid.org/0000-0001-8916-5570" + }, + { + "@type": "Person", + "givenName": "Nicholas", + "familyName": "Tierney", + "email": "nicholas.tierney@gmail.com", + "@id": "https://orcid.org/0000-0003-1460-8722" } ], "contributor": [ @@ -95,41 +98,51 @@ "familyName": "Yen" } ], - "copyrightHolder": {}, - "funder": {}, "maintainer": [ { "@type": "Person", - "givenName": "Nick", - "familyName": "Golding", - "email": "nick.golding.research@gmail.com", - "@id": "https://orcid.org/0000-0001-8916-5570" + "givenName": "Nicholas", + "familyName": "Tierney", + "email": "nicholas.tierney@gmail.com", + "@id": "https://orcid.org/0000-0003-1460-8722" } ], "softwareSuggestions": [ { "@type": "SoftwareApplication", - "identifier": "knitr", - "name": "knitr", + "identifier": "bayesplot", + "name": "bayesplot", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=knitr" + "sameAs": "https://CRAN.R-project.org/package=bayesplot" }, { "@type": "SoftwareApplication", - "identifier": "rmarkdown", - "name": "rmarkdown", + "identifier": "covr", + "name": "covr", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=rmarkdown" + "sameAs": "https://CRAN.R-project.org/package=covr" + }, + { + "@type": "SoftwareApplication", + "identifier": "cramer", + "name": "cramer", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=cramer" }, { "@type": "SoftwareApplication", @@ -145,51 +158,75 @@ }, { "@type": "SoftwareApplication", - "identifier": "bayesplot", - "name": "bayesplot", + "identifier": "extraDistr", + "name": "extraDistr", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=bayesplot" + "sameAs": "https://CRAN.R-project.org/package=extraDistr" }, { "@type": "SoftwareApplication", - "identifier": "lattice", - "name": "lattice", + "identifier": "fields", + "name": "fields", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=lattice" + "sameAs": "https://CRAN.R-project.org/package=fields" }, { "@type": "SoftwareApplication", - "identifier": "testthat", - "name": "testthat", + "identifier": "ggplot2", + "name": "ggplot2", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=testthat" + "sameAs": "https://CRAN.R-project.org/package=ggplot2" }, { "@type": "SoftwareApplication", - "identifier": "mvtnorm", - "name": "mvtnorm", + "identifier": "knitr", + "name": "knitr", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=mvtnorm" + "sameAs": "https://CRAN.R-project.org/package=knitr" + }, + { + "@type": "SoftwareApplication", + "identifier": "lattice", + "name": "lattice", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=lattice" + }, + { + "@type": "SoftwareApplication", + "identifier": "MASS", + "name": "MASS", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=MASS" }, { "@type": "SoftwareApplication", @@ -205,174 +242,175 @@ }, { "@type": "SoftwareApplication", - "identifier": "rmutil", - "name": "rmutil", + "identifier": "mockery", + "name": "mockery", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=rmutil" + "sameAs": "https://CRAN.R-project.org/package=mockery" }, { "@type": "SoftwareApplication", - "identifier": "extraDistr", - "name": "extraDistr", + "identifier": "mvtnorm", + "name": "mvtnorm", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=extraDistr" + "sameAs": "https://CRAN.R-project.org/package=mvtnorm" }, { "@type": "SoftwareApplication", - "identifier": "truncdist", - "name": "truncdist", + "identifier": "rmarkdown", + "name": "rmarkdown", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=truncdist" + "sameAs": "https://CRAN.R-project.org/package=rmarkdown" }, { "@type": "SoftwareApplication", - "identifier": "cramer", - "name": "cramer", + "identifier": "rmutil", + "name": "rmutil", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=cramer" + "sameAs": "https://CRAN.R-project.org/package=rmutil" }, { "@type": "SoftwareApplication", - "identifier": "tidyverse", - "name": "tidyverse", + "identifier": "spelling", + "name": "spelling", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=tidyverse" + "sameAs": "https://CRAN.R-project.org/package=spelling" }, { "@type": "SoftwareApplication", - "identifier": "fields", - "name": "fields", + "identifier": "testthat", + "name": "testthat", + "version": ">= 3.1.0", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=fields" + "sameAs": "https://CRAN.R-project.org/package=testthat" }, { "@type": "SoftwareApplication", - "identifier": "MASS", - "name": "MASS", + "identifier": "tidyverse", + "name": "tidyverse", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=MASS" + "sameAs": "https://CRAN.R-project.org/package=tidyverse" }, { "@type": "SoftwareApplication", - "identifier": "abind", - "name": "abind", + "identifier": "truncdist", + "name": "truncdist", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=abind" + "sameAs": "https://CRAN.R-project.org/package=truncdist" }, { "@type": "SoftwareApplication", - "identifier": "spelling", - "name": "spelling", + "identifier": "withr", + "name": "withr", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=spelling" + "sameAs": "https://CRAN.R-project.org/package=withr" } ], - "softwareRequirements": [ - { + "softwareRequirements": { + "1": { "@type": "SoftwareApplication", "identifier": "R", "name": "R", - "version": ">= 3.0" + "version": ">= 3.1.0" }, - { + "2": { "@type": "SoftwareApplication", - "identifier": "R6", - "name": "R6", + "identifier": "abind", + "name": "abind", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=R6" + "sameAs": "https://CRAN.R-project.org/package=abind" }, - { + "3": { "@type": "SoftwareApplication", - "identifier": "tensorflow", - "name": "tensorflow", - "version": ">= 1.13.0", + "identifier": "callr", + "name": "callr", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=tensorflow" + "sameAs": "https://CRAN.R-project.org/package=callr" }, - { + "4": { "@type": "SoftwareApplication", - "identifier": "reticulate", - "name": "reticulate", + "identifier": "cli", + "name": "cli", + "version": ">= 3.0.0", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=reticulate" + "sameAs": "https://CRAN.R-project.org/package=cli" }, - { + "5": { "@type": "SoftwareApplication", - "identifier": "progress", - "name": "progress", - "version": ">= 1.2.0", + "identifier": "coda", + "name": "coda", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=progress" + "sameAs": "https://CRAN.R-project.org/package=coda" }, - { + "6": { "@type": "SoftwareApplication", "identifier": "future", "name": "future", + "version": ">= 1.22.1", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", @@ -381,35 +419,103 @@ }, "sameAs": "https://CRAN.R-project.org/package=future" }, - { + "7": { "@type": "SoftwareApplication", - "identifier": "coda", - "name": "coda", + "identifier": "glue", + "name": "glue", + "version": ">= 1.5.1", "provider": { "@id": "https://cran.r-project.org", "@type": "Organization", "name": "Comprehensive R Archive Network (CRAN)", "url": "https://cran.r-project.org" }, - "sameAs": "https://CRAN.R-project.org/package=coda" + "sameAs": "https://CRAN.R-project.org/package=glue" }, - { + "8": { "@type": "SoftwareApplication", "identifier": "methods", "name": "methods" }, - { + "9": { "@type": "SoftwareApplication", - "identifier": "https://sysreqs.r-hub.io/get/python-2.7" - } - ], - "releaseNotes": "https://github.com/dill/greta/blob/master/NEWS.md", - "readme": "https://github.com/dill/greta/blob/master/README.md", - "fileSize": "810.148KB", - "contIntegration": [ - "https://github.com/greta-dev/greta/actions", - "https://codecov.io/github/greta-dev/greta?branch=master" - ], + "identifier": "parallelly", + "name": "parallelly", + "version": ">= 1.29.0", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=parallelly" + }, + "10": { + "@type": "SoftwareApplication", + "identifier": "progress", + "name": "progress", + "version": ">= 1.2.0", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=progress" + }, + "11": { + "@type": "SoftwareApplication", + "identifier": "R6", + "name": "R6", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=R6" + }, + "12": { + "@type": "SoftwareApplication", + "identifier": "reticulate", + "name": "reticulate", + "version": ">= 1.19.0", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=reticulate" + }, + "13": { + "@type": "SoftwareApplication", + "identifier": "tensorflow", + "name": "tensorflow", + "version": ">= 2.7.0", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=tensorflow" + }, + "14": { + "@type": "SoftwareApplication", + "identifier": "yesno", + "name": "yesno", + "provider": { + "@id": "https://cran.r-project.org", + "@type": "Organization", + "name": "Comprehensive R Archive Network (CRAN)", + "url": "https://cran.r-project.org" + }, + "sameAs": "https://CRAN.R-project.org/package=yesno" + }, + "SystemRequirements": "Python (>= 2.7.0) with header files and shared\n library; TensorFlow (v1.14; https://www.tensorflow.org/); TensorFlow\n Probability (v0.7.0; https://www.tensorflow.org/probability/)" + }, + "fileSize": "1326.582KB", "citation": [ { "@type": "ScholarlyArticle", @@ -424,7 +530,7 @@ "name": "{greta}: simple and scalable statistical modelling in R", "identifier": "10.21105/joss.01601", "url": "http://dx.doi.org/10.21105/joss.01601", - "paginiation": "1601", + "pagination": "1601", "@id": "https://doi.org/10.21105/joss.01601", "sameAs": "https://doi.org/10.21105/joss.01601", "isPartOf": { @@ -438,5 +544,9 @@ } } } - ] + ], + "relatedLink": "https://greta-stats.org", + "releaseNotes": "https://github.com/njtierney/greta/blob/master/NEWS.md", + "readme": "https://github.com/njtierney/greta/blob/master/README.md", + "contIntegration": ["https://app.codecov.io/gh/greta-dev/greta?branch=master", "https://github.com/greta-dev/greta/actions"] } From ffdd9ed8a16705a55e551c83b07ee77221ce741a Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 13:29:50 +0800 Subject: [PATCH 20/22] update date of NEWS --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 2addc0cc..f4d500eb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# greta 0.4.1 (2022-02-18) +# greta 0.4.1 (2022-03-14) ## Summary From 0425a84c18ae2af4ff8437066653acfdfe3460a1 Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Mon, 14 Mar 2022 16:10:56 +0800 Subject: [PATCH 21/22] ignore CRAN submission; try out alternative LICENSE formatting --- .Rbuildignore | 1 + DESCRIPTION | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index 3168fad0..c7c7152b 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -40,3 +40,4 @@ ^codecov\.yml$ ^depends\.rds$ +^CRAN-SUBMISSION$ diff --git a/DESCRIPTION b/DESCRIPTION index 804a0817..f1662677 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,7 +28,7 @@ Description: Write statistical models in R and fit them by MCMC and easy to extend and build on. See the website for more information, including tutorials, examples, package documentation, and the greta forum. -License: Apache License (>= 2) + file LICENSE +License: Apache License 2.0 | file LICENSE URL: https://greta-stats.org BugReports: https://github.com/greta-dev/greta/issues Depends: From b704bde9346b6e3bba5ca1df96bb891a6900cbae Mon Sep 17 00:00:00 2001 From: Nicholas Tierney Date: Tue, 15 Mar 2022 00:40:22 +0800 Subject: [PATCH 22/22] update LICENSE file --- .Rbuildignore | 1 + DESCRIPTION | 2 +- cran-comments.md | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index c7c7152b..06ef0d96 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -11,6 +11,7 @@ ^CODE_OF_CONDUCT\.md$ ^\.EDIT_WEBSITE\.md$ ^LICENSE\.md$ +LICENSE ^cran-comments\.md$ ^logos$ diff --git a/DESCRIPTION b/DESCRIPTION index f1662677..89fa5bdb 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,7 +28,7 @@ Description: Write statistical models in R and fit them by MCMC and easy to extend and build on. See the website for more information, including tutorials, examples, package documentation, and the greta forum. -License: Apache License 2.0 | file LICENSE +License: Apache License 2.0 URL: https://greta-stats.org BugReports: https://github.com/greta-dev/greta/issues Depends: diff --git a/cran-comments.md b/cran-comments.md index b1a2d474..c9fb8576 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -5,10 +5,9 @@ ## R CMD check results -0 errors | 0 warnings | 2 notes +0 errors | 0 warnings | 1 notes * Maintainer has changed from Nick Golding to Nicholas Tierney. -* We have included a LICENSE file with the Apache 2.0 to indicate Nick Golding as the copyright holder ## revdepcheck results