head 1.12; access; symbols pkgsrc-2023Q4:1.12.0.6 pkgsrc-2023Q4-base:1.12 pkgsrc-2023Q3:1.12.0.4 pkgsrc-2023Q3-base:1.12 pkgsrc-2023Q2:1.12.0.2 pkgsrc-2023Q2-base:1.12 pkgsrc-2023Q1:1.11.0.2 pkgsrc-2023Q1-base:1.11 pkgsrc-2022Q4:1.9.0.12 pkgsrc-2022Q4-base:1.9 pkgsrc-2022Q3:1.9.0.10 pkgsrc-2022Q3-base:1.9 pkgsrc-2022Q2:1.9.0.8 pkgsrc-2022Q2-base:1.9 pkgsrc-2022Q1:1.9.0.6 pkgsrc-2022Q1-base:1.9 pkgsrc-2021Q4:1.9.0.4 pkgsrc-2021Q4-base:1.9 pkgsrc-2021Q3:1.9.0.2 pkgsrc-2021Q3-base:1.9 pkgsrc-2021Q2:1.8.0.2 pkgsrc-2021Q2-base:1.8 pkgsrc-2021Q1:1.4.0.14 pkgsrc-2021Q1-base:1.4 pkgsrc-2020Q4:1.4.0.12 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.4.0.10 pkgsrc-2020Q3-base:1.4 pkgsrc-2020Q2:1.4.0.8 pkgsrc-2020Q2-base:1.4 pkgsrc-2020Q1:1.4.0.4 pkgsrc-2020Q1-base:1.4 pkgsrc-2019Q4:1.4.0.6 pkgsrc-2019Q4-base:1.4 pkgsrc-2019Q3:1.4.0.2 pkgsrc-2019Q3-base:1.4 pkgsrc-2019Q2:1.2.0.8 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.6 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.4 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.2 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.1.0.4 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.2 pkgsrc-2018Q1-base:1.1; locks; strict; comment @# @; 1.12 date 2023.06.02.12.49.09; author mef; state Exp; branches; next 1.11; commitid WhSAfX7n2m5e8nrE; 1.11 date 2023.01.01.05.38.16; author mef; state Exp; branches; next 1.10; commitid X8JqtYWSC7usDN7E; 1.10 date 2023.01.01.05.24.32; author mef; state Exp; branches; next 1.9; commitid B9pwhH60KOHMyN7E; 1.9 date 2021.09.20.00.44.28; author mef; state Exp; branches; next 1.8; commitid MPCpmVrCWUNi3D9D; 1.8 date 2021.06.06.23.39.26; author mef; state Exp; branches; next 1.7; commitid x690xZiFAhkk48WC; 1.7 date 2021.06.06.15.38.02; author mef; state Exp; branches; next 1.6; commitid YOyJysItLfWap5WC; 1.6 date 2021.06.06.15.36.29; author mef; state Exp; branches; next 1.5; commitid wlOYvMN5gzADo5WC; 1.5 date 2021.06.05.08.30.23; author mef; state Exp; branches; next 1.4; commitid WMaWwNPklfOn4VVC; 1.4 date 2019.08.08.19.53.54; author brook; state Exp; branches; next 1.3; commitid K2VPfA0XCw7xfgyB; 1.3 date 2019.07.31.20.35.18; author brook; state Exp; branches; next 1.2; commitid Wf0bpomSPl4jMexB; 1.2 date 2018.07.28.14.40.51; author brook; state Exp; branches; next 1.1; commitid hIRYb3oU4xMfBULA; 1.1 date 2018.03.19.15.27.45; author minskim; state Exp; branches; next ; commitid 33QJZwRNmJ0j75vA; desc @@ 1.12 log @(math/R-tibble) Updated 3.1.8 to 3.2.1 # tibble 3.2.1 ## Internal - Use symbol instead of string in `.Call()`. # tibble 3.2.0 ## Features - Accurate location of the source of an error in error messages (#1379, #1065, #1508). - `as_data_frame()` now also refers to `as.data.frame()` in its deprecation message (#1149, #1506). ## Breaking changes - Deprecated functions and arguments where we could not detect usage by other CRAN packages (#1515): - `data_frame_()`, `lst_()`, `frame_data()` - `as_tibble(validate = )`, `as_tibble(NULL)`, `new_tibble(subclass = )` - `add_row()` and `add_column()` for non-data-frame input - `add_column()` for input with non-unique names - corner cases for `tbl[[x]]` - Breaking change: Remove `knit_print.trunc_mat()` method (#1516). - Forward `trunc_mat()` to new-style pillar methods (#1517). ## Bug fixes - Allow `glue()` and other classed characters for subassignment (#1150, #1503). ## Performance - Reduce overhead of single-column subset assignment (#1363). ## Documentation - New `vignette("extending")` (#275, #1512). - Minor updates (#1151, #1070, #1512, #1485). - Update example for `nrow` argument to `new_tibble()` (@@heavywatal, #1394). - Fix display of mermaid diagrams in `vignette("formats")` (@@maelle, #1497, #1498). - Remove ANSI escapes from invariants article on pkgdown (#1374). ## Internal - Require vctrs >= 0.4.1 and pillar >= 1.8.1 - Use cli for formatting conditions (#1387). - Use `vec_as_location(missing = "error")` for better error messages (#741, #1511). - Remove compatibility code for RSDA package which is broken anyway due to other changes (#923, #1509). - Skip tests if suggested packages not available (#1246, @@MichaelChirico). - Remove obsolete tests (#1513). @ text @# $NetBSD: Makefile,v 1.11 2023/01/01 05:38:16 mef Exp $ R_PKGNAME= tibble R_PKGVER= 3.2.1 MAINTAINER= minskim@@NetBSD.org COMMENT= Simple data frames LICENSE= mit DEPENDS+= R-cli>=1.1.0:../../devel/R-cli DEPENDS+= R-crayon>=1.3.4:../../devel/R-crayon DEPENDS+= R-fansi>=0.4.0:../../devel/R-fansi DEPENDS+= R-pkgconfig>=2.0.2:../../devel/R-pkgconfig DEPENDS+= R-rlang>=0.3.0:../../devel/R-rlang DEPENDS+= R-pillar>=1.7.0:../../misc/R-pillar DEPENDS+= R-lifecycle-[0-9]*:../../devel/R-lifecycle DEPENDS+= R-magrittr-[0-9]*:../../devel/R-magrittr # Packages suggested but not available: # 'DiagrammeR', 'formattable', 'nycflights13' TEST_DEPENDS+= R-bench-[0-9]*:../../benchmarks/R-bench TEST_DEPENDS+= R-bit64-[0-9]*:../../devel/R-bit64 TEST_DEPENDS+= R-blob-[0-9]*:../../devel/R-blob TEST_DEPENDS+= R-covr-[0-9]*:../../devel/R-covr TEST_DEPENDS+= R-dplyr-[0-9]*:../../math/R-dplyr TEST_DEPENDS+= R-ggplot2-[0-9]*:../../graphics/R-ggplot2 TEST_DEPENDS+= R-hms-[0-9]*:../../time/R-hms TEST_DEPENDS+= R-htmltools-[0-9]*:../../textproc/R-htmltools TEST_DEPENDS+= R-knitr-[0-9]*:../../print/R-knitr TEST_DEPENDS+= R-lubridate-[0-9]*:../../time/R-lubridate TEST_DEPENDS+= R-mockr-[0-9]*:../../devel/R-mockr TEST_DEPENDS+= R-purrr-[0-9]*:../../devel/R-purrr TEST_DEPENDS+= R-rmarkdown-[0-9]*:../../textproc/R-rmarkdown TEST_DEPENDS+= R-testthat-[0-9]*:../../devel/R-testthat TEST_DEPENDS+= R-tidyr-[0-9]*:../../math/R-tidyr .include "../../lang/R-cpp11/buildlink3.mk" .include "../../math/R/Makefile.extension" .include "../../mk/bsd.pkg.mk" @ 1.11 log @(devel/R-tibble) Updated 3.1.4 to 3.1.8 # tibble 3.1.8 ## Documentation - Better reporting for error calls from `vec_as_location()` (#1237). - Mention `median()` in Recovery section of `vignette("numbers")` (#1197). # tibble 3.1.7 ## Breaking change - `trunc_mat()` now returns a value with a different structure. This is considered an implementation detail that can change in the future, do not rely on it. The only guarantee is that calling `print()` will display the input like a tibble (#1059). ## Documentation - Avoid listing `dim_desc()` in reexports. - Add more examples for data frame and matrix columns (#978, #1012). ## Internal - Require rlang 1.0.1 and pillar 1.7.0 (#1063). - Prefer `class` over `.subclass` in `rlang::error_cnd()` (#1015, #1060). # tibble 3.1.6 - `set_num_opts()` and `set_char_opts()` are reexported from pillar (#959). - `view()` uses `rlang::expr_deparse(width = Inf)` to avoid errors with long `|>` pipes (#957). - `new_tibble()` checks that the `nrow` argument is nonnegative and less than 2^31 (#916). - `tbl_sum.tbl_df()` has an ellipsis in its formals for extensibility. # tibble 3.1.5 - Avoid necessity to set `"tibble.view_max"` option for lazy tables (#954). - Avoid blanket import for lifecycle package for compatibility with upcoming rlang (#955, @@romainfrancois). @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2023/01/01 05:24:32 mef Exp $ d4 1 a4 1 R_PKGVER= 3.1.8 @ 1.10 log @(math/R-tibble) +TEST_DEPENDS+= R-mockr, R-lubridate, R-bench @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2021/09/20 00:44:28 mef Exp $ d4 1 a4 1 R_PKGVER= 3.1.4 d15 1 a15 1 DEPENDS+= R-pillar>=1.4.0:../../misc/R-pillar @ 1.9 log @(math/R-tibble) Updated 3.1.2 to 3.1.4 # tibble 3.1.4 ## Features - `as.data.frame.tbl_df()` strips inner column names (#837). - `new_tibble()` allows omitting the `nrow` argument again (#781). ## Documentation - Move `vignette("digits")`, `vignette("numbers")`, `?num` and `?char` from the pillar package here (#913). - Replace `iris` by `trees` (#943). - Various documentation improvements. - New `?tibble_options` help page (#912). ## Performance - `x[i, j] <- one_row_value` avoids explicit recycling of the right-hand side, the recycling happens implicitly in `vctrs::vec_assign()` for performance (#922). ## Internal - Vignettes are now tested with a snapshot test (#919). - `new_tibble()` uses `vctrs::new_data_frame()` internally (#726, @@DavisVaughan). - Adapt to pillar 1.6.2. - Fix tests for compatibility with pillar 1.6.2. # tibble 3.1.3 ## Bug fixes - `tbl[row, col] <- rhs` treats an all-`NA` logical vector as a missing value both for existing data (#773) and for the right-hand side value (#868). This means that a column initialized with `NA` (of type `logical`) will change its type when a row is updated to a value of a different type. - `[[<-()` supports symbols (#893). ## Features - `as_tibble_row()` supports arbitrary vectors (#797). - `enframe()` and `deframe()` support arbitrary vectors (#730). - `tibble()` and `tibble_row()` ignore all columns that evaluate to `NULL`, not only those where a verbatim `NULL` is passed (#895, #900). - `new_tibble()` is now faster (#901, @@mgirlich). ## Internal - Establish compatibility with rlang > 0.4.11 (#908). - Use `pillar::dim_desc()` (#859). - Establish compatibility with testthat > 3.0.3 (#896, @@lionel-). - Bump required versions of ellipsis and vctrs to avoid warning during package load. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2021/06/06 23:39:26 mef Exp $ a18 2 # VignetteBuilder package required for checking but not installed: 'knitr' d20 1 a20 2 # 'bench', 'DiagrammeR', 'formattable', 'lubridate', 'mockr', # 'nycflights13' d22 1 d31 2 @ 1.8 log @(math/R-tibble) Update DEPEDNDS version for R-pillar @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2021/06/06 15:38:02 mef Exp $ d4 1 a4 2 R_PKGVER= 3.1.2 #ATEGORIES= math a18 4 #Packages suggested but not available: # 'bench', 'bit64', 'blob', 'DiagrammeR', 'dplyr', 'formattable', # 'ggplot2', 'hms', 'lubridate', 'mockr', 'nycflights13', 'purrr', # 'testthat', 'tidyr' d20 17 a36 1 USE_LANGUAGES= c d38 1 @ 1.7 log @(math/R-tibble) correct typo @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2021/06/06 15:36:29 mef Exp $ d16 1 a16 1 DEPENDS+= R-pillar>=1.3.1:../../misc/R-pillar a19 1 @ 1.6 log @(math/R-tibble) Add missing two DEPENDS+ @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2021/06/05 08:30:23 mef Exp $ d18 1 a18 1 DEPENDS+= R-magittr-[0-9]*:../../devel/R-magrittr @ 1.5 log @(math/R-tibble) Updated 2.1.3 to 3.1.2 # tibble 3.1.2 - Bump required versions of ellipsis and vctrs to avoid warning during package load. # tibble 3.1.1 - `num()` and `char()` are reexported from pillar (#880). - `tribble()` and `frame_matrix()` give an error if values are named (#871, @@lorenzwalthert). - Document `cli.num_colors` option (#410). - Fix `new_tibble()` examples for compatibility with pillar 1.6.0. # tibble 3.1.0 ## Bug fixes - `has_rownames()` now works correctly for data frames with a `"row.names"` attribute malformed due to a problem in `structure()` (#852). - `tbl[FALSE, "column"] <- x` adds new column again (#846). ## Features - Importing pillar 1.5.0, cli and crayon are now suggested packages (#475). - `size_sum()` is now reexported from pillar (#850, @@topepo). - `as_tibble()` hints more often to use the `.name_repair` argument if column names are invalid (#855). - `as_tibble.table()` mentions `.name_repair` argument in the error message (#839). ## Internal - Remove compatibility code for pillar < 1.5.0 (#861). - Moved most functions to the "stable" lifecycle (#860). # tibble 3.0.6 - `vec_ptype_abbr.tbl_df()` and `type_sum.tbl_df()` now uses the name of the topmost class for subclasses of `"tbl_df"` (#843). - Ignore errors in `formats.Rmd` vignette. - Avoid tidy evaluation in pillar compatibility code. # tibble 3.0.5 - Use testthat edition 3, compatible with testthat 3.0.1 (#827, #832). # tibble 3.0.4 ## Compatibility - Establish compatibility with upcoming pillar 1.5.0 (#818). - `tbl_sum()` shows "data frame" instead of "tibble" for objects inheriting from `"tbl"` but not `"tbl_df"` (#818). - Register `format.tbl()` and `print.tbl()` methods only if pillar doesn't (#816). - Use `vctrs::num_as_location()` internally for subset assignment of rows and columns for better error messages (#746). - Adapt tests to the development version of testthat. ## Bug fixes - Fix documentation link to `base::Extract`. - `add_row(df)` adds an empty row again (#809, @@DavisVaughan). # tibble 3.0.3 - Fix test compatibility with rlang 0.4.7. - Fix warning about `needs_dots` arguments with pillar >= 1.4.5 (#798). # tibble 3.0.2 ## Bug fixes - `[[` works with classed indexes again, e.g. created with `glue::glue()` (#778). - `add_column()` works without warning for 0-column data frames (#786). - `tribble()` now better handles named inputs (#775) and objects of non-vtrs classes like `lubridate::Period` (#784) and `formattable::formattable` (#785). ## Performance - Subsetting and subassignment are faster (#780, #790, #794). - `is.null()` is preferred over `is_null()` for speed. - Implement continuous benchmarking (#793). ## Compatibility - `is_vector_s3()` is no longer reexported from pillar (#789). # tibble 3.0.1 ## Compatibility fixes - `[<-.tbl_df()` coerces matrices to data frames (#762). - Use delayed import for cli to work around unload problems in downstream packages (#754). ## Bug fixes - More soft-deprecation warnings are actually visible. - If `.name_repair` is a function, no repair messages are shown (#763). - Remove superseded signal for `as_tibble.list()`, because `as_tibble_row()` only works for size 1. ## Enhancements - `as_tibble(validate = )` now always triggers a deprecation warning. - Subsetting and subassignment of rows with one-column matrices work again, with a deprecation warning (#760). - Attempts to update a tibble row with an atomic vector give a clearer error message. Recycling message for subassignment appears only if target size is != 1. - Tweak title of "Invariants" vignette. # tibble 3.0.0 ## Major breaking changes - Subset assignment ("subassignment") and also subsetting has become stricter. Symptoms: - Error: No common type for ... - Error: Assigned data `...` must be compatible with ... - `i` must have one dimension, not 2 - Error: Lossy cast from ... to ... The "invariants" article at https://tibble.tidyverse.org/dev/articles/invariants.html describes the invariants that the operations follow in tibble, and the most important differences to data frames. We tried to make subsetting and subassignment as safe as possible, so that errors are caught early on, while introducing as little friction as possible. - List classes are no longer automatically treated as vectors. Symptoms: - Error: All columns in a tibble must be vectors - Error: Expected a vector, not a `...` object If you implement a class that wraps a list as S3 vector, you need to include `"list"` in the class: ```r structure(x, class = c("your_s3_class", "list")) ``` Alternatively, implement a `vec_proxy()` method as described in https://vctrs.r-lib.org/reference/vec_data.html, or construct your class with `list_of()`. - Added experimental support for inner names for all columns, of the form `tibble(a = c(b = 1))`. Inner names are no longer stripped when creating a tibble. They are maintained for slicing operations but not yet updated when assigning with a row subscript. This is a change that may break existing comparison tests that don't expect names in columns (#630). Symptoms: - "names for target but not for current" when comparing ## Breaking changes - `tibble()` now splices anonymous data frames, `tibble(tibble(a = 1), b = a)` is equivalent to `tibble(a = 1, b = a)`. This means that `tibble(iris)` now has five columns, use `tibble(iris = iris)` if the intention is to create a packed data frame (#581). - The `name-repair` help topic is gone, refer to `?vctrs::vec_as_names` instead. - `expression()` columns are converted to lists as a workaround for lacking support in vctrs (#657). - `tribble()` is now stricter when combining values. All values in a column must be compatible, otherwise an error occurs (#204). The criteria for wrapping in a list column are now based on vctrs principles: non-vectors or vectors with `vctrs::vec_size()` unequal 1 are wrapped in lists. - `$` warns unconditionally if column not found, `[[` doesn't warn. - `add_row()` now uses `vctrs::vec_rbind()` under the hood, this means that all columns are combined with `vctrs::vec_c()`. In particular, factor columns will be converted to character if one of the columns is a character column. ## Soft deprecations - Soft-deprecate `subclass` argument to `new_tibble()`. - Soft-deprecate `as_tibble()` without arguments (#683). - Preparing to move `glimpse()` and `tbl_sum()` to the pillar package. If your package implements these methods, please import the generics from pillar as soon as they become available there. ## Features - Internals now make heavy use of the vctrs package, following most of the invariants defined there. Name repair is the responsibility of vctrs now (#464). - All errors emitted directly by the package inherit from the `"tibble_error"` and `"rlang_error"` classes. In some cases, `"vctrs_error"` errors may be passed through. The exact subclass is subject to change. Example: `tibble(a = quote(b))` raises an error that inherits from `"tibble_error_column_must_be_vector"`, `"tibble_error"` and `"rlang_error"`, and from `"error"` and `"condition"` like all errors. Do not rely on the wording of `"tibble_error_column_must_be_vector"`, this is likely to change. Use the following pattern to catch errors emitted by tibble: ```r tryCatch( your_code(), tibble_error = function(cnd) { } ) ``` - New `tibble_row()` constructs tibbles that have exactly one row, or fails. Non-vector objects are automatically wrapped in a list, vectors (including lists) must have length one (#205). - New `as_tibble_row()` and `as_tibble_col()` convert a bare vector to a one-row or one-column tibble, respectively. `as_tibble_col()` also works for non-bare vectors. Using `as_tibble()` for bare vectors is superseded (#447). - `as_tibble.data.frame()` uses implicit row names if asked to create a column from row names. This allows lossless direct conversion of matrices with row names to tibbles (#567, @@stufield). - Implement `str.tbl_df()` (#480). - `tribble()` now returns columns with `"unspecified"` type for 0-row tibbles. - `add_row()` and `add_column()` now restore attributes to avoid errors when appending to sf objects or other tibble subclasses (#662). - `add_column()` gains `.name_repair` argument. If not given, `.data` must have unique columns, with a deprecation message. - Allow `POSIXlt` columns, they are now better supported by dplyr and other tools thanks to vctrs (#626). - `tibble()` ignores NULL arguments, named or unnamed (#580). - `view()` works for remote data sources by applying the same strategy as `print()` and `glimpse()`. The maximum number of rows in this case can be specified using the new `n` argument, by default it is taken from the new `"tibble.view_max"` option (#695). ## Output - Formatting dimensions never uses scientific notation. - `glimpse()` uses "Rows" and "Columns" instead of "Variables" and "Observations", because we're not sure if the data is tidy here (#614). - `view()` now uses the created (or passed) title argument (#610, @@xvrdm). ## Performance - Construction and subsetting of large data frames is faster now (#717, @@romainfrancois). ## Internal - Import lifecycle package (#669). - `new_tibble()` removes redundant subclasses from the `"class"` attribute. - Using classed conditions. All classes start with `"tibble_error_"` and also contain `"tibble_error"` (#659). - The magrittr pipe `%>%` is reexported. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2019/08/08 19:53:54 brook Exp $ d17 3 @ 1.4 log @Update all R packages to canonical form. The canonical form [1] of an R package Makefile includes the following: - The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as needed), and CATEGORIES. - HOMEPAGE is not present but defined in math/R/Makefile.extension to refer to the CRAN web page describing the package. Other relevant web pages are often linked from there via the URL field. This updates all current R packages to this form, which will make regular updates _much_ easier, especially using pkgtools/R2pkg. [1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2019/07/31 20:35:18 brook Exp $ d4 2 a5 2 R_PKGVER= 2.1.3 CATEGORIES= math d18 5 @ 1.3 log @R-tibble: update to version 2.1.3. Update to the canonical form of an R package. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2018/07/28 14:40:51 brook Exp $ d3 3 a5 1 CATEGORIES= math R a7 1 HOMEPAGE= http://tibble.tidyverse.org/ a10 3 R_PKGNAME= tibble R_PKGVER= 2.1.3 @ 1.2 log @Remove MASTER_SITES= from individual R package Makefiles. Each R package should include ../../math/R/Makefile.extension, which also defines MASTER_SITES. Consequently, it is redundant for the individual packages to do the same. Package-specific definitions also prevent redefining MASTER_SITES in a single common place. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2018/03/19 15:27:45 minskim Exp $ d3 1 a3 1 CATEGORIES= math d11 1 a11 1 R_PKGVER= 1.4.2 d13 6 a18 4 DEPENDS+= R-cli-[0-9]*:../../devel/R-cli DEPENDS+= R-crayon-[0-9]*:../../devel/R-crayon DEPENDS+= R-pillar>=1.1.0:../../misc/R-pillar DEPENDS+= R-rlang-[0-9]*:../../devel/R-rlang a21 1 BUILDLINK_API_DEPENDS.R+= R>=3.1.0 @ 1.1 log @math/R-tibble: Import version 1.4.2 Provides a 'tbl_df' class (the 'tibble') that provides stricter checking and better formatting than the traditional data frame. @ text @d1 1 a1 1 # $NetBSD$ a3 1 MASTER_SITES= ${MASTER_SITE_R_CRAN:=contrib/} @